diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index 5759d39..c3eb42a 100644
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -4,27 +4,40 @@
     "version": "2.0.0",
     "tasks": [
         {
-            "label": "Flash hwb1",
+            "label": "Flash MyApplet",
             "type": "shell",
-            "command": "${workspaceFolder}/hwb1/scripts/flash.cmd",
+            "command": "${workspaceFolder}/scripts/flash.cmd",
+            "options": {
+                "env": {
+                    "PACKAGE": "hwb1",
+                    "APPLET": "MyApplet",
+                    "PARAMS": "31323334"
+                }
+            },
             "problemMatcher": []
         },
         {
             "label": "List Applets",
             "type": "shell",
-            "command": "${workspaceFolder}/hwb1/scripts/list.cmd",
+            "command": "${workspaceFolder}/scripts/list.cmd",
             "problemMatcher": []
         },
         {
-            "label": "Test hwb1 Applet",
+            "label": "Test MyApplet",
             "type": "shell",
-            "command": "${workspaceFolder}/hwb1/scripts/test.cmd",
+            "command": "${workspaceFolder}/scripts/test.cmd",
+            "options": {
+                "env": {
+                    "PACKAGE": "hwb1",
+                    "APPLET": "MyApplet"
+                }
+            },
             "problemMatcher": []
         },
         {
-            "label": "Delete hwb1 Applet",
+            "label": "Delete MyApplet",
             "type": "shell",
-            "command": "${workspaceFolder}/hwb1/scripts/delete.cmd",
+            "command": "${workspaceFolder}/scripts/delete.cmd",
             "problemMatcher": []
         }
     ]
