diff --git a/Makefile b/Makefile
index e486f1db9fdce083205de7ff65c3a7dd48e26ab6..61efc163315ff1d90efadfd6770b92efb14f6fa5 100644
--- a/Makefile
+++ b/Makefile
@@ -55,6 +55,7 @@ include $(MAKEFILE_IMPORT_PATH)target-docman.mk
 include $(MAKEFILE_IMPORT_PATH)target-update-makefiles.mk
 include $(MAKEFILE_IMPORT_PATH)target-deploy-tool.mk
 include $(MAKEFILE_IMPORT_PATH)target-build-nodejs.mk
+include $(MAKEFILE_IMPORT_PATH)target-test-nodejs.mk
 include $(MAKEFILE_IMPORT_PATH)target-git.mk
 include $(MAKEFILE_IMPORT_PATH)target-build-jsdoc.mk
 include $(MAKEFILE_IMPORT_PATH)terminal-check.mk	
diff --git a/application/package.json b/application/package.json
index dcef75dd8b72e402f0efd2569895fdb7b9e25cdf..0659a370f9f4ddcb96b71a40d7e6c5a7937db79c 100644
--- a/application/package.json
+++ b/application/package.json
@@ -29,6 +29,9 @@
     "log",
     "theme"
   ],
+  "main": "source/monster.js",
+  "module": "source/monster.js",
+
   "type": "module",
   "homepage": "https://monsterjs.org",
   "repository": {
diff --git a/deployment/makefiles/directories-standard.mk b/deployment/makefiles/directories-standard.mk
index de063d9e0f8371126fda42349ffbf0e567af28d0..e11a18756ceec2f8b4fb7b7cad92677a1f7b4bcf 100644
--- a/deployment/makefiles/directories-standard.mk
+++ b/deployment/makefiles/directories-standard.mk
@@ -17,8 +17,9 @@ RESOURCE_PATH        ?=   $(APPLICATION_PATH)resource/
 SOURCE_PATH          ?=   $(APPLICATION_PATH)source/
 WEB_PATH             ?=   $(APPLICATION_PATH)web/
 SCRIPTS_PATH         ?=   $(DEVELOPMENT_PATH)script/
-BUILD_PATH            =   $(DEPLOYMENT_PATH)build/
+BUILD_PATH           ?=   $(DEPLOYMENT_PATH)build/
 VENDOR_PATH          ?=   $(DEPLOYMENT_PATH)vendor/
+TEST_PATH            ?=   $(DEVELOPMENT_PATH)tests/
 
 PROJECT_DIRECTORIES :=  $(PROJECT_DIRECTORIES)  \
 	$(APPLICATION_PATH) \
diff --git a/deployment/makefiles/target-test-nodejs.mk b/deployment/makefiles/target-test-nodejs.mk
new file mode 100644
index 0000000000000000000000000000000000000000..1459230d2f201e93efdb915b3b5295619acb7797
--- /dev/null
+++ b/deployment/makefiles/target-test-nodejs.mk
@@ -0,0 +1,14 @@
+#############################################################################################
+#############################################################################################
+##
+## BUILD NODE
+##
+#############################################################################################
+#############################################################################################
+
+.PHONY: test-node
+## Test JS Components
+test-node: $(PACKAGEMODIFIED)
+	$(QUIET) $(ECHO) "Test Node Components"
+	$(QUIET) $(MOCHA) --package=$(PACKAGE_JSON) --recursive $(TEST_PATH)cases/  
+	
diff --git a/deployment/package-lock.json b/deployment/package-lock.json
index aad81876829e1548738bb869223260995039ffbc..d90d16101de5b48b1f226ad58bc33acaab59723e 100644
--- a/deployment/package-lock.json
+++ b/deployment/package-lock.json
@@ -22,6 +22,7 @@
         "jsdoc-plantuml": "^1.0.2",
         "jsdom": "^20.0.0",
         "jsdom-global": "^3.0.2",
+        "mocha": "^10.0.0",
         "node-plantuml": "^0.9.0",
         "sinon": "^14.0.0",
         "url": "^0.11.0",
@@ -196,8 +197,7 @@
       "version": "1.1.2",
       "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz",
       "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==",
-      "dev": true,
-      "peer": true
+      "dev": true
     },
     "node_modules/abab": {
       "version": "2.0.6",
@@ -277,7 +277,6 @@
       "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
       "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
       "dev": true,
-      "peer": true,
       "engines": {
         "node": ">=6"
       }
@@ -311,7 +310,6 @@
       "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
       "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
       "dev": true,
-      "peer": true,
       "dependencies": {
         "normalize-path": "^3.0.0",
         "picomatch": "^2.0.4"
@@ -387,7 +385,6 @@
       "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
       "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
       "dev": true,
-      "peer": true,
       "engines": {
         "node": ">=8"
       }
@@ -403,7 +400,6 @@
       "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
       "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
       "dev": true,
-      "peer": true,
       "dependencies": {
         "balanced-match": "^1.0.0"
       }
@@ -413,7 +409,6 @@
       "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
       "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
       "dev": true,
-      "peer": true,
       "dependencies": {
         "fill-range": "^7.0.1"
       },
@@ -431,8 +426,7 @@
       "version": "1.3.1",
       "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
       "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
-      "dev": true,
-      "peer": true
+      "dev": true
     },
     "node_modules/btoa": {
       "version": "1.2.1",
@@ -500,7 +494,6 @@
       "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
       "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
       "dev": true,
-      "peer": true,
       "engines": {
         "node": ">=10"
       },
@@ -556,7 +549,6 @@
       "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
       "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
       "dev": true,
-      "peer": true,
       "dependencies": {
         "ansi-styles": "^4.1.0",
         "supports-color": "^7.1.0"
@@ -588,7 +580,6 @@
           "url": "https://paulmillr.com/funding/"
         }
       ],
-      "peer": true,
       "dependencies": {
         "anymatch": "~3.1.2",
         "braces": "~3.0.2",
@@ -817,7 +808,6 @@
       "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
       "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
       "dev": true,
-      "peer": true,
       "engines": {
         "node": ">=10"
       },
@@ -1069,7 +1059,6 @@
       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
       "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
       "dev": true,
-      "peer": true,
       "dependencies": {
         "to-regex-range": "^5.0.1"
       },
@@ -1098,7 +1087,6 @@
       "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
       "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
       "dev": true,
-      "peer": true,
       "bin": {
         "flat": "cli.js"
       }
@@ -1188,7 +1176,6 @@
       "os": [
         "darwin"
       ],
-      "peer": true,
       "engines": {
         "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
       }
@@ -1299,7 +1286,6 @@
       "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
       "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
       "dev": true,
-      "peer": true,
       "dependencies": {
         "is-glob": "^4.0.1"
       },
@@ -1554,7 +1540,6 @@
       "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
       "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
       "dev": true,
-      "peer": true,
       "dependencies": {
         "binary-extensions": "^2.0.0"
       },
@@ -1610,7 +1595,6 @@
       "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
       "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
       "dev": true,
-      "peer": true,
       "engines": {
         "node": ">=0.10.0"
       }
@@ -1644,7 +1628,6 @@
       "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
       "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
       "dev": true,
-      "peer": true,
       "dependencies": {
         "is-extglob": "^2.1.1"
       },
@@ -1669,7 +1652,6 @@
       "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
       "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
       "dev": true,
-      "peer": true,
       "engines": {
         "node": ">=0.12.0"
       }
@@ -1694,7 +1676,6 @@
       "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
       "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
       "dev": true,
-      "peer": true,
       "engines": {
         "node": ">=8"
       }
@@ -1787,7 +1768,6 @@
       "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
       "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
       "dev": true,
-      "peer": true,
       "engines": {
         "node": ">=10"
       },
@@ -1872,7 +1852,6 @@
       "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
       "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
       "dev": true,
-      "peer": true,
       "dependencies": {
         "argparse": "^2.0.1"
       },
@@ -2109,7 +2088,6 @@
       "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
       "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
       "dev": true,
-      "peer": true,
       "dependencies": {
         "chalk": "^4.1.0",
         "is-unicode-supported": "^0.1.0"
@@ -2221,7 +2199,6 @@
       "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz",
       "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==",
       "dev": true,
-      "peer": true,
       "dependencies": {
         "brace-expansion": "^2.0.1"
       },
@@ -2246,7 +2223,6 @@
       "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.0.0.tgz",
       "integrity": "sha512-0Wl+elVUD43Y0BqPZBzZt8Tnkw9CMUdNYnUsTfOM1vuhJVZL+kiesFYsqwBkEEuEixaiPe5ZQdqDgX2jddhmoA==",
       "dev": true,
-      "peer": true,
       "dependencies": {
         "@ungap/promise-all-settled": "1.1.2",
         "ansi-colors": "4.1.1",
@@ -2288,7 +2264,6 @@
       "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
       "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
       "dev": true,
-      "peer": true,
       "engines": {
         "node": ">=10"
       },
@@ -2300,15 +2275,13 @@
       "version": "2.1.3",
       "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
       "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
-      "dev": true,
-      "peer": true
+      "dev": true
     },
     "node_modules/mocha/node_modules/supports-color": {
       "version": "8.1.1",
       "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
       "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
       "dev": true,
-      "peer": true,
       "dependencies": {
         "has-flag": "^4.0.0"
       },
@@ -2324,7 +2297,6 @@
       "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
       "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
       "dev": true,
-      "peer": true,
       "engines": {
         "node": ">=10"
       }
@@ -2340,7 +2312,6 @@
       "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz",
       "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==",
       "dev": true,
-      "peer": true,
       "bin": {
         "nanoid": "bin/nanoid.cjs"
       },
@@ -2452,7 +2423,6 @@
       "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
       "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
       "dev": true,
-      "peer": true,
       "engines": {
         "node": ">=0.10.0"
       }
@@ -2638,7 +2608,6 @@
       "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
       "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
       "dev": true,
-      "peer": true,
       "engines": {
         "node": ">=8.6"
       },
@@ -2709,7 +2678,6 @@
       "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
       "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
       "dev": true,
-      "peer": true,
       "dependencies": {
         "safe-buffer": "^5.1.0"
       }
@@ -2719,7 +2687,6 @@
       "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
       "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
       "dev": true,
-      "peer": true,
       "dependencies": {
         "picomatch": "^2.2.1"
       },
@@ -2838,7 +2805,6 @@
       "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
       "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
       "dev": true,
-      "peer": true,
       "dependencies": {
         "randombytes": "^2.1.0"
       }
@@ -3042,7 +3008,6 @@
       "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
       "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
       "dev": true,
-      "peer": true,
       "dependencies": {
         "is-number": "^7.0.0"
       },
@@ -3365,8 +3330,7 @@
       "version": "6.2.1",
       "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz",
       "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==",
-      "dev": true,
-      "peer": true
+      "dev": true
     },
     "node_modules/wrap-ansi": {
       "version": "7.0.0",
@@ -3474,7 +3438,6 @@
       "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
       "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
       "dev": true,
-      "peer": true,
       "dependencies": {
         "camelcase": "^6.0.0",
         "decamelize": "^4.0.0",
@@ -3645,8 +3608,7 @@
       "version": "1.1.2",
       "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz",
       "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==",
-      "dev": true,
-      "peer": true
+      "dev": true
     },
     "abab": {
       "version": "2.0.6",
@@ -3706,8 +3668,7 @@
       "version": "4.1.1",
       "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
       "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
-      "dev": true,
-      "peer": true
+      "dev": true
     },
     "ansi-regex": {
       "version": "5.0.1",
@@ -3729,7 +3690,6 @@
       "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
       "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
       "dev": true,
-      "peer": true,
       "requires": {
         "normalize-path": "^3.0.0",
         "picomatch": "^2.0.4"
@@ -3786,8 +3746,7 @@
       "version": "2.2.0",
       "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
       "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
-      "dev": true,
-      "peer": true
+      "dev": true
     },
     "bluebird": {
       "version": "3.7.2",
@@ -3800,7 +3759,6 @@
       "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
       "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
       "dev": true,
-      "peer": true,
       "requires": {
         "balanced-match": "^1.0.0"
       }
@@ -3810,7 +3768,6 @@
       "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
       "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
       "dev": true,
-      "peer": true,
       "requires": {
         "fill-range": "^7.0.1"
       }
@@ -3825,8 +3782,7 @@
       "version": "1.3.1",
       "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
       "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
-      "dev": true,
-      "peer": true
+      "dev": true
     },
     "btoa": {
       "version": "1.2.1",
@@ -3878,8 +3834,7 @@
       "version": "6.3.0",
       "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
       "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
-      "dev": true,
-      "peer": true
+      "dev": true
     },
     "catharsis": {
       "version": "0.9.0",
@@ -3917,7 +3872,6 @@
       "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
       "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
       "dev": true,
-      "peer": true,
       "requires": {
         "ansi-styles": "^4.1.0",
         "supports-color": "^7.1.0"
@@ -3934,7 +3888,6 @@
       "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
       "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
       "dev": true,
-      "peer": true,
       "requires": {
         "anymatch": "~3.1.2",
         "braces": "~3.0.2",
@@ -4119,8 +4072,7 @@
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
       "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
-      "dev": true,
-      "peer": true
+      "dev": true
     },
     "decimal.js": {
       "version": "10.3.1",
@@ -4294,7 +4246,6 @@
       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
       "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
       "dev": true,
-      "peer": true,
       "requires": {
         "to-regex-range": "^5.0.1"
       }
@@ -4313,8 +4264,7 @@
       "version": "5.0.2",
       "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
       "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
-      "dev": true,
-      "peer": true
+      "dev": true
     },
     "flow-bin": {
       "version": "0.184.0",
@@ -4381,8 +4331,7 @@
       "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
       "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
       "dev": true,
-      "optional": true,
-      "peer": true
+      "optional": true
     },
     "function-bind": {
       "version": "1.1.1",
@@ -4481,7 +4430,6 @@
       "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
       "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
       "dev": true,
-      "peer": true,
       "requires": {
         "is-glob": "^4.0.1"
       }
@@ -4654,7 +4602,6 @@
       "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
       "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
       "dev": true,
-      "peer": true,
       "requires": {
         "binary-extensions": "^2.0.0"
       }
@@ -4688,8 +4635,7 @@
       "version": "2.1.1",
       "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
       "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
-      "dev": true,
-      "peer": true
+      "dev": true
     },
     "is-fullwidth-code-point": {
       "version": "3.0.0",
@@ -4711,7 +4657,6 @@
       "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
       "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
       "dev": true,
-      "peer": true,
       "requires": {
         "is-extglob": "^2.1.1"
       }
@@ -4726,8 +4671,7 @@
       "version": "7.0.0",
       "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
       "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
-      "dev": true,
-      "peer": true
+      "dev": true
     },
     "is-number-object": {
       "version": "1.0.7",
@@ -4742,8 +4686,7 @@
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
       "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
-      "dev": true,
-      "peer": true
+      "dev": true
     },
     "is-potential-custom-element-name": {
       "version": "1.0.1",
@@ -4805,8 +4748,7 @@
       "version": "0.1.0",
       "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
       "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
-      "dev": true,
-      "peer": true
+      "dev": true
     },
     "is-url-superb": {
       "version": "5.0.0",
@@ -4867,7 +4809,6 @@
       "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
       "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
       "dev": true,
-      "peer": true,
       "requires": {
         "argparse": "^2.0.1"
       }
@@ -5042,7 +4983,6 @@
       "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
       "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
       "dev": true,
-      "peer": true,
       "requires": {
         "chalk": "^4.1.0",
         "is-unicode-supported": "^0.1.0"
@@ -5124,7 +5064,6 @@
       "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz",
       "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==",
       "dev": true,
-      "peer": true,
       "requires": {
         "brace-expansion": "^2.0.1"
       }
@@ -5140,7 +5079,6 @@
       "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.0.0.tgz",
       "integrity": "sha512-0Wl+elVUD43Y0BqPZBzZt8Tnkw9CMUdNYnUsTfOM1vuhJVZL+kiesFYsqwBkEEuEixaiPe5ZQdqDgX2jddhmoA==",
       "dev": true,
-      "peer": true,
       "requires": {
         "@ungap/promise-all-settled": "1.1.2",
         "ansi-colors": "4.1.1",
@@ -5170,22 +5108,19 @@
           "version": "4.0.0",
           "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
           "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
-          "dev": true,
-          "peer": true
+          "dev": true
         },
         "ms": {
           "version": "2.1.3",
           "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
           "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
-          "dev": true,
-          "peer": true
+          "dev": true
         },
         "supports-color": {
           "version": "8.1.1",
           "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
           "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
           "dev": true,
-          "peer": true,
           "requires": {
             "has-flag": "^4.0.0"
           }
@@ -5194,8 +5129,7 @@
           "version": "20.2.4",
           "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
           "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
-          "dev": true,
-          "peer": true
+          "dev": true
         }
       }
     },
@@ -5209,8 +5143,7 @@
       "version": "3.3.3",
       "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz",
       "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==",
-      "dev": true,
-      "peer": true
+      "dev": true
     },
     "nise": {
       "version": "5.1.1",
@@ -5289,8 +5222,7 @@
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
       "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
-      "dev": true,
-      "peer": true
+      "dev": true
     },
     "nwsapi": {
       "version": "2.2.1",
@@ -5426,8 +5358,7 @@
       "version": "2.3.1",
       "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
       "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
-      "dev": true,
-      "peer": true
+      "dev": true
     },
     "plantuml-encoder": {
       "version": "1.4.0",
@@ -5479,7 +5410,6 @@
       "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
       "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
       "dev": true,
-      "peer": true,
       "requires": {
         "safe-buffer": "^5.1.0"
       }
@@ -5489,7 +5419,6 @@
       "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
       "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
       "dev": true,
-      "peer": true,
       "requires": {
         "picomatch": "^2.2.1"
       }
@@ -5567,7 +5496,6 @@
       "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
       "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
       "dev": true,
-      "peer": true,
       "requires": {
         "randombytes": "^2.1.0"
       }
@@ -5730,7 +5658,6 @@
       "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
       "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
       "dev": true,
-      "peer": true,
       "requires": {
         "is-number": "^7.0.0"
       }
@@ -5988,8 +5915,7 @@
       "version": "6.2.1",
       "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz",
       "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==",
-      "dev": true,
-      "peer": true
+      "dev": true
     },
     "wrap-ansi": {
       "version": "7.0.0",
@@ -6065,7 +5991,6 @@
       "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
       "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
       "dev": true,
-      "peer": true,
       "requires": {
         "camelcase": "^6.0.0",
         "decamelize": "^4.0.0",
diff --git a/deployment/package.json b/deployment/package.json
index 000f83064f453772a8213125dd585b8fb6a73237..af197fad7ab85c4ed764417d77b137a1f3052e2a 100644
--- a/deployment/package.json
+++ b/deployment/package.json
@@ -6,6 +6,7 @@
     "type": "git",
     "url": "https://gitlab.schukai.com/oss/libraries/javascript/monster.git"
   },
+  "type": "module",
   "keywords": [],
   "author": "schukai GmbH",
   "license": "see LICENSE file",
@@ -23,6 +24,7 @@
     "jsdoc-plantuml": "^1.0.2",
     "jsdom": "^20.0.0",
     "jsdom-global": "^3.0.2",
+    "mocha": "^10.0.0",
     "node-plantuml": "^0.9.0",
     "sinon": "^14.0.0",
     "url": "^0.11.0",
diff --git a/development/tests/cases/constraint/andoperator.js b/development/tests/cases/constraint/andoperator.js
index a9508d1da5c82b80aa14969a20c543c0889f4b9d..7a9bccad8ef3bbb8746786d24d2fb3cbc6508eab 100644
--- a/development/tests/cases/constraint/andoperator.js
+++ b/development/tests/cases/constraint/andoperator.js
@@ -1,6 +1,6 @@
-import {Valid} from "../../../source/constraints/valid.js";
-import {Invalid} from "../../../source/constraints/invalid.js";
-import {AndOperator} from "../../../source/constraints/andoperator.js";
+import {Valid} from "../../../../application/source/constraints/valid.js";
+import {Invalid} from "../../../../application/source/constraints/invalid.js";
+import {AndOperator} from "../../../../application/source/constraints/andoperator.js";
 
 describe('AndOperator', function () {
 
diff --git a/development/tests/cases/constraint/invalid.js b/development/tests/cases/constraint/invalid.js
index fbdf5156571b08b3e5ae2c720edc951fed881ea4..977c92373f78757e9892abb95a8a73d16661c466 100644
--- a/development/tests/cases/constraint/invalid.js
+++ b/development/tests/cases/constraint/invalid.js
@@ -1,4 +1,4 @@
-import {Monster, Invalid} from "../../../source/constraints/invalid.js";
+import {Monster, Invalid} from "../../../../application/source/constraints/invalid.js";
 import {expect} from "chai"
 
 describe('Invalid', function () {
diff --git a/development/tests/cases/constraint/isarray.js b/development/tests/cases/constraint/isarray.js
index d972fcaccc1d5533b65131f23e2f1a424fe2efa3..84b97af14adf6d52e4a13ce9255721be260c3445 100644
--- a/development/tests/cases/constraint/isarray.js
+++ b/development/tests/cases/constraint/isarray.js
@@ -1,4 +1,4 @@
-import {IsArray} from "../../../source/constraints/isarray.js";
+import {IsArray} from "../../../../application/source/constraints/isarray.js";
 import {expect} from "chai"
 
 describe('IsArray', function () {
diff --git a/development/tests/cases/constraint/isobject.js b/development/tests/cases/constraint/isobject.js
index ab5230b31994fbd8f0f63fe83111fef39d853d88..1fe0e88e8695ebf0b020fcc9b1da88a3459f5700 100644
--- a/development/tests/cases/constraint/isobject.js
+++ b/development/tests/cases/constraint/isobject.js
@@ -1,4 +1,4 @@
-import {IsObject} from "../../../source/constraints/isobject.js";
+import {IsObject} from "../../../../application/source/constraints/isobject.js";
 import {expect} from "chai"
 
 describe('IsObject', function () {
diff --git a/development/tests/cases/constraint/oroperator.js b/development/tests/cases/constraint/oroperator.js
index a1721ae98f3294ea5a5bbad629d6fcede908bd91..509198e1189e44c6f429e3e23d7e92224380a416 100644
--- a/development/tests/cases/constraint/oroperator.js
+++ b/development/tests/cases/constraint/oroperator.js
@@ -1,6 +1,6 @@
-import {Valid} from "../../../source/constraints/valid.js";
-import {Invalid} from "../../../source/constraints/invalid.js";
-import {OrOperator} from "../../../source/constraints/oroperator.js";
+import {Valid} from "../../../../application/source/constraints/valid.js";
+import {Invalid} from "../../../../application/source/constraints/invalid.js";
+import {OrOperator} from "../../../../application/source/constraints/oroperator.js";
 
 describe('OrOperator', function () {
 
diff --git a/development/tests/cases/constraint/valid.js b/development/tests/cases/constraint/valid.js
index a5363be3ab2d7cd80f469675159e5b71bf5fd22d..a12ed2094b3a96040bca230e91293e906ced6ed5 100644
--- a/development/tests/cases/constraint/valid.js
+++ b/development/tests/cases/constraint/valid.js
@@ -1,4 +1,4 @@
-import {Monster, Valid} from "../../../source/constraints/valid.js";
+import {Monster, Valid} from "../../../../application/source/constraints/valid.js";
 import {expect} from "chai"
 
 describe('Valid', function () {
diff --git a/development/tests/cases/data/buildmap.js b/development/tests/cases/data/buildmap.js
index 42e90018cfe727c4d7cf10c2fa098323772b727b..299dcae8c630da65ac30ebce01f65b42efe22ef7 100644
--- a/development/tests/cases/data/buildmap.js
+++ b/development/tests/cases/data/buildmap.js
@@ -1,7 +1,7 @@
 "use strict";
 
 import {expect} from "chai"
-import {buildMap} from "../../../source/data/buildmap.js";
+import {buildMap} from "../../../../application/source/data/buildmap.js";
 
 
 describe('buildMap', function () {
diff --git a/development/tests/cases/data/buildtree.js b/development/tests/cases/data/buildtree.js
index 556602a3b6051532351ad0d0e66b65d78941838c..e2cbb5a55de109271318216a9144290ba96ee3ea 100644
--- a/development/tests/cases/data/buildtree.js
+++ b/development/tests/cases/data/buildtree.js
@@ -1,8 +1,8 @@
 "use strict";
 
 import {expect} from "chai"
-import {buildTree} from "../../../source/data/buildtree.js";
-import {NodeList} from "../../../source/types/nodelist.js";
+import {buildTree} from "../../../../application/source/data/buildtree.js";
+import {NodeList} from "../../../../application/source/types/nodelist.js";
 
 
 describe('buildTree', function () {
diff --git a/development/tests/cases/data/datasource.js b/development/tests/cases/data/datasource.js
index 5324f0b55dfeb4d70eb3195065ff43fc0627c32a..67e6b1e9d51a84cff5db82847efa5b4c0dbe0515 100644
--- a/development/tests/cases/data/datasource.js
+++ b/development/tests/cases/data/datasource.js
@@ -1,7 +1,7 @@
 "use strict";
 
 import {expect} from "chai"
-import {Datasource} from "../../../source/data/datasource.js";
+import {Datasource} from "../../../../application/source/data/datasource.js";
 
 
 describe('Datasource', function () {
diff --git a/development/tests/cases/data/diff.js b/development/tests/cases/data/diff.js
index ac74662661d07fb41f209575ca7732af30b5dd03..803811d4ac9d87e3f66cecdb68cb9dfb86f593b7 100644
--- a/development/tests/cases/data/diff.js
+++ b/development/tests/cases/data/diff.js
@@ -1,8 +1,8 @@
 "use strict";
 
 import {expect} from "chai"
-import {diff} from "../../../source/data/diff.js";
-import {Queue} from "../../../source/types/queue.js";
+import {diff} from "../../../../application/source/data/diff.js";
+import {Queue} from "../../../../application/source/types/queue.js";
 
 describe('Diff', function () {
 
diff --git a/development/tests/cases/data/extend.js b/development/tests/cases/data/extend.js
index 9eede81df0a2fbd4b01f74b9beae1fee7c75adb6..0357ce0249f20fa15913511704b301a682eb90ca 100644
--- a/development/tests/cases/data/extend.js
+++ b/development/tests/cases/data/extend.js
@@ -1,6 +1,6 @@
 "use strict";
 
-import {extend} from "../../../source/data/extend.js";
+import {extend} from "../../../../application/source/data/extend.js";
 import {expect} from "chai"
 
 class MockForExtends {
diff --git a/development/tests/cases/data/pathfinder.js b/development/tests/cases/data/pathfinder.js
index da8609e3596de0817ab4ea45c11c55a93271c931..0544f3b4cab7085423881f40a702a1dc8f6b04f2 100644
--- a/development/tests/cases/data/pathfinder.js
+++ b/development/tests/cases/data/pathfinder.js
@@ -1,7 +1,7 @@
 "use strict";
 
 import {expect} from "chai"
-import {Pathfinder} from "../../../source/data/pathfinder.js";
+import {Pathfinder} from "../../../../application/source/data/pathfinder.js";
 
 describe('Pathfinder', function () {
 
diff --git a/development/tests/cases/data/pipe.js b/development/tests/cases/data/pipe.js
index ccb4b9b0f173cb5ffef8cda26de78d58f82bd1cf..3894e5c19252d88ded043f7126d46ae6539fc699 100644
--- a/development/tests/cases/data/pipe.js
+++ b/development/tests/cases/data/pipe.js
@@ -2,7 +2,7 @@
 
 import * as Crypto from "@peculiar/webcrypto";
 import {expect} from "chai"
-import {Pipe} from "../../../source/data/pipe.js";
+import {Pipe} from "../../../../application/source/data/pipe.js";
 
 if (!global['crypto']) {
     global['crypto'] = new Crypto.Crypto();
diff --git a/development/tests/cases/data/transformer.js b/development/tests/cases/data/transformer.js
index bd6e7808a0e815493ff5cc42017443dff82f79bd..d62285d99fae265298fcb1129e1f1dda5838f427 100644
--- a/development/tests/cases/data/transformer.js
+++ b/development/tests/cases/data/transformer.js
@@ -2,7 +2,7 @@
 
 import * as Crypto from "@peculiar/webcrypto";
 import {expect} from "chai"
-import {Transformer} from "../../../source/data/transformer.js";
+import {Transformer} from "../../../../application/source/data/transformer.js";
 import {initJSDOM} from "../../util/jsdom.js";
 
 
diff --git a/development/tests/cases/dom/assembler.js b/development/tests/cases/dom/assembler.js
index 5e208fef22a44760bd75eaa4dfd0835fded65d40..9a23b3f7a25a56bf8df53f8449bdace32cabfdab 100644
--- a/development/tests/cases/dom/assembler.js
+++ b/development/tests/cases/dom/assembler.js
@@ -2,7 +2,7 @@
 
 import {expect} from "chai"
 
-import {ATTRIBUTEPREFIX, Assembler} from "../../../source/dom/assembler.js";
+import {ATTRIBUTEPREFIX, Assembler} from "../../../../application/source/dom/assembler.js";
 import {initJSDOM} from "../../util/jsdom.js";
 
 describe('Assembler', function () {
diff --git a/development/tests/cases/dom/attributes.js b/development/tests/cases/dom/attributes.js
index 4a1a172793ff6e03570b84d3a25f5afda10d15a0..5eaa3d4e1f7092e94baca417468b5e54063ce072 100644
--- a/development/tests/cases/dom/attributes.js
+++ b/development/tests/cases/dom/attributes.js
@@ -16,7 +16,7 @@ import {
     replaceAttributeToken,
     toggleAttributeToken,
     findClosestByClass
-} from "../../../source/dom/attributes.js";
+} from "../../../../application/source/dom/attributes.js";
 
 import {initJSDOM} from "../../util/jsdom.js";
 
diff --git a/development/tests/cases/dom/customcontrol.js b/development/tests/cases/dom/customcontrol.js
index 7094bfd0c445932e9d4c8fc54afafdb75163519e..59d4da5a4a95952c086d9386d28d5f072ea21898 100644
--- a/development/tests/cases/dom/customcontrol.js
+++ b/development/tests/cases/dom/customcontrol.js
@@ -1,8 +1,8 @@
 'use strict';
 
 import chai from "chai"
-import {ATTRIBUTE_OPTIONS} from "../../../source/dom/constants.js";
-import {getDocument} from "../../../source/dom/util.js";
+import {ATTRIBUTE_OPTIONS} from "../../../../application/source/dom/constants.js";
+import {getDocument} from "../../../../application/source/dom/util.js";
 import {chaiDom} from "../../util/chai-dom.js";
 import {initJSDOM} from "../../util/jsdom.js";
 
@@ -27,11 +27,11 @@ describe('DOM', function () {
                 // jsdom does not support ElementInternals
                 jsdomFlag = navigator.userAgent.includes("jsdom");
 
-                import("../../../source/dom/customelement.js").then((m) => {
+                import("../../../../application/source/dom/customelement.js").then((m) => {
                     registerCustomElement = m['registerCustomElement'];
 
 
-                    import("../../../source/dom/customcontrol.js").then((m) => {
+                    import("../../../../application/source/dom/customcontrol.js").then((m) => {
 
                         document = getDocument();
 
diff --git a/development/tests/cases/dom/customelement.js b/development/tests/cases/dom/customelement.js
index fddabaa386ae4b66b4bbc9de121f107eee7ce3e5..37dca6f9f55bd5521a9a10ff11925341d31de783 100644
--- a/development/tests/cases/dom/customelement.js
+++ b/development/tests/cases/dom/customelement.js
@@ -1,9 +1,9 @@
 'use strict';
 
 import chai from "chai"
-import {internalSymbol} from "../../../source/constants.js";
-import {ATTRIBUTE_OPTIONS} from "../../../source/dom/constants.js";
-import {getDocument} from "../../../source/dom/util.js";
+import {internalSymbol} from "../../../../application/source/constants.js";
+import {ATTRIBUTE_OPTIONS} from "../../../../application/source/dom/constants.js";
+import {getDocument} from "../../../../application/source/dom/util.js";
 import {chaiDom} from "../../util/chai-dom.js";
 import {initJSDOM} from "../../util/jsdom.js";
 
@@ -26,7 +26,7 @@ describe('DOM', function () {
         before(function (done) {
             initJSDOM().then(() => {
 
-                import("../../../source/dom/customelement.js").then((m) => {
+                import("../../../../application/source/dom/customelement.js").then((m) => {
 
                     try {
                         CustomElement = m['CustomElement'];
diff --git a/development/tests/cases/dom/events.js b/development/tests/cases/dom/events.js
index 4d524fba59a08d26393f87a8fe8dd2b39e4896f0..24c67d0ee58e7ce07c1d782048ec6d06a895fdff 100644
--- a/development/tests/cases/dom/events.js
+++ b/development/tests/cases/dom/events.js
@@ -2,7 +2,7 @@
 
 import {expect} from "chai"
 
-import {fireEvent, findTargetElementFromEvent, fireCustomEvent} from "../../../source/dom/events.js";
+import {fireEvent, findTargetElementFromEvent, fireCustomEvent} from "../../../../application/source/dom/events.js";
 import {initJSDOM} from "../../util/jsdom.js";
 
 describe('Events', function () {
diff --git a/development/tests/cases/dom/focusmanager.js b/development/tests/cases/dom/focusmanager.js
index 4e4d8fc8e4ac8a4d9504c8a1e3d527e08f2ad408..f0b0abd7af58b43c74b413e3b18fc08d6f75ce0a 100644
--- a/development/tests/cases/dom/focusmanager.js
+++ b/development/tests/cases/dom/focusmanager.js
@@ -1,7 +1,7 @@
 'use strict';
 
 import {expect} from "chai";
-import {FocusManager} from "../../../source/dom/focusmanager.js";
+import {FocusManager} from "../../../../application/source/dom/focusmanager.js";
 import {cleanupDOMFromTesting, initMutationObserverForTesting} from "../../util/cleanupdom.js";
 import {initJSDOM} from "../../util/jsdom.js";
 
diff --git a/development/tests/cases/dom/locale.js b/development/tests/cases/dom/locale.js
index f61b4762154923cd15c2c4ac2fb458037b23972e..2653747cfef3cbad1cd789e83584dc47f89d6ba6 100644
--- a/development/tests/cases/dom/locale.js
+++ b/development/tests/cases/dom/locale.js
@@ -2,7 +2,7 @@
 
 import {expect} from "chai"
 
-import {getLocaleOfDocument} from "../../../source/dom/locale.js";
+import {getLocaleOfDocument} from "../../../../application/source/dom/locale.js";
 import {initJSDOM} from "../../util/jsdom.js";
 
 describe('Attributes', function () {
diff --git a/development/tests/cases/dom/ready.js b/development/tests/cases/dom/ready.js
index 90cbc57d23f76c7d1b9e913edd935b8a99b78f68..62c3f0d208f08b2f541dc04add186926ba65e005 100644
--- a/development/tests/cases/dom/ready.js
+++ b/development/tests/cases/dom/ready.js
@@ -11,7 +11,7 @@ describe('Ready', function () {
     before(function (done) {
         initJSDOM().then(() => {
 
-            import("../../../source/dom/ready.js").then((m) => {
+            import("../../../../application/source/dom/ready.js").then((m) => {
                 domReady = m['domReady'];
                 windowReady = m['windowReady'];
                 done()
diff --git a/development/tests/cases/dom/resourcemanager.js b/development/tests/cases/dom/resourcemanager.js
index ba842957c4b8617802d8cce9f8fd33e41ea0ec2c..bf8d8dfd2053790d3e7ca02bf5c7d71b07be67cd 100644
--- a/development/tests/cases/dom/resourcemanager.js
+++ b/development/tests/cases/dom/resourcemanager.js
@@ -2,7 +2,7 @@
 
 import {expect} from "chai"
 
-import {ResourceManager} from "../../../source/dom/resourcemanager.js";
+import {ResourceManager} from "../../../../application/source/dom/resourcemanager.js";
 import {cleanupDOMFromTesting, initMutationObserverForTesting} from "../../util/cleanupdom.js";
 import {initJSDOM} from "../../util/jsdom.js";
 
diff --git a/development/tests/cases/dom/template.js b/development/tests/cases/dom/template.js
index 7e3d310cfeacd310fd3cd290eba48a848447f8e1..4be8085b5c9ffebf51560aec5d3890ffff80b1dc 100644
--- a/development/tests/cases/dom/template.js
+++ b/development/tests/cases/dom/template.js
@@ -1,9 +1,9 @@
 'use strict';
 
 import {expect} from "chai"
-import {ATTRIBUTE_THEME_NAME} from "../../../source/dom/constants.js";
+import {ATTRIBUTE_THEME_NAME} from "../../../../application/source/dom/constants.js";
 
-import {findDocumentTemplate, Template} from "../../../source/dom/template.js";
+import {findDocumentTemplate, Template} from "../../../../application/source/dom/template.js";
 import {initJSDOM} from "../../util/jsdom.js";
 
 
diff --git a/development/tests/cases/dom/theme.js b/development/tests/cases/dom/theme.js
index b392f25d514f6105d24ea1fa432134b07b5f0b6f..25dd2158c4a7fce59da97a53509ccab29f27806b 100644
--- a/development/tests/cases/dom/theme.js
+++ b/development/tests/cases/dom/theme.js
@@ -1,9 +1,9 @@
 'use strict';
 
-import {getDocumentFragmentFromString} from "../../../source/dom/util.js";
+import {getDocumentFragmentFromString} from "../../../../application/source/dom/util.js";
 import {initJSDOM} from "../../util/jsdom.js";
 import {expect} from "chai"
-import {Theme, getDocumentTheme} from "../../../source/dom/theme.js";
+import {Theme, getDocumentTheme} from "../../../../application/source/dom/theme.js";
 
 describe('Theme', function () {
     before(function (done) {
diff --git a/development/tests/cases/dom/updater.js b/development/tests/cases/dom/updater.js
index 8975011279bb0338b60e965452851cc58443ff32..6ad92e365030ccdbca324c35ffc2fc7eb33ceb62 100644
--- a/development/tests/cases/dom/updater.js
+++ b/development/tests/cases/dom/updater.js
@@ -1,10 +1,10 @@
 'use strict';
 
 import chai from "chai"
-import {Updater} from "../../../source/dom/updater.js";
-import {ID} from "../../../source/types/id.js";
-import {Observer} from "../../../source/types/observer.js";
-import {ProxyObserver} from "../../../source/types/proxyobserver.js";
+import {Updater} from "../../../../application/source/dom/updater.js";
+import {ID} from "../../../../application/source/types/id.js";
+import {Observer} from "../../../../application/source/types/observer.js";
+import {ProxyObserver} from "../../../../application/source/types/proxyobserver.js";
 import {chaiDom} from "../../util/chai-dom.js";
 import {initJSDOM} from "../../util/jsdom.js";
 
diff --git a/development/tests/cases/dom/util.js b/development/tests/cases/dom/util.js
index 290d2e4e79ef2152e35226aea44e2bdce0c89480..57f4503aa4c2edcc0a33b45d80ad35255e79336a 100644
--- a/development/tests/cases/dom/util.js
+++ b/development/tests/cases/dom/util.js
@@ -2,7 +2,7 @@
 
 import {
     getDocument, getWindow, getDocumentFragmentFromString
-} from "../../../source/dom/util.js";
+} from "../../../../application/source/dom/util.js";
 
 
 import {initJSDOM} from "../../util/jsdom.js";
diff --git a/development/tests/cases/i18n/formatter.js b/development/tests/cases/i18n/formatter.js
index f5336edbba0b5c8d91f0b313bea1c715a2054438..efbf0c52433198c9b493168cb9f5d6b8a7f00cf9 100644
--- a/development/tests/cases/i18n/formatter.js
+++ b/development/tests/cases/i18n/formatter.js
@@ -1,6 +1,6 @@
 import {expect} from "chai"
-import {Formatter} from "../../../source/i18n/formatter.js";
-import {Translations} from "../../../source/i18n/translations.js";
+import {Formatter} from "../../../../application/source/i18n/formatter.js";
+import {Translations} from "../../../../application/source/i18n/translations.js";
 
 
 describe('Formatter', function () {
diff --git a/development/tests/cases/i18n/locale.js b/development/tests/cases/i18n/locale.js
index 02f4c01b347a7fe4db5425062a8be6693906b2fc..93a5b77c6b9296c88916b500c73c6dea70c8a75e 100644
--- a/development/tests/cases/i18n/locale.js
+++ b/development/tests/cases/i18n/locale.js
@@ -1,7 +1,7 @@
 
 
 import {expect} from "chai"
-import {parseLocale, Locale} from "../../../source/i18n/locale.js";
+import {parseLocale, Locale} from "../../../../application/source/i18n/locale.js";
 
 
 describe('Locale', function () {
diff --git a/development/tests/cases/i18n/provider.js b/development/tests/cases/i18n/provider.js
index 8cbaf59cc79627771bb0bdd4cb46fc314fa74877..e78bbb6c98313fdd11292d4041a86a681026743a 100644
--- a/development/tests/cases/i18n/provider.js
+++ b/development/tests/cases/i18n/provider.js
@@ -1,5 +1,5 @@
 import {expect} from "chai"
-import {Provider} from "../../../source/i18n/provider.js";
+import {Provider} from "../../../../application/source/i18n/provider.js";
 
 describe('Provider', function () {
 
diff --git a/development/tests/cases/i18n/translations.js b/development/tests/cases/i18n/translations.js
index 01075b078843695f3807cb2c9fe488a37865315c..5465c2ddaa39716112305d2981050f542f2653df 100644
--- a/development/tests/cases/i18n/translations.js
+++ b/development/tests/cases/i18n/translations.js
@@ -1,6 +1,6 @@
 import {expect} from "chai"
-import {parseLocale} from "../../../source/i18n/locale.js";
-import {Translations} from "../../../source/i18n/translations.js";
+import {parseLocale} from "../../../../application/source/i18n/locale.js";
+import {Translations} from "../../../../application/source/i18n/translations.js";
 
 describe('Translations', function () {
 
diff --git a/development/tests/cases/logging/handler.js b/development/tests/cases/logging/handler.js
index 6f95acc4ce3d44bc79fb163d8b0b196f10570611..4574abfed27d02322161cc0891de5ebf569802b4 100644
--- a/development/tests/cases/logging/handler.js
+++ b/development/tests/cases/logging/handler.js
@@ -1,7 +1,7 @@
 import {expect} from "chai";
-import {ALL, TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF} from "../../../source/logging/logger.js";
-import {Monster, Handler} from "../../../source/logging/handler.js";
-import {LogEntry} from "../../../source/logging/logentry.js";
+import {ALL, TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF} from "../../../../application/source/logging/logger.js";
+import {Monster, Handler} from "../../../../application/source/logging/handler.js";
+import {LogEntry} from "../../../../application/source/logging/logentry.js";
 
 describe('Logging', function () {
 
diff --git a/development/tests/cases/logging/logentry.js b/development/tests/cases/logging/logentry.js
index 92375270b3b58e7233642176ff4f45e97a962bf8..f44ba007b4ee9649588cdba0069e2f1a1e8cbade 100644
--- a/development/tests/cases/logging/logentry.js
+++ b/development/tests/cases/logging/logentry.js
@@ -1,5 +1,5 @@
 import {expect} from "chai"
-import {Monster, LogEntry} from "../../../source/logging/logentry.js";
+import {Monster, LogEntry} from "../../../../application/source/logging/logentry.js";
 
 
 describe('Log', function () {
diff --git a/development/tests/cases/logging/logger.js b/development/tests/cases/logging/logger.js
index ddf77bbffe7ca892c28710086b6e196c0bf776a2..fd64951116f281b8d7a33585860e18ce75489505 100644
--- a/development/tests/cases/logging/logger.js
+++ b/development/tests/cases/logging/logger.js
@@ -1,5 +1,5 @@
 import {expect} from "chai"
-import {Monster, Logger, OFF, ALL, TRACE, DEBUG, INFO, WARN, ERROR, FATAL} from "../../../source/logging/logger.js";
+import {Monster, Logger, OFF, ALL, TRACE, DEBUG, INFO, WARN, ERROR, FATAL} from "../../../../application/source/logging/logger.js";
 
 
 describe('Logging', function () {
diff --git a/development/tests/cases/math/random.js b/development/tests/cases/math/random.js
index 8a360f01c5a8a98dc6e197e47043417e1beb0e6c..5f88d533882384d94e8dfe55ae034698d44ccc57 100644
--- a/development/tests/cases/math/random.js
+++ b/development/tests/cases/math/random.js
@@ -1,8 +1,8 @@
 /** nodejs doesnt support window.crypt */
 import {expect} from "chai"
-import {getGlobal} from "../../../source/types/global.js";
+import {getGlobal} from "../../../../application/source/types/global.js";
 import * as Crypto from "@peculiar/webcrypto";
-import {Monster, random} from "../../../source/math/random.js";
+import {Monster, random} from "../../../../application/source/math/random.js";
 
 const global = getGlobal();
 
diff --git a/development/tests/cases/text/formatter.js b/development/tests/cases/text/formatter.js
index 93ee3b946908133150531cd5cf64a1805645614e..874c0ad48f7c022278a3b4208e7c955ba14b9294 100644
--- a/development/tests/cases/text/formatter.js
+++ b/development/tests/cases/text/formatter.js
@@ -1,5 +1,5 @@
 import {expect} from "chai"
-import {Formatter} from "../../../source/text/formatter.js";
+import {Formatter} from "../../../../application/source/text/formatter.js";
 
 
 describe('Formatter', function () {
diff --git a/development/tests/cases/types/base.js b/development/tests/cases/types/base.js
index 4d45b96bb05fd4ec6d70fd21e4d69689dd1f8c0c..1e47ab586d07827ad94f0fae86e1bf2e17fc3919 100644
--- a/development/tests/cases/types/base.js
+++ b/development/tests/cases/types/base.js
@@ -1,7 +1,7 @@
 "use strict";
 
 import {expect} from "chai"
-import {Base} from "../../../source/types/base.js";
+import {Base} from "../../../../application/source/types/base.js";
 
 
 describe('Base', function () {
diff --git a/development/tests/cases/types/basewithoptions.js b/development/tests/cases/types/basewithoptions.js
index 23e6c379cefd919fe89647b28a62dd50f523db1f..e9aac526ed96b307e2bd07637123d5cd0406a6f3 100644
--- a/development/tests/cases/types/basewithoptions.js
+++ b/development/tests/cases/types/basewithoptions.js
@@ -1,7 +1,7 @@
 "use strict";
 
 import {expect} from "chai"
-import {BaseWithOptions} from "../../../source/types/basewithoptions.js";
+import {BaseWithOptions} from "../../../../application/source/types/basewithoptions.js";
 
 
 describe('BaseWithOptions', function () {
diff --git a/development/tests/cases/types/binary.js b/development/tests/cases/types/binary.js
index 74858821189ec4329ef297c84f4d89837dd83dc0..6a9babaa84c62ea92ae68e8a4cd02c86a42e34cf 100644
--- a/development/tests/cases/types/binary.js
+++ b/development/tests/cases/types/binary.js
@@ -1,7 +1,7 @@
 'use strict';
 
 import {expect} from "chai"
-import {fromBinary, toBinary} from "../../../source/types/binary.js";
+import {fromBinary, toBinary} from "../../../../application/source/types/binary.js";
 
 describe('Binary', function () {
 
diff --git a/development/tests/cases/types/dataurl.js b/development/tests/cases/types/dataurl.js
index 5e7cda8fb55ac81da7aa8813056bbd742dd0595c..388e1db7ee07f58df9ab1a75781071b94682b2f0 100644
--- a/development/tests/cases/types/dataurl.js
+++ b/development/tests/cases/types/dataurl.js
@@ -1,7 +1,7 @@
 'use strict';
 
 import {expect} from "chai"
-import {parseDataURL} from "../../../source/types/dataurl.js";
+import {parseDataURL} from "../../../../application/source/types/dataurl.js";
 
 describe('Dataurl', function () {
 
diff --git a/development/tests/cases/types/global.js b/development/tests/cases/types/global.js
index 666aac9f1b12b1ee0d3b67d8b0c61b82dbb4512f..1392ca305b4e774c7d95c1eec71752359c9425ec 100644
--- a/development/tests/cases/types/global.js
+++ b/development/tests/cases/types/global.js
@@ -1,4 +1,4 @@
-import {getGlobal, getGlobalObject, getGlobalFunction} from "../../../source/types/global.js";
+import {getGlobal, getGlobalObject, getGlobalFunction} from "../../../../application/source/types/global.js";
 import {expect} from "chai"
 
 describe('Global', function () {
diff --git a/development/tests/cases/types/id.js b/development/tests/cases/types/id.js
index 2cef5db1dc8e4b546e221c00ead62605a3cbc9bf..300023ab6d73236d50d3779d88c5ca2d82250cb1 100644
--- a/development/tests/cases/types/id.js
+++ b/development/tests/cases/types/id.js
@@ -1,4 +1,4 @@
-import {Monster, ID} from "../../../source/types/id.js";
+import {Monster, ID} from "../../../../application/source/types/id.js";
 import {expect} from "chai"
 
 import * as Crypto from "@peculiar/webcrypto";
diff --git a/development/tests/cases/types/is.js b/development/tests/cases/types/is.js
index a973e23a382672bbaaa05666012b2bc24a1dcdca..8a835392110788472a75678f8be71fe35e7f4340 100644
--- a/development/tests/cases/types/is.js
+++ b/development/tests/cases/types/is.js
@@ -10,7 +10,7 @@ import {
     isIterable,
     isInteger,
     isSymbol
-} from "../../../source/types/is.js";
+} from "../../../../application/source/types/is.js";
 
 
 import * as Crypto from "@peculiar/webcrypto";
@@ -18,7 +18,7 @@ if(!global['crypto']) {
     global['crypto'] = new Crypto.Crypto();
 }
 
-import {ID} from "../../../source/types/id.js"
+import {ID} from "../../../../application/source/types/id.js"
 
 import {expect} from "chai"
 
diff --git a/development/tests/cases/types/mediatype.js b/development/tests/cases/types/mediatype.js
index 085c1d40e6d38b85c21b5ec4991c64e957d68683..522409f9dccfdd8fcf248346700df0502fdaf523 100644
--- a/development/tests/cases/types/mediatype.js
+++ b/development/tests/cases/types/mediatype.js
@@ -1,7 +1,7 @@
 'use strict';
 
 import {expect} from "chai"
-import {MediaType, parseMediaType} from "../../../source/types/mediatype.js";
+import {MediaType, parseMediaType} from "../../../../application/source/types/mediatype.js";
 
 describe('Dataurl', function () {
 
diff --git a/development/tests/cases/types/node.js b/development/tests/cases/types/node.js
index ed7a849146cec0f5b1988460bbd21bffa66daa49..be6ae9121f02c763195894542ecaaa1cc43d6a3e 100644
--- a/development/tests/cases/types/node.js
+++ b/development/tests/cases/types/node.js
@@ -1,9 +1,9 @@
 'use strict';
 
 import {expect} from "chai"
-import {Node} from "../../../source/types/node.js";
-import {NodeList} from "../../../source/types/nodelist.js";
-import {NodeRecursiveIterator} from "../../../source/types/noderecursiveiterator.js";
+import {Node} from "../../../../application/source/types/node.js";
+import {NodeList} from "../../../../application/source/types/nodelist.js";
+import {NodeRecursiveIterator} from "../../../../application/source/types/noderecursiveiterator.js";
 
 describe('NodeList', function () {
     describe('#constructor', function () {
diff --git a/development/tests/cases/types/nodelist.js b/development/tests/cases/types/nodelist.js
index 49addffc38d23559e8428b93f99f3db44f6c6a34..1603b8bef167f0b0354e0315db5c0a71d87d4e6e 100644
--- a/development/tests/cases/types/nodelist.js
+++ b/development/tests/cases/types/nodelist.js
@@ -1,8 +1,8 @@
 'use strict';
 
 import {expect} from "chai"
-import {Node} from "../../../source/types/node.js";
-import {NodeList} from "../../../source/types/nodelist.js";
+import {Node} from "../../../../application/source/types/node.js";
+import {NodeList} from "../../../../application/source/types/nodelist.js";
 
 describe('NodeList', function () {
     describe('#constructor', function () {
diff --git a/development/tests/cases/types/noderecursiveiterator.js b/development/tests/cases/types/noderecursiveiterator.js
index 9c2687b27ee8899abd1a0e3f73c6cbdaf4029c7c..b3e99272850731861530650b621d96358b25268a 100644
--- a/development/tests/cases/types/noderecursiveiterator.js
+++ b/development/tests/cases/types/noderecursiveiterator.js
@@ -1,9 +1,9 @@
 'use strict';
 
 import {expect} from "chai"
-import {Node} from "../../../source/types/node.js";
-import {NodeList} from "../../../source/types/nodelist.js";
-import {NodeRecursiveIterator} from "../../../source/types/noderecursiveiterator.js";
+import {Node} from "../../../../application/source/types/node.js";
+import {NodeList} from "../../../../application/source/types/nodelist.js";
+import {NodeRecursiveIterator} from "../../../../application/source/types/noderecursiveiterator.js";
 
 describe('NodeRecursiveIterator', function () {
 
diff --git a/development/tests/cases/types/observer.js b/development/tests/cases/types/observer.js
index b7d297692b19c9d17131ab51fc809313cc507766..1419ba14357ab4ec080cabb4919cb450ff720040 100644
--- a/development/tests/cases/types/observer.js
+++ b/development/tests/cases/types/observer.js
@@ -1,6 +1,6 @@
 import {expect} from "chai"
 
-import {Monster, Observer} from "../../../source/types/observer.js";
+import {Monster, Observer} from "../../../../application/source/types/observer.js";
 
 
 describe('Observer', function () {
diff --git a/development/tests/cases/types/observerlist.js b/development/tests/cases/types/observerlist.js
index 7e81875d5bfcc12e2db6530671c626b72d58ea73..f1b4ecd957e8bfdc6d702adc5d5485d84f55ae65 100644
--- a/development/tests/cases/types/observerlist.js
+++ b/development/tests/cases/types/observerlist.js
@@ -1,5 +1,5 @@
-import {Monster, ObserverList} from "../../../source/types/observerlist.js";
-import {Observer} from "../../../source/types/observer.js";
+import {Monster, ObserverList} from "../../../../application/source/types/observerlist.js";
+import {Observer} from "../../../../application/source/types/observer.js";
 import {expect} from "chai"
 
 describe('ObserverList', function () {
diff --git a/development/tests/cases/types/proxyobserver.js b/development/tests/cases/types/proxyobserver.js
index c041e1333d934da1d223f6e6e750599a9a42c4d8..97d76301fccd3a52d70ef64e51bd92e90fc11c76 100644
--- a/development/tests/cases/types/proxyobserver.js
+++ b/development/tests/cases/types/proxyobserver.js
@@ -1,9 +1,9 @@
 import {expect} from "chai"
-import {extend} from "../../../source/data/extend.js";
-import {isObject} from "../../../source/types/is.js";
-import {Observer} from "../../../source/types/observer.js";
+import {extend} from "../../../../application/source/data/extend.js";
+import {isObject} from "../../../../application/source/types/is.js";
+import {Observer} from "../../../../application/source/types/observer.js";
 
-import {ProxyObserver} from "../../../source/types/proxyobserver.js";
+import {ProxyObserver} from "../../../../application/source/types/proxyobserver.js";
 
 describe('ProxyObserver', function () {
 
diff --git a/development/tests/cases/types/queue.js b/development/tests/cases/types/queue.js
index 1825e6c0511b7d06dd713d5aa2b5c644a33b9b7b..492d58cacff329bc613b8f64c91308f36cdf822d 100644
--- a/development/tests/cases/types/queue.js
+++ b/development/tests/cases/types/queue.js
@@ -1,5 +1,5 @@
 import {expect} from "chai"
-import {Queue} from "../../../source/types/queue.js";
+import {Queue} from "../../../../application/source/types/queue.js";
 
 describe('Queue', function () {
     let queue;
diff --git a/development/tests/cases/types/randomid.js b/development/tests/cases/types/randomid.js
index e0c29d7e251786de27bb1a7c3b90cd0b478877df..64b2338dc27ab837545e58d3378122ca66fba98f 100644
--- a/development/tests/cases/types/randomid.js
+++ b/development/tests/cases/types/randomid.js
@@ -1,4 +1,4 @@
-import {Monster, RandomID} from "../../../source/types/randomid.js";
+import {Monster, RandomID} from "../../../../application/source/types/randomid.js";
 import {expect} from "chai"
 
 import * as Crypto from "@peculiar/webcrypto";
diff --git a/development/tests/cases/types/regex.js b/development/tests/cases/types/regex.js
index 24782e2d0dbcd679274a54f7b87c1dc0b9a86a7b..a24e56d0a5dffd6e1ba1fbf78c69289b190c2578 100644
--- a/development/tests/cases/types/regex.js
+++ b/development/tests/cases/types/regex.js
@@ -1,7 +1,7 @@
 import * as Crypto from "@peculiar/webcrypto";
 
 import {expect} from "chai"
-import {escapeString} from "../../../source/types/regex.js"
+import {escapeString} from "../../../../application/source/types/regex.js"
 
 if (!global['crypto']) {
     global['crypto'] = new Crypto.Crypto();
diff --git a/development/tests/cases/types/stack.js b/development/tests/cases/types/stack.js
index 85eddf7eeec10f769481ab0e41b7f28a7f81113f..cdf75fcb6b434fb6bbf1eab0f6cd0af07547d732 100644
--- a/development/tests/cases/types/stack.js
+++ b/development/tests/cases/types/stack.js
@@ -1,5 +1,5 @@
 import {expect} from "chai"
-import {Stack} from "../../../source/types/stack.js";
+import {Stack} from "../../../../application/source/types/stack.js";
 
 
 describe('Stack', function () {
diff --git a/development/tests/cases/types/tokenlist.js b/development/tests/cases/types/tokenlist.js
index 640f50399be659eac0281d4bb0ce5daac5084c0f..d8a66fd64e3be6710b935696054929847beac35f 100644
--- a/development/tests/cases/types/tokenlist.js
+++ b/development/tests/cases/types/tokenlist.js
@@ -1,5 +1,5 @@
 import {expect} from "chai"
-import {Monster, TokenList} from "../../../source/types/tokenlist.js";
+import {Monster, TokenList} from "../../../../application/source/types/tokenlist.js";
 
 
 describe('TokenList', function () {
diff --git a/development/tests/cases/types/typeof.js b/development/tests/cases/types/typeof.js
index 4beab0af1cc8a8e6940cfe78b8b7a9072bc34077..65c993dc1b323cbcb385572dd26dedf51ae38078 100644
--- a/development/tests/cases/types/typeof.js
+++ b/development/tests/cases/types/typeof.js
@@ -1,8 +1,8 @@
-import {Stack} from "../../../source/types/stack.js";
+import {Stack} from "../../../../application/source/types/stack.js";
 import {
     Monster,
     typeOf
-} from "../../../source/types/typeof.js"
+} from "../../../../application/source/types/typeof.js"
 
 import {expect} from "chai"
 
diff --git a/development/tests/cases/types/uniquequeue.js b/development/tests/cases/types/uniquequeue.js
index b1a6b9a32b351bc9d4e9b8e56a3af6184e969bc5..79432ff625d2074844cd3617b63972a810628ae5 100644
--- a/development/tests/cases/types/uniquequeue.js
+++ b/development/tests/cases/types/uniquequeue.js
@@ -1,5 +1,5 @@
 import {expect} from "chai"
-import {Monster, UniqueQueue} from "../../../source/types/uniquequeue.js";
+import {Monster, UniqueQueue} from "../../../../application/source/types/uniquequeue.js";
 
 
 describe('UniqueQueue', function () {
diff --git a/development/tests/cases/types/uuid.js b/development/tests/cases/types/uuid.js
index 4c795257c55292047a1d2ce960d1522142074194..9fa99058323d74a0832beb4e3b7f5c1bb6ab9e55 100644
--- a/development/tests/cases/types/uuid.js
+++ b/development/tests/cases/types/uuid.js
@@ -1,6 +1,6 @@
 import * as Crypto from "@peculiar/webcrypto";
 import {expect} from "chai"
-import {UUID} from "../../../source/types/uuid.js";
+import {UUID} from "../../../../application/source/types/uuid.js";
 
 if (!global['crypto']) {
     global['crypto'] = new Crypto.Crypto();
diff --git a/development/tests/cases/types/validate.js b/development/tests/cases/types/validate.js
index 74c91c1b55eba17dde4bc8ac7f3d84940a8c1dcc..7aea929b45ced5c5a7cb5d5cc31ba6de4ea7bf07 100644
--- a/development/tests/cases/types/validate.js
+++ b/development/tests/cases/types/validate.js
@@ -10,10 +10,10 @@ import {
     validateInstance,
     validateIterable,
     validateSymbol
-} from "../../../source/types/validate.js"
+} from "../../../../application/source/types/validate.js"
 
-import {Base} from "../../../source/types/base.js"
-import {ID} from "../../../source/types/id.js"
+import {Base} from "../../../../application/source/types/base.js"
+import {ID} from "../../../../application/source/types/id.js"
 
 import {expect} from "chai"
 
diff --git a/development/tests/cases/types/version.js b/development/tests/cases/types/version.js
index 0cec14d7f2139c05060fd3ab655d10b963586935..4917c6576a8f59c5644fa2969d8b4971db3f0122 100644
--- a/development/tests/cases/types/version.js
+++ b/development/tests/cases/types/version.js
@@ -1,7 +1,7 @@
 import {
     Monster,
     Version
-} from "../../../source/types/version.js"
+} from "../../../../application/source/types/version.js"
 
 import {expect} from "chai"
 
diff --git a/development/tests/cases/util/clone.js b/development/tests/cases/util/clone.js
index 2c5f23bfd6ef998e019f2f5cfdc67cbd098fa148..4769d00417fff59e15e1a4d103527a5b92b895d2 100644
--- a/development/tests/cases/util/clone.js
+++ b/development/tests/cases/util/clone.js
@@ -1,4 +1,4 @@
-import {clone} from "../../../source/util/clone.js";
+import {clone} from "../../../../application/source/util/clone.js";
 import {expect} from "chai"
 
 describe('Clone', function () {
diff --git a/development/tests/cases/util/comparator.js b/development/tests/cases/util/comparator.js
index 9c4165417c0046b2e1dd7c6d05f95e0dc7236ccf..4a97e007fe9c6fd3ed89c886ca1f27adae29bca8 100644
--- a/development/tests/cases/util/comparator.js
+++ b/development/tests/cases/util/comparator.js
@@ -1,5 +1,5 @@
 import {expect} from "chai"
-import {Comparator} from "../../../source/util/comparator.js";
+import {Comparator} from "../../../../application/source/util/comparator.js";
 
 
 describe('Comparator', function () {
diff --git a/development/tests/cases/util/deadmansswitch.js b/development/tests/cases/util/deadmansswitch.js
index fd5c27e9e2336dbd3eae494903aea01b1763c2ad..cf1e1fffcdae58aa6617f665659d53401710a8ee 100644
--- a/development/tests/cases/util/deadmansswitch.js
+++ b/development/tests/cases/util/deadmansswitch.js
@@ -1,4 +1,4 @@
-import {DeadMansSwitch} from "../../../source/util/deadmansswitch.js";
+import {DeadMansSwitch} from "../../../../application/source/util/deadmansswitch.js";
 
 
 describe('DeadMansSwitch', function () {
diff --git a/development/tests/cases/util/freeze.js b/development/tests/cases/util/freeze.js
index c623e1da7da7b819aedf41fdc929edef3d4024f4..54f47ac3b33f578041112c346ad68136ab1c1cf2 100644
--- a/development/tests/cases/util/freeze.js
+++ b/development/tests/cases/util/freeze.js
@@ -1,5 +1,5 @@
 import {expect} from "chai"
-import {deepFreeze} from "../../../source/util/freeze.js";
+import {deepFreeze} from "../../../../application/source/util/freeze.js";
 
 
 describe('deepFreeze', function () {
diff --git a/development/tests/cases/util/processing.js b/development/tests/cases/util/processing.js
index 8bb1710ad45cc3f30bb144421520a3c75183f27f..0b43b90f5a48901b00956e9d4c388ab191b450b2 100644
--- a/development/tests/cases/util/processing.js
+++ b/development/tests/cases/util/processing.js
@@ -1,5 +1,5 @@
 import {expect} from "chai"
-import {Processing} from "../../../source/util/processing.js";
+import {Processing} from "../../../../application/source/util/processing.js";
 
 
 describe('Processing', function () {
diff --git a/development/tests/cases/util/trimspaces.js b/development/tests/cases/util/trimspaces.js
index 2a6c17dd797ec1a6a2029da149387d17681a4422..679c9545d9ba9a25b7351bf8aad28881de796b94 100644
--- a/development/tests/cases/util/trimspaces.js
+++ b/development/tests/cases/util/trimspaces.js
@@ -1,5 +1,5 @@
 import {expect} from "chai"
-import {trimSpaces} from "../../../source/util/trimspaces.js";
+import {trimSpaces} from "../../../../application/source/util/trimspaces.js";
 
 
 describe('trimSpaces', function () {