diff --git a/hwb1/card/delete.cmd b/hwb1/card/delete.cmd
deleted file mode 100644
index 62727be..0000000
--- a/hwb1/card/delete.cmd
+++ /dev/null
@@ -1 +0,0 @@
-gp --delete 01020304050608
diff --git a/hwb1/card/e222.cmd b/hwb1/card/e222.cmd
deleted file mode 100644
index a68d2ee..0000000
--- a/hwb1/card/e222.cmd
+++ /dev/null
@@ -1,5 +0,0 @@
-@echo off
-set PACKAGE=hwb1
-set APPLET=MyApplet
-set "JAVA_HOME=%JAVA8_HOME%"
-set "path=%JAVA_HOME%\bin;%JC_HOME%\bin;%JC_HOME%\..;%JC_HOME%\..\GPShell-1.4.4;%path%"
diff --git a/hwb1/card/install.cmd b/hwb1/card/install.cmd
deleted file mode 100644
index 6489f54..0000000
--- a/hwb1/card/install.cmd
+++ /dev/null
@@ -1,4 +0,0 @@
-SET PIN=31323334
-
-@rem -f to force install over old version
-gp --install %~dp0..\javacard\%PACKAGE%.cap --params %PIN% -f
diff --git a/hwb1/card/list.cmd b/hwb1/card/list.cmd
deleted file mode 100644
index 637a7dd..0000000
--- a/hwb1/card/list.cmd
+++ /dev/null
@@ -1 +0,0 @@
-gp --list
diff --git a/hwb1/card/test.cmd b/hwb1/card/test.cmd
deleted file mode 100644
index 31cd098..0000000
--- a/hwb1/card/test.cmd
+++ /dev/null
@@ -1 +0,0 @@
-gpshell %~dp0test.txt
\ No newline at end of file
diff --git a/hwb1/scripts/delete.cmd b/hwb1/scripts/delete.cmd
deleted file mode 100644
index 47a6847..0000000
--- a/hwb1/scripts/delete.cmd
+++ /dev/null
@@ -1,3 +0,0 @@
-SET CARD_ROOT=%~dp0..\card
-call %CARD_ROOT%\e222.cmd
-call %CARD_ROOT%\delete.cmd
diff --git a/hwb1/scripts/flash.cmd b/hwb1/scripts/flash.cmd
deleted file mode 100644
index 86f39ab..0000000
--- a/hwb1/scripts/flash.cmd
+++ /dev/null
@@ -1,5 +0,0 @@
-@echo off
-SET CARD_ROOT=%~dp0..\card
-call %CARD_ROOT%\e222.cmd
-call %CARD_ROOT%\c222.cmd
-call %CARD_ROOT%\install.cmd
diff --git a/hwb1/scripts/list.cmd b/hwb1/scripts/list.cmd
deleted file mode 100644
index 4aa224d..0000000
--- a/hwb1/scripts/list.cmd
+++ /dev/null
@@ -1,4 +0,0 @@
-@echo off
-SET CARD_ROOT=%~dp0..\card
-call %CARD_ROOT%\e222.cmd
-call %CARD_ROOT%\list.cmd
diff --git a/hwb1/scripts/test.cmd b/hwb1/scripts/test.cmd
deleted file mode 100644
index d2f2ca8..0000000
--- a/hwb1/scripts/test.cmd
+++ /dev/null
@@ -1,4 +0,0 @@
-@echo off
-SET CARD_ROOT=%~dp0..\card
-call %CARD_ROOT%\e222.cmd
-call %CARD_ROOT%\test.cmd
diff --git a/hwb1/card/test.txt b/hwb1/tests/MyApplet.txt
similarity index 100%
rename from hwb1/card/test.txt
rename to hwb1/tests/MyApplet.txt
diff --git a/hwb1/card/c222.cmd b/scripts/compile.cmd
similarity index 70%
rename from hwb1/card/c222.cmd
rename to scripts/compile.cmd
index f600749..d3a22b3 100644
--- a/hwb1/card/c222.cmd
+++ b/scripts/compile.cmd
@@ -1,3 +1,4 @@
-@rem compile applet with JcDK 2.2.2
-javac -g -target 1.1 -source 1.2 -cp %JC_HOME%\lib\api.jar -d . %~dp0../src/%PACKAGE%/*.java
+:: compile applet with JcDK 2.2.2
+CALL %~dp0setup.cmd
+javac -g -target 1.1 -source 1.2 -cp %JC_HOME%\lib\api.jar -d . %~dp0../%PACKAGE%/src/%PACKAGE%/*.java
 converter -exportpath "%JC_HOME%\api_export_files" -applet 0x01:0x02:0x03:0x04:0x5:0x6:0x8:0x9 %PACKAGE%.%APPLET% %PACKAGE% 0x01:0x02:0x03:0x04:0x5:0x6:0x8 1.0
diff --git a/scripts/delete.cmd b/scripts/delete.cmd
new file mode 100644
index 0000000..b841d1e
--- /dev/null
+++ b/scripts/delete.cmd
@@ -0,0 +1,2 @@
+CALL %~dp0setup.cmd
+gp --delete %ID%
diff --git a/scripts/flash.cmd b/scripts/flash.cmd
new file mode 100644
index 0000000..b9b250e
--- /dev/null
+++ b/scripts/flash.cmd
@@ -0,0 +1,5 @@
+CALL %~dp0setup.cmd
+CALL %~dp0compile.cmd
+
+:: "-f" forces overwriting old versions of the package
+gp --install %~dp0..\%PACKAGE%\javacard\%PACKAGE%.cap --params %PARAMS% -f
diff --git a/scripts/list.cmd b/scripts/list.cmd
new file mode 100644
index 0000000..7c6f077
--- /dev/null
+++ b/scripts/list.cmd
@@ -0,0 +1,2 @@
+CALL %~dp0setup.cmd
+gp --list
diff --git a/scripts/setup.cmd b/scripts/setup.cmd
new file mode 100644
index 0000000..458eb26
--- /dev/null
+++ b/scripts/setup.cmd
@@ -0,0 +1,16 @@
+:: Common Environment Variables
+@echo off
+:: To be defined externally
+SET "PACKAGE=%PACKAGE%"
+SET "APPLET=%APPLET%"
+SET "PARAMS=%PARAMS%"
+SET "JAVA8_HOME=%JAVA8_HOME%"
+SET "JC_HOME=%JC_HOME%"
+
+SET HEXID=0x01:0x02:0x03:0x04:0x5:0x6:0x8:0x9
+SET ID=%HEXID:0x0=0%
+SET ID=%ID:0x=0%
+SET ID=%ID::=%
+
+SET "JAVA_HOME=%JAVA8_HOME%"
+SET "PATH=%JAVA_HOME%\bin;%JC_HOME%\bin;%JC_HOME%\..;%JC_HOME%\..\GPShell-1.4.4;%PATH%"
diff --git a/scripts/test.cmd b/scripts/test.cmd
new file mode 100644
index 0000000..171a87b
--- /dev/null
+++ b/scripts/test.cmd
@@ -0,0 +1,2 @@
+CALL %~dp0setup.cmd
+gpshell %~dp0..\%PACKAGE%\tests\%APPLET%.txt