From ac97ce5ab2a49171baf844b97b6ddb193d552b8e Mon Sep 17 00:00:00 2001
From: Volker Schukai <volker.schukai@schukai.com>
Date: Sat, 6 Aug 2022 17:29:26 +0200
Subject: [PATCH] chore: commit save point

---
 application/source/constraints/abstract.js    |   7 +-
 .../source/constraints/abstractoperator.js    |   6 +-
 application/source/constraints/andoperator.js |  24 +-
 application/source/constraints/invalid.js     |  22 +-
 application/source/constraints/isarray.js     |  22 +-
 application/source/constraints/isobject.js    |  22 +-
 application/source/constraints/namespace.js   |  15 --
 application/source/constraints/oroperator.js  |  24 +-
 application/source/constraints/valid.js       |  22 +-
 application/source/data/buildmap.js           |  27 +--
 application/source/data/buildtree.js          |  21 +-
 application/source/data/datasource.js         |  23 +-
 .../source/data/datasource/namespace.js       |  16 --
 application/source/data/datasource/restapi.js |  23 +-
 .../data/datasource/restapi/writeerror.js     |   6 +-
 application/source/data/datasource/storage.js |  25 +-
 .../data/datasource/storage/localstorage.js   |  21 +-
 .../data/datasource/storage/namespace.js      |  16 --
 .../data/datasource/storage/sessionstorage.js |  20 +-
 application/source/data/diff.js               |  22 +-
 application/source/data/extend.js             |  21 +-
 application/source/data/namespace.js          |  16 --
 application/source/data/pathfinder.js         |  25 +-
 application/source/data/pipe.js               |  24 +-
 application/source/data/transformer.js        |  22 +-
 application/source/dom/assembler.js           |  11 +-
 application/source/dom/attributes.js          | 218 +++---------------
 application/source/dom/constants.js           | 161 +++++--------
 application/source/dom/customcontrol.js       |   7 +-
 application/source/dom/customelement.js       |  28 +--
 application/source/dom/events.js              |  51 +---
 application/source/dom/focusmanager.js        |  19 +-
 application/source/dom/locale.js              |  20 +-
 application/source/dom/namespace.js           |  15 --
 application/source/dom/ready.js               |  10 +-
 application/source/dom/resource.js            |  19 +-
 application/source/dom/resource/data.js       |  20 +-
 application/source/dom/resource/link.js       |  19 +-
 .../source/dom/resource/link/stylesheet.js    |  18 +-
 application/source/dom/resource/script.js     |  19 +-
 application/source/dom/resourcemanager.js     |  21 +-
 application/source/dom/template.js            |  39 +---
 application/source/dom/theme.js               |  26 +--
 application/source/dom/updater.js             |  22 +-
 application/source/dom/util.js                |  48 +---
 application/source/dom/worker/factory.js      |  22 +-
 application/source/i18n/formatter.js          |  24 +-
 application/source/i18n/locale.js             |  27 +--
 application/source/i18n/namespace.js          |  16 --
 application/source/i18n/provider.js           |  23 +-
 application/source/i18n/providers/fetch.js    |  22 +-
 .../source/i18n/providers/namespace.js        |  16 --
 application/source/i18n/translations.js       |  24 +-
 application/source/logging/handler.js         |  23 +-
 application/source/logging/handler/console.js |  17 +-
 .../source/logging/handler/namespace.js       |  14 --
 application/source/logging/logentry.js        |  22 +-
 application/source/logging/logger.js          |  36 +--
 application/source/logging/namespace.js       |  16 --
 application/source/math/namespace.js          |  16 --
 application/source/math/random.js             |  25 +-
 application/source/text/formatter.js          |  23 +-
 application/source/text/namespace.js          |  16 --
 application/source/types/base.js              |  20 +-
 application/source/types/basewithoptions.js   |  20 +-
 application/source/types/binary.js            |  29 +--
 application/source/types/dataurl.js           |  32 +--
 application/source/types/id.js                |  20 +-
 application/source/types/is.js                | 181 ++-------------
 application/source/types/mediatype.js         |  21 +-
 application/source/types/namespace.js         |  16 --
 application/source/types/node.js              |  18 +-
 application/source/types/nodelist.js          |  18 +-
 .../source/types/noderecursiveiterator.js     |  23 +-
 application/source/types/observer.js          |  23 +-
 application/source/types/observerlist.js      |  21 +-
 application/source/types/package.d.ts         |   1 -
 application/source/types/proxyobserver.js     |  28 +--
 application/source/types/queue.js             |  22 +-
 application/source/types/randomid.js          |  20 +-
 application/source/types/regex.js             |  21 +-
 application/source/types/stack.js             |  20 +-
 application/source/types/tokenlist.js         |  20 +-
 application/source/types/typeof.js            |  22 +-
 application/source/types/uniquequeue.js       |  20 +-
 application/source/types/uuid.js              |  22 +-
 application/source/types/validate.js          | 182 ++-------------
 application/source/types/version.js           |  32 +--
 application/source/util/clone.js              |  20 +-
 application/source/util/comparator.js         |  25 +-
 application/source/util/deadmansswitch.js     |  23 +-
 application/source/util/freeze.js             |  20 +-
 application/source/util/namespace.js          |  16 --
 application/source/util/processing.js         |  22 +-
 application/source/util/trimspaces.js         |   2 +-
 95 files changed, 451 insertions(+), 2194 deletions(-)
 delete mode 100644 application/source/constraints/namespace.js
 delete mode 100644 application/source/data/datasource/namespace.js
 delete mode 100644 application/source/data/datasource/storage/namespace.js
 delete mode 100644 application/source/data/namespace.js
 delete mode 100644 application/source/dom/namespace.js
 delete mode 100644 application/source/i18n/namespace.js
 delete mode 100644 application/source/i18n/providers/namespace.js
 delete mode 100644 application/source/logging/handler/namespace.js
 delete mode 100644 application/source/logging/namespace.js
 delete mode 100644 application/source/math/namespace.js
 delete mode 100644 application/source/text/namespace.js
 delete mode 100644 application/source/types/namespace.js
 delete mode 100644 application/source/types/package.d.ts
 delete mode 100644 application/source/util/namespace.js

diff --git a/application/source/constraints/abstract.js b/application/source/constraints/abstract.js
index 8813074f9..979829d65 100644
--- a/application/source/constraints/abstract.js
+++ b/application/source/constraints/abstract.js
@@ -4,7 +4,7 @@
  * @author schukai GmbH
  */
 
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {Base} from '../types/base.js';
 
 
@@ -22,7 +22,7 @@ import {Base} from '../types/base.js';
  * @memberOf Monster.Constraints
  * @summary The abstract constraint
  */
-class AbstractConstraint extends Base {
+export class AbstractConstraint extends Base {
 
     /**
      *
@@ -41,6 +41,3 @@ class AbstractConstraint extends Base {
         return Promise.reject(value);
     }
 }
-
-assignToNamespace('Monster.Constraints', AbstractConstraint);
-export {Monster, AbstractConstraint}
\ No newline at end of file
diff --git a/application/source/constraints/abstractoperator.js b/application/source/constraints/abstractoperator.js
index 90d15a415..a6eb676bf 100644
--- a/application/source/constraints/abstractoperator.js
+++ b/application/source/constraints/abstractoperator.js
@@ -3,7 +3,7 @@
 /**
  * @author schukai GmbH
  */
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {AbstractConstraint} from "./abstract.js";
 
 /**
@@ -18,7 +18,7 @@ import {AbstractConstraint} from "./abstract.js";
  * @memberOf Monster.Constraints
  * @summary The abstract operator constraint
  */
-class AbstractOperator extends AbstractConstraint {
+export class AbstractOperator extends AbstractConstraint {
 
     /**
      *
@@ -41,5 +41,3 @@ class AbstractOperator extends AbstractConstraint {
 
 }
 
-assignToNamespace('Monster.Constraints', AbstractOperator);
-export {Monster, AbstractOperator}
\ No newline at end of file
diff --git a/application/source/constraints/andoperator.js b/application/source/constraints/andoperator.js
index 654745482..2d54d9109 100644
--- a/application/source/constraints/andoperator.js
+++ b/application/source/constraints/andoperator.js
@@ -4,7 +4,7 @@
  * @author schukai GmbH
  */
 
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {AbstractOperator} from "./abstractoperator.js";
 
 /**
@@ -16,25 +16,16 @@ import {AbstractOperator} from "./abstractoperator.js";
  *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.Constraint.AndOperator();
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/andoperator.js';
+ * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/andoperator.js';
  * new AndOperator();
  * </script>
  * ```
  *
  * @example
  *
- * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/valid.js';
- * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/invalid.js';
- * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/andoperator.js';
+ * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/valid.js';
+ * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/invalid.js';
+ * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/andoperator.js';
  *
  * new AndOperator(
  * new Valid(), new Valid()).isValid()
@@ -53,7 +44,7 @@ import {AbstractOperator} from "./abstractoperator.js";
  * @memberOf Monster.Constraints
  * @summary A and operator constraint
  */
-class AndOperator extends AbstractOperator {
+export class AndOperator extends AbstractOperator {
 
     /**
      * this method return a promise containing the result of the check.
@@ -66,6 +57,3 @@ class AndOperator extends AbstractOperator {
     }
 
 }
-
-assignToNamespace('Monster.Constraints', AndOperator);
-export {Monster, AndOperator}
diff --git a/application/source/constraints/invalid.js b/application/source/constraints/invalid.js
index 1550600e5..dde2876db 100644
--- a/application/source/constraints/invalid.js
+++ b/application/source/constraints/invalid.js
@@ -3,7 +3,7 @@
 /**
  * @author schukai GmbH
  */
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {AbstractConstraint} from "./abstract.js";
 
 /**
@@ -13,27 +13,16 @@ import {AbstractConstraint} from "./abstract.js";
  *
  * The invalid constraint allows an always invalid query to be performed. this constraint is mainly intended for testing.
  *
- * You can call the method via the monster namespace `new Monster.Constraint.Invalid()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.Constraint.Invalid();
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/invalid.js';
+ * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/invalid.js';
  * new Invalid();
  * </script>
  * ```
  *
  * @example
  *
- * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/invalid.js';
+ * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/invalid.js';
  *
  * new Invalid().isValid()
  * .then(()=>console.log(true))
@@ -45,7 +34,7 @@ import {AbstractConstraint} from "./abstract.js";
  * @memberOf Monster.Constraints
  * @summary A constraint that always invalid
  */
-class Invalid extends AbstractConstraint {
+export class Invalid extends AbstractConstraint {
 
     /**
      * this method return a rejected promise
@@ -58,6 +47,3 @@ class Invalid extends AbstractConstraint {
     }
 
 }
-
-assignToNamespace('Monster.Constraints', Invalid);
-export {Monster, Invalid}
diff --git a/application/source/constraints/isarray.js b/application/source/constraints/isarray.js
index 03d48732e..3a091993c 100644
--- a/application/source/constraints/isarray.js
+++ b/application/source/constraints/isarray.js
@@ -3,7 +3,7 @@
 /**
  * @author schukai GmbH
  */
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {isArray} from "../types/is.js";
 import {AbstractConstraint} from "./abstract.js";
 
@@ -12,27 +12,16 @@ import {AbstractConstraint} from "./abstract.js";
  * 
  * The uniform API of the constraints allows chains to be formed.
  * 
- * You can call the method via the monster namespace `new Monster.Constraint.IsObject()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.Constraint.IsArray()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/isarray.js';
+ * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/isarray.js';
  * console.log(new IsArray())
  * </script>
  * ```
  *
  * @example
  *
- * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/isarray.js';
+ * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/isarray.js';
  *
  * new IsArray()
  * .isValid([])
@@ -49,7 +38,7 @@ import {AbstractConstraint} from "./abstract.js";
  * @memberOf Monster.Constraints
  * @summary A constraint to check if a value is an array
  */
-class IsArray extends AbstractConstraint {
+export class IsArray extends AbstractConstraint {
 
     /**
      * this method return a promise containing the result of the check.
@@ -66,6 +55,3 @@ class IsArray extends AbstractConstraint {
     }
 
 }
-
-assignToNamespace('Monster.Constraints', IsArray);
-export {Monster, IsArray}
diff --git a/application/source/constraints/isobject.js b/application/source/constraints/isobject.js
index e9fd31ef4..2b0211b89 100644
--- a/application/source/constraints/isobject.js
+++ b/application/source/constraints/isobject.js
@@ -3,7 +3,7 @@
 /**
  * @author schukai GmbH
  */
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {isObject} from "../types/is.js";
 import {AbstractConstraint} from "./abstract.js";
 
@@ -12,27 +12,16 @@ import {AbstractConstraint} from "./abstract.js";
  *
  * The uniform API of the constraints allows chains to be formed.
  *
- * You can call the method via the monster namespace `new Monster.Constraint.IsObject()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(new Monster.Constraint.IsObject())
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/isobject.js';
+ * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/isobject.js';
  * console.log(new IsObject())
  * </script>
  * ```
  *
  * @example
  *
- * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/isobject.js';
+ * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/isobject.js';
  *
  * new IsObject()
  * .isValid({})
@@ -50,7 +39,7 @@ import {AbstractConstraint} from "./abstract.js";
  * @memberOf Monster.Constraints
  * @summary A constraint to check if a value is an object
  */
-class IsObject extends AbstractConstraint {
+export class IsObject extends AbstractConstraint {
 
     /**
      * this method return a promise containing the result of the check.
@@ -67,6 +56,3 @@ class IsObject extends AbstractConstraint {
     }
 
 }
-
-assignToNamespace('Monster.Constraints', IsObject);
-export {Monster, IsObject}
diff --git a/application/source/constraints/namespace.js b/application/source/constraints/namespace.js
deleted file mode 100644
index 4cc4d6bf7..000000000
--- a/application/source/constraints/namespace.js
+++ /dev/null
@@ -1,15 +0,0 @@
-'use strict';
-
-/**
- * Constraints are used to define conditions that must be met by the value of a variable so that the value can be transferred to the system.
- *
- * @namespace Constraints
- * @memberOf Monster
- * @author schukai GmbH
- */
-
-/**
- * @private
- * @type {string}
- */
-export const namespace = "Monster.Constraints";
\ No newline at end of file
diff --git a/application/source/constraints/oroperator.js b/application/source/constraints/oroperator.js
index a28c09e68..6972c43c3 100644
--- a/application/source/constraints/oroperator.js
+++ b/application/source/constraints/oroperator.js
@@ -3,7 +3,7 @@
 /**
  * @author schukai GmbH
  */
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {AbstractOperator} from "./abstractoperator.js";
 
 /**
@@ -15,25 +15,16 @@ import {AbstractOperator} from "./abstractoperator.js";
  *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.Constraint.OrOperator();
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {OrOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraint/oroperator.js';
+ * import {OrOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraint/oroperator.js';
  * new OrOperator();
  * </script>
  * ```
  *
  * @example
  *
- * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/valid.js';
- * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/invalid.js';
- * import {OrOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/oroperator.js';
+ * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/valid.js';
+ * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/invalid.js';
+ * import {OrOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/oroperator.js';
  *
  * new OrOperator(
  * new Valid(), new Invalid()).isValid()
@@ -52,7 +43,7 @@ import {AbstractOperator} from "./abstractoperator.js";
  * @memberOf Monster.Constraints
  * @summary A or operator 
  */
-class OrOperator extends AbstractOperator {
+export class OrOperator extends AbstractOperator {
 
     /**
      * this method return a promise containing the result of the check.
@@ -92,6 +83,3 @@ class OrOperator extends AbstractOperator {
 
 
 }
-
-assignToNamespace('Monster.Constraints', OrOperator);
-export {Monster, OrOperator}
diff --git a/application/source/constraints/valid.js b/application/source/constraints/valid.js
index b4cf81174..8c4a51f3c 100644
--- a/application/source/constraints/valid.js
+++ b/application/source/constraints/valid.js
@@ -3,7 +3,7 @@
 /**
  * @author schukai GmbH
  */
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {AbstractConstraint} from "./abstract.js";
 
 /**
@@ -13,27 +13,16 @@ import {AbstractConstraint} from "./abstract.js";
  *
  * The valid constraint allows an always valid query to be performed. this constraint is mainly intended for testing.
  *
- * You can call the method via the monster namespace `new Monster.Constraint.Valid()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.Constraint.Valid();
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/valid.js';
+ * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/valid.js';
  * new Valid();
  * </script>
  * ```
  *
  * @example
  *
- * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/valid.js';
+ * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/valid.js';
  *
  * new Valid().isValid()
  * .then(()=>console.log(true))
@@ -45,7 +34,7 @@ import {AbstractConstraint} from "./abstract.js";
  * @memberOf Monster.Constraints
  * @summary A constraint that always valid
  */
-class Valid extends AbstractConstraint {
+export class Valid extends AbstractConstraint {
 
     /**
      * this method return a promise containing the result of the check.
@@ -58,6 +47,3 @@ class Valid extends AbstractConstraint {
     }
 
 }
-
-assignToNamespace('Monster.Constraints', Valid);
-export {Monster, Valid}
diff --git a/application/source/data/buildmap.js b/application/source/data/buildmap.js
index 24b6948c4..b3a343db3 100644
--- a/application/source/data/buildmap.js
+++ b/application/source/data/buildmap.js
@@ -4,7 +4,7 @@
  * @author schukai GmbH
  */
 
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {isFunction, isObject, isString} from "../types/is.js";
 import {validateString} from "../types/validate.js";
 import {clone} from "../util/clone.js";
@@ -23,20 +23,9 @@ export const PARENT = '^';
  * Either a simple definition `a.b.c` or a template `${a.b.c}` can be specified as the path.
  * Key and value can be either a definition or a template. The key does not have to be defined.
  *
- * You can call the method via the monster namespace `Monster.Data.buildMap()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(Monster.Data.buildMap())
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
  * ```
  * <script type="module">
- * import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/buildmap.js';
+ * import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/buildmap.js';
  * console.log(buildMap())
  * </script>
  * ```
@@ -47,7 +36,7 @@ export const PARENT = '^';
  *
  * @example
  *
- * import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/buildmap.js';
+ * import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/buildmap.js';
  * // a typical data structure as reported by an api
  *
  * let map;
@@ -125,7 +114,7 @@ export const PARENT = '^';
  * @throws {TypeError} value is neither a string nor a function
  * @throws {TypeError} the selector callback must return a map
  */
-function buildMap(subject, selector, valueTemplate, keyTemplate, filter) {
+export function buildMap(subject, selector, valueTemplate, keyTemplate, filter) {
     return assembleParts(subject, selector, filter, function (v, k, m) {
         k = build(v, keyTemplate, k);
         v = build(v, valueTemplate);
@@ -143,7 +132,7 @@ function buildMap(subject, selector, valueTemplate, keyTemplate, filter) {
  * @return {Map}
  * @throws {TypeError} selector is neither a string nor a function
  */
-function assembleParts(subject, selector, filter, callback) {
+export function assembleParts(subject, selector, filter, callback) {
 
     const result = new Map();
 
@@ -261,7 +250,7 @@ function buildFlatMap(subject, selector, key, parentMap) {
  * Alternatively to a string selector a callback can be specified. this must return a map.
  *
  * @example
- * import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/buildmap.js';
+ * import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/buildmap.js';
  *
  * let obj = {
  *                "data": [
@@ -427,7 +416,3 @@ function build(subject, definition, defaultValue) {
     return definition;
 
 }
-
-
-assignToNamespace('Monster.Data', buildMap);
-export {Monster, buildMap, assembleParts}
diff --git a/application/source/data/buildtree.js b/application/source/data/buildtree.js
index 78c7b6ecd..db496cc26 100644
--- a/application/source/data/buildtree.js
+++ b/application/source/data/buildtree.js
@@ -4,7 +4,7 @@
  * @author schukai GmbH
  */
 
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {isArray, isObject} from "../types/is.js";
 import {Node} from "../types/node.js";
 import {NodeList} from "../types/nodelist.js";
@@ -34,20 +34,9 @@ const rootSymbol = Symbol('root');
 /**
  * With the help of the function `buildTree()`, nodes can be easily created from data objects.
  *
- * You can call the method via the monster namespace `Monster.Data.buildTree()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/buildtree.js';
- * Monster.Data.buildTree()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
  * ```
  * <script type="module">
- * import {buildTree} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/buildtree.js';
+ * import {buildTree} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/buildtree.js';
  * buildTree()
  * </script>
  * ```
@@ -64,7 +53,7 @@ const rootSymbol = Symbol('root');
  * @throws {Error} the object has no value for the specified id
  * @since 1.26.0
  */
-function buildTree(subject, selector, idKey, parentIDKey, options) {
+export function buildTree(subject, selector, idKey, parentIDKey, options) {
 
     const nodes = new Map;
 
@@ -123,7 +112,3 @@ function buildTree(subject, selector, idKey, parentIDKey, options) {
 
     return list;
 }
-
-
-assignToNamespace('Monster.Data', buildTree);
-export {Monster, buildTree}
diff --git a/application/source/data/datasource.js b/application/source/data/datasource.js
index 875a3b26f..a0cd11fb1 100644
--- a/application/source/data/datasource.js
+++ b/application/source/data/datasource.js
@@ -5,7 +5,7 @@
  */
 
 import {internalSymbol} from "../constants.js";
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {Base} from "../types/base.js";
 import {parseDataURL} from "../types/dataurl.js";
 import {isString} from "../types/is.js";
@@ -27,27 +27,16 @@ const internalDataSymbol = Symbol('internalData');
  * The datasource class is the basis for dealing with different data sources.
  * It provides a unified interface for accessing data
  *
- * You can create an object of this class using the monster namespace `Monster.Data.Datasource()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.Data.Datasource()
- * </script>
- * ```
- *
- * Alternatively you can import the class directly
- *
  * ```
  * <script type="module">
- * import {Datasource} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/datasource.js';
+ * import {Datasource} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/datasource.js';
  * new Datasource()
  * </script>
  * ```
  *
  * @example
  *
- * import {Datasource} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/datasource.js'
+ * import {Datasource} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/datasource.js'
  *
  * class MyDatasource extends Datasource {
  *  
@@ -60,7 +49,7 @@ const internalDataSymbol = Symbol('internalData');
  * @memberOf Monster.Data
  * @summary The datasource class encapsulates the access to data objects.
  */
-class Datasource extends Base {
+export class Datasource extends Base {
 
     /**
      *
@@ -240,7 +229,3 @@ function parseOptionsJSON(data) {
 
     return {};
 }
-
-
-assignToNamespace('Monster.Data', Datasource);
-export {Monster, Datasource}
diff --git a/application/source/data/datasource/namespace.js b/application/source/data/datasource/namespace.js
deleted file mode 100644
index 31e3e545e..000000000
--- a/application/source/data/datasource/namespace.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-
-/**
- * Namespace for datasources
- *
- * @namespace Monster.Data.Datasource
- * @memberOf Monster.Data
- * @author schukai GmbH
- */
-
-
-/**
- * @private
- * @type {string}
- */
-export const namespace = "Monster.Data.Datasource";
\ No newline at end of file
diff --git a/application/source/data/datasource/restapi.js b/application/source/data/datasource/restapi.js
index 8df7cb79b..18875e3a3 100644
--- a/application/source/data/datasource/restapi.js
+++ b/application/source/data/datasource/restapi.js
@@ -13,27 +13,18 @@ import {Pipe} from "../pipe.js";
 import {WriteError} from "./restapi/writeerror.js";
 
 /**
- * You can create an object of this class using the monster namespace `Monster.Data.Datasource.RestAPI()`.
- *
+ * The RestAPI is a class that enables a REST API server.
+ * 
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.Data.Datasource.RestAPI()
- * </script>
- * ```
- *
- * Alternatively you can import the class directly
- *
- * ```
- * <script type="module">
- * import {RestAPI} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/datasource/restapi.js';
+ * import {RestAPI} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/datasource/restapi.js';
  * new RestAPI()
  * </script>
  * ```
  *
  * @example
  *
- * import {RestAPI} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/datasource/restapi.js';
+ * import {RestAPI} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/datasource/restapi.js';
  *
  * const ds = new RestAPI({
  *   url: 'https://httpbin.org/get'
@@ -50,7 +41,7 @@ import {WriteError} from "./restapi/writeerror.js";
  * @memberOf Monster.Data.Datasource
  * @summary The LocalStorage class encapsulates the access to data objects.
  */
-class RestAPI extends Datasource {
+export class RestAPI extends Datasource {
 
     /**
      *
@@ -260,7 +251,3 @@ class RestAPI extends Datasource {
  * @memberOf Monster.Data
  * @see Monster.Data.Datasource
  */
-
-
-assignToNamespace('Monster.Data.Datasource', RestAPI);
-export {Monster, RestAPI}
diff --git a/application/source/data/datasource/restapi/writeerror.js b/application/source/data/datasource/restapi/writeerror.js
index ae4cac057..d18f7b0f5 100644
--- a/application/source/data/datasource/restapi/writeerror.js
+++ b/application/source/data/datasource/restapi/writeerror.js
@@ -15,7 +15,7 @@ import {assignToNamespace, Monster} from '../../../namespace.js';
  * @memberOf Monster.Data.Datasource.RestAPI
  * @summary the error is thrown by the rest api in case of error
  */
-class WriteError extends Error {
+export class WriteError extends Error {
     /**
      *
      * @param {string} message
@@ -43,7 +43,3 @@ class WriteError extends Error {
         return this[internalSymbol]['validation']
     }
 }
-
-
-assignToNamespace('Monster.Data.Datasource.RestAPI', WriteError);
-export {Monster, WriteError}
\ No newline at end of file
diff --git a/application/source/data/datasource/storage.js b/application/source/data/datasource/storage.js
index 4d4a6049e..06d01b61a 100644
--- a/application/source/data/datasource/storage.js
+++ b/application/source/data/datasource/storage.js
@@ -13,30 +13,21 @@ import {Datasource} from "../datasource.js";
  * @private
  * @type {symbol}
  */
-const storageObjectSymbol = Symbol('storageObject');
+export const storageObjectSymbol = Symbol('storageObject');
 
 /**
- * You can create an object of this class using the monster namespace `Monster.Data.Datasource.Storage()`.
- *
+ * The class represents a record.
+ * 
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.Data.Datasource.Storage()
- * </script>
- * ```
- *
- * Alternatively you can import the class directly
- *
- * ```
- * <script type="module">
- * import {Storage} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/datasource/storage.js';
+ * import {Storage} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/datasource/storage.js';
  * new Storage()
  * </script>
  * ```
  *
  * @example
  *
- * import {Storage} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/datasource/storage.js';
+ * import {Storage} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/datasource/storage.js';
  *
  * new Datasource();
  *
@@ -45,7 +36,7 @@ const storageObjectSymbol = Symbol('storageObject');
  * @memberOf Monster.Data.Datasource
  * @summary The Storage class encapsulates the access to data objects over WebStorageAPI.
  */
-class Storage extends Datasource {
+export class Storage extends Datasource {
 
     /**
      *
@@ -125,7 +116,3 @@ class Storage extends Datasource {
     } 
     
 }
-
-
-assignToNamespace('Monster.Data.Datasource', Storage);
-export {Monster, Storage, storageObjectSymbol}
diff --git a/application/source/data/datasource/storage/localstorage.js b/application/source/data/datasource/storage/localstorage.js
index 8094fe589..4f79ea64d 100644
--- a/application/source/data/datasource/storage/localstorage.js
+++ b/application/source/data/datasource/storage/localstorage.js
@@ -10,24 +10,12 @@ import {getGlobalObject} from "../../../types/global.js";
 import {Datasource} from "../../datasource.js";
 import {Storage, storageObjectSymbol} from "../storage.js";
 
-
 /**
+ * The LocalStorage Datasource provides a data store in the browser localStorage.
  * 
- * 
- * You can create an object of this class using the monster namespace `Monster.Data.Datasource.Storage.LocalStorage()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.Data.Datasource.Storage.LocalStorage()
- * </script>
- * ```
- *
- * Alternatively you can import the class directly
- *
  * ```
  * <script type="module">
- * import {LocalStorage} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/datasource/storage/localstorage.js';
+ * import {LocalStorage} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/datasource/storage/localstorage.js';
  * new LocalStorage()
  * </script>
  * ```
@@ -37,7 +25,7 @@ import {Storage, storageObjectSymbol} from "../storage.js";
  * @memberOf Monster.Data.Datasource.Storage
  * @summary The LocalStorage class encapsulates the access to data objects.
  */
-class LocalStorage extends Storage {
+export class LocalStorage extends Storage {
 
     /**
      * @throws {Error} this method must be implemented by derived classes.
@@ -59,6 +47,3 @@ class LocalStorage extends Storage {
 
 
 }
-
-assignToNamespace('Monster.Data.Datasource.Storage', LocalStorage);
-export {Monster, LocalStorage}
diff --git a/application/source/data/datasource/storage/namespace.js b/application/source/data/datasource/storage/namespace.js
deleted file mode 100644
index 122d1e020..000000000
--- a/application/source/data/datasource/storage/namespace.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-
-/**
- * Namespace for storages
- *
- * @namespace Monster.Data.Datasource.Storage
- * @memberOf Monster.Data.Datasource
- * @author schukai GmbH
- */
-
-
-/**
- * @private
- * @type {string}
- */
-export const namespace = "Monster.Data.Datasource.Storage";
\ No newline at end of file
diff --git a/application/source/data/datasource/storage/sessionstorage.js b/application/source/data/datasource/storage/sessionstorage.js
index 5cbbe6880..245d8a74f 100644
--- a/application/source/data/datasource/storage/sessionstorage.js
+++ b/application/source/data/datasource/storage/sessionstorage.js
@@ -11,20 +11,11 @@ import {Datasource} from "../../datasource.js";
 import {Storage, storageObjectSymbol} from "../storage.js";
 
 /**
- * You can create an object of this class using the monster namespace `Monster.Data.Datasource.Storage.SessionStorage()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.Data.Datasource.Storage.SessionStorage()
- * </script>
- * ```
- *
- * Alternatively you can import the class directly
- *
+ * The SessionStorage class provides a data source that uses the SessionStorage API on the client.
+ * 
  * ```
  * <script type="module">
- * import {SessionStorage} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/datasource/storage/sessionstorage.js';
+ * import {SessionStorage} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/datasource/storage/sessionstorage.js';
  * new SessionStorage()
  * </script>
  * ```
@@ -34,7 +25,7 @@ import {Storage, storageObjectSymbol} from "../storage.js";
  * @memberOf Monster.Data.Datasource.Storage
  * @summary The LocalStorage class encapsulates the access to data objects.
  */
-class SessionStorage extends Storage {
+export class SessionStorage extends Storage {
 
     /**
      * @throws {Error} this method must be implemented by derived classes.
@@ -56,6 +47,3 @@ class SessionStorage extends Storage {
     }
 
 }
-
-assignToNamespace('Monster.Data.Datasource.Storage', SessionStorage);
-export {Monster, SessionStorage}
diff --git a/application/source/data/diff.js b/application/source/data/diff.js
index 086bca728..2871ab0ad 100644
--- a/application/source/data/diff.js
+++ b/application/source/data/diff.js
@@ -4,7 +4,7 @@
  * @author schukai GmbH
  */
 
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {isArray, isObject} from "../types/is.js";
 import {typeOf} from "../types/typeof.js";
 
@@ -13,27 +13,16 @@ import {typeOf} from "../types/typeof.js";
  *
  * The operator `add` means that something has been added to the second object. `delete` means that something has been deleted from the second object compared to the first object.
  *
- * You can call the method via the monster namespace `Monster.Data.Diff()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.Data.Diff(a, b)
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {Diff} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/diff.js';
+ * import {Diff} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/diff.js';
  * Diff(a, b)
  * </script>
  * ```
  *
  * @example
  *
- * import {Diff} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/diff.js';
+ * import {Diff} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/diff.js';
  *
  * // given are two objects x and y.
  *
@@ -80,7 +69,7 @@ import {typeOf} from "../types/typeof.js";
  * @copyright schukai GmbH
  * @memberOf Monster.Data
  */
-function diff(first, second) {
+export function diff(first, second) {
     return doDiff(first, second)
 }
 
@@ -244,6 +233,3 @@ function getOperator(a, b) {
     return operator;
 
 }
-
-assignToNamespace('Monster.Data', diff);
-export {Monster, diff}
diff --git a/application/source/data/extend.js b/application/source/data/extend.js
index 821b2df50..0fc6ce7e2 100644
--- a/application/source/data/extend.js
+++ b/application/source/data/extend.js
@@ -3,7 +3,7 @@
 /**
  * @author schukai GmbH
  */
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {isArray, isObject} from "../types/is.js";
 import {typeOf} from "../types/typeof.js";
 
@@ -11,20 +11,9 @@ import {typeOf} from "../types/typeof.js";
  * Extend copies all enumerable own properties from one or
  * more source objects to a target object. It returns the modified target object.
  *
- * You can call the method via the monster namespace `Monster.Data.extend()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.Data.extend(a, b)
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
  * ```
  * <script type="module">
- * import {extend} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/extend.js';
+ * import {extend} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/extend.js';
  * extend(a, b)
  * </script>
  * ```
@@ -38,7 +27,7 @@ import {typeOf} from "../types/typeof.js";
  * @throws {Error} unsupported argument
  * @throws {Error} type mismatch
  */
-function extend() {
+export function extend() {
     let o, i;
 
     for (i = 0; i < arguments.length; i++) {
@@ -86,7 +75,3 @@ function extend() {
 
     return o;
 }
-
-
-assignToNamespace('Monster.Data', extend);
-export {Monster, extend}
diff --git a/application/source/data/namespace.js b/application/source/data/namespace.js
deleted file mode 100644
index c4f008b29..000000000
--- a/application/source/data/namespace.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-
-/**
- * In this namespace you will find classes and methods for handling data.
- *
- * @namespace Monster.Data
- * @memberOf Monster
- * @author schukai GmbH
- */
-
-
-/**
- * @private
- * @type {string}
- */
-export const namespace = "Monster.Data";
\ No newline at end of file
diff --git a/application/source/data/pathfinder.js b/application/source/data/pathfinder.js
index aa520cb0a..4b78c5f8e 100644
--- a/application/source/data/pathfinder.js
+++ b/application/source/data/pathfinder.js
@@ -3,7 +3,7 @@
 /**
  * @author schukai GmbH
  */
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {Base} from '../types/base.js';
 import {isArray, isInteger, isObject, isPrimitive} from '../types/is.js';
 import {Stack} from "../types/stack.js";
@@ -24,20 +24,11 @@ export const DELIMITER = '.';
 export const WILDCARD = '*';
 
 /**
- * You can call the method via the monster namespace `new Monster.Data.Pathfinder()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(new Monster.Data.Pathfinder())
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
+ * Pathfinder is a class to find a path to an object.
+ * 
  * ```
  * <script type="module">
- * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/pathfinder.js';
+ * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/pathfinder.js';
  * console.log(new Pathfinder())
  * </script>
  * ```
@@ -79,7 +70,7 @@ export const WILDCARD = '*';
  *
  * @example
  *
- * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/pathfinder.js';
+ * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/pathfinder.js';
  *
  * let value = new Pathfinder({
  * a: {
@@ -105,7 +96,7 @@ export const WILDCARD = '*';
  *
  * @example
  *
- * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/pathfinder.js';
+ * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/pathfinder.js';
  *
  * let p = new Pathfinder({
  *                a: {
@@ -129,7 +120,7 @@ export const WILDCARD = '*';
  * @copyright schukai GmbH
  * @memberOf Monster.Data
  */
-class Pathfinder extends Base {
+export class Pathfinder extends Base {
 
     /**
      * @param {array|object|Map|Set} value
@@ -232,8 +223,6 @@ class Pathfinder extends Base {
 
 }
 
-assignToNamespace('Monster.Data', Pathfinder);
-export {Monster, Pathfinder}
 
 /**
  *
diff --git a/application/source/data/pipe.js b/application/source/data/pipe.js
index 242b078ac..c1c7dbe69 100644
--- a/application/source/data/pipe.js
+++ b/application/source/data/pipe.js
@@ -4,31 +4,20 @@
  * @author schukai GmbH
  */
 
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {Base} from '../types/base.js';
 import {validateString} from '../types/validate.js';
 import {Transformer} from './transformer.js';
 
 
-const DELIMITER = '|';
+export const DELIMITER = '|';
 
 /**
  * The pipe class makes it possible to combine several processing steps.
  *
- * You can call the method via the monster namespace `new Monster.Data.Pipe()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.Data.Pipe()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/pipe.js';
+ * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/pipe.js';
  * new Pipe()
  * </script>
  * ```
@@ -39,7 +28,7 @@ const DELIMITER = '|';
  * the word is then converted to uppercase letters and a prefix Hello is added. the two backslash safe the space char.
  *
  * @example
- * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/pipe.js';
+ * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/pipe.js';
  *
  * let obj = {
  *    a: {
@@ -58,7 +47,7 @@ const DELIMITER = '|';
  * @copyright schukai GmbH
  * @memberOf Monster.Data
  */
-class Pipe extends Base {
+export class Pipe extends Base {
 
     /**
      *
@@ -106,6 +95,3 @@ class Pipe extends Base {
         }, value);
     }
 }
-
-assignToNamespace('Monster.Data', Pipe);
-export {Monster, Pipe}
diff --git a/application/source/data/transformer.js b/application/source/data/transformer.js
index 430351b6f..ec84d48d8 100644
--- a/application/source/data/transformer.js
+++ b/application/source/data/transformer.js
@@ -3,7 +3,7 @@
 /**
  * @author schukai GmbH
  */
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {Base} from '../types/base.js';
 import {getGlobal, getGlobalObject} from "../types/global.js";
 import {ID} from '../types/id.js';
@@ -21,20 +21,9 @@ import {Pathfinder} from "./pathfinder.js";
 /**
  * The transformer class is a swiss army knife for manipulating values. especially in combination with the pipe, processing chains can be built up.
  *
- * You can call the method via the monster namespace `new Monster.Data.Transformer()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.Data.Transformer()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {Transformer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/transformer.js';
+ * import {Transformer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/transformer.js';
  * new Transformer()
  * </script>
  * ```
@@ -120,7 +109,7 @@ import {Pathfinder} from "./pathfinder.js";
  *
  * @example
  *
- * import {Transformer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/transformer.js';
+ * import {Transformer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/transformer.js';
  *
  * const transformer = new Transformer("tolower")
  *
@@ -134,7 +123,7 @@ import {Pathfinder} from "./pathfinder.js";
  * @copyright schukai GmbH
  * @memberOf Monster.Data
  */
-class Transformer extends Base {
+export class Transformer extends Base {
     /**
      *
      * @param {string} definition
@@ -185,9 +174,6 @@ class Transformer extends Base {
     }
 }
 
-assignToNamespace('Monster.Data', Transformer);
-export {Monster, Transformer}
-
 /**
  *
  * @param {string} command
diff --git a/application/source/dom/assembler.js b/application/source/dom/assembler.js
index 65dd73382..176641040 100644
--- a/application/source/dom/assembler.js
+++ b/application/source/dom/assembler.js
@@ -3,7 +3,7 @@
 /**
  * @author schukai GmbH
  */
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {Base} from '../types/base.js';
 import {getGlobalFunction} from "../types/global.js";
 import {ProxyObserver} from "../types/proxyobserver.js";
@@ -16,7 +16,7 @@ import {validateInstance, validateString} from "../types/validate.js";
  * @type {string}
  * @memberOf Monster.DOM
  */
-const ATTRIBUTEPREFIX = "data-monster-";
+export const ATTRIBUTEPREFIX = "data-monster-";
 
 /**
  * you can call the method via the monster namespace `new Monster.DOM.Assembler()`.
@@ -32,7 +32,7 @@ const ATTRIBUTEPREFIX = "data-monster-";
  *
  * ```
  * <script type="module">
- * import {Assembler} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/assembler.js';
+ * import {Assembler} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/assembler.js';
  * console.log(new Assembler())
  * </script>
  * ```
@@ -42,7 +42,7 @@ const ATTRIBUTEPREFIX = "data-monster-";
  * @memberOf Monster.DOM
  * @summary Allows you to build an html fragment
  */
-class Assembler extends Base {
+export class Assembler extends Base {
 
     /**
      * @param {DocumentFragment} fragment
@@ -95,6 +95,3 @@ class Assembler extends Base {
     }
 
 }
-
-assignToNamespace('Monster.DOM', Assembler);
-export {Monster, ATTRIBUTEPREFIX, Assembler}
diff --git a/application/source/dom/attributes.js b/application/source/dom/attributes.js
index 75e8dcbd4..88410c3f1 100644
--- a/application/source/dom/attributes.js
+++ b/application/source/dom/attributes.js
@@ -4,7 +4,7 @@
  * @author schukai GmbH
  */
 
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {getGlobalFunction} from "../types/global.js";
 import {TokenList} from "../types/tokenlist.js";
 import {validateInstance, validateString, validateSymbol} from "../types/validate.js";
@@ -16,20 +16,9 @@ import {ATTRIBUTE_OBJECTLINK} from "./constants.js";
  * if a node is specified without a object link, a recursive search upwards is performed until the corresponding
  * object link is found, or undefined is returned.
  *
- * you can call the method via the monster namespace `Monster.DOM.getUpdaterFromNode()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(Monster.DOM.findClosestObjectLink())
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
  * ```
  * <script type="module">
- * import {getUpdaterFromNode} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/updater.js';
+ * import {getUpdaterFromNode} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/updater.js';
  * console.log(findClosestObjectLink())
  * </script>
  * ```
@@ -41,25 +30,16 @@ import {ATTRIBUTE_OBJECTLINK} from "./constants.js";
  * @memberOf Monster.DOM
  * @throws {TypeError} value is not an instance of HTMLElement
  */
-function findClosestObjectLink(element) {
+export function findClosestObjectLink(element) {
     return findClosestByAttribute(element, ATTRIBUTE_OBJECTLINK);
 }
 
 /**
- * You can call the method via the monster namespace `new Monster.DOM.addToObjectLink()`.
- *
+ * Adds a class attribute to an element.
+ * 
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.DOM.addToObjectLink();
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {addToObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/attributes.js';
+ * import {addToObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/attributes.js';
  * addToObjectLink();
  * </script>
  * ```
@@ -72,7 +52,7 @@ function findClosestObjectLink(element) {
  * @param {Object} object
  * @return {boolean}
  */
-function addToObjectLink(element, symbol, object) {
+export function addToObjectLink(element, symbol, object) {
 
     validateInstance(element, HTMLElement);
     validateSymbol(symbol)
@@ -88,20 +68,11 @@ function addToObjectLink(element, symbol, object) {
 }
 
 /**
- * You can call the method via the monster namespace `new Monster.DOM.removeObjectLink()`.
+ * Removes an object from an element
  *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.DOM.removeObjectLink();
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {removeObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/attributes.js';
+ * import {removeObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/attributes.js';
  * removeObjectLink();
  * </script>
  * ```
@@ -113,7 +84,7 @@ function addToObjectLink(element, symbol, object) {
  * @param {Symbol} symbol
  * @return {boolean}
  */
-function removeObjectLink(element, symbol) {
+export function removeObjectLink(element, symbol) {
 
     validateInstance(element, HTMLElement);
     validateSymbol(symbol)
@@ -130,20 +101,11 @@ function removeObjectLink(element, symbol) {
 
 
 /**
- * You can call the method via the monster namespace `new Monster.DOM.hasObjectLink()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.DOM.hasObjectLink();
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
+ * Checks if an element has an object link
  *
  * ```
  * <script type="module">
- * import {hasObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/attributes.js';
+ * import {hasObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/attributes.js';
  * hasObjectLink();
  * </script>
  * ```
@@ -155,7 +117,7 @@ function removeObjectLink(element, symbol) {
  * @param {Symbol} symbol
  * @return {boolean}
  */
-function hasObjectLink(element, symbol) {
+export function hasObjectLink(element, symbol) {
 
     validateInstance(element, HTMLElement);
     validateSymbol(symbol)
@@ -176,20 +138,9 @@ function hasObjectLink(element, symbol) {
  *
  * With the method  {@see {@link addToObjectLink}} the objects can be added.
  *
- * You can call the method via the monster namespace `new Monster.DOM.getLinkedObjects()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.DOM.getLinkedObjects();
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
  * ```
  * <script type="module">
- * import {getLinkedObjects} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/attributes.js';
+ * import {getLinkedObjects} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/attributes.js';
  * getLinkedObjects();
  * </script>
  * ```
@@ -202,7 +153,7 @@ function hasObjectLink(element, symbol) {
  * @return {Iterator}
  * @throws {Error} there is no object link for symbol
  */
-function getLinkedObjects(element, symbol) {
+export function getLinkedObjects(element, symbol) {
 
     validateInstance(element, HTMLElement);
     validateSymbol(symbol)
@@ -221,20 +172,9 @@ function getLinkedObjects(element, symbol) {
  *
  * Tokens are always separated by a space.
  *
- * You can call the method via the monster namespace `new Monster.DOM.toggleAttributeToken()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.DOM.toggleAttributeToken();
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {toggleAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/attributes.js';
+ * import {toggleAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/attributes.js';
  * toggleAttributeToken();
  * </script>
  * ```
@@ -247,7 +187,7 @@ function getLinkedObjects(element, symbol) {
  * @param {string} token
  * @return {HTMLElement}
  */
-function toggleAttributeToken(element, key, token) {
+export function toggleAttributeToken(element, key, token) {
     validateInstance(element, HTMLElement);
     validateString(token)
     validateString(key)
@@ -265,20 +205,9 @@ function toggleAttributeToken(element, key, token) {
 /**
  * This method can be used to add a token to an attribute. Tokens are always separated by a space.
  *
- * You can call the method via the monster namespace `new Monster.DOM.addAttributeToken()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.DOM.addAttributeToken();
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
  * ```
  * <script type="module">
- * import {addAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/attributes.js';
+ * import {addAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/attributes.js';
  * addAttributeToken();
  * </script>
  * ```
@@ -291,7 +220,7 @@ function toggleAttributeToken(element, key, token) {
  * @param {string} token
  * @return {HTMLElement}
  */
-function addAttributeToken(element, key, token) {
+export function addAttributeToken(element, key, token) {
     validateInstance(element, HTMLElement);
     validateString(token)
     validateString(key)
@@ -311,20 +240,9 @@ function addAttributeToken(element, key, token) {
  *
  * Tokens are always separated by a space.
  *
- * You can call the method via the monster namespace `new Monster.DOM.removeAttributeToken()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.DOM.removeAttributeToken();
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
  * ```
  * <script type="module">
- * import {removeAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/attributes.js';
+ * import {removeAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/attributes.js';
  * removeAttributeToken();
  * </script>
  * ```
@@ -337,7 +255,7 @@ function addAttributeToken(element, key, token) {
  * @param {string} token
  * @return {HTMLElement}
  */
-function removeAttributeToken(element, key, token) {
+export function removeAttributeToken(element, key, token) {
     validateInstance(element, HTMLElement);
     validateString(token)
     validateString(key)
@@ -356,20 +274,9 @@ function removeAttributeToken(element, key, token) {
  *
  * Tokens are always separated by a space.
  *
- * You can call the method via the monster namespace `new Monster.DOM.containsAttributeToken()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.DOM.containsAttributeToken();
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {containsAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/attributes.js';
+ * import {containsAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/attributes.js';
  * containsAttributeToken();
  * </script>
  * ```
@@ -382,7 +289,7 @@ function removeAttributeToken(element, key, token) {
  * @param {string} token
  * @return {boolean}
  */
-function containsAttributeToken(element, key, token) {
+export function containsAttributeToken(element, key, token) {
     validateInstance(element, HTMLElement);
     validateString(token)
     validateString(key)
@@ -398,20 +305,9 @@ function containsAttributeToken(element, key, token) {
 /**
  * Tokens are always separated by a space.
  *
- * You can call the method via the monster namespace `new Monster.DOM.replaceAttributeToken()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.DOM.replaceAttributeToken();
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
  * ```
  * <script type="module">
- * import {replaceAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/attributes.js';
+ * import {replaceAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/attributes.js';
  * replaceAttributeToken();
  * </script>
  * ```
@@ -425,7 +321,7 @@ function containsAttributeToken(element, key, token) {
  * @param {string} to
  * @return {HTMLElement}
  */
-function replaceAttributeToken(element, key, from, to) {
+export function replaceAttributeToken(element, key, from, to) {
     validateInstance(element, HTMLElement);
     validateString(from)
     validateString(to)
@@ -443,20 +339,9 @@ function replaceAttributeToken(element, key, from, to) {
 /**
  * Tokens are always separated by a space.
  *
- * You can call the method via the monster namespace `new Monster.DOM.clearAttributeTokens()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.DOM.clearAttributeTokens();
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
  * ```
  * <script type="module">
- * import {clearAttributeTokens} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/attributes.js';
+ * import {clearAttributeTokens} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/attributes.js';
  * clearAttributeTokens();
  * </script>
  * ```
@@ -468,7 +353,7 @@ function replaceAttributeToken(element, key, from, to) {
  * @param {string} key
  * @return {HTMLElement}
  */
-function clearAttributeTokens(element, key) {
+export function clearAttributeTokens(element, key) {
     validateInstance(element, HTMLElement);
     validateString(key)
 
@@ -500,20 +385,9 @@ function clearAttributeTokens(element, key) {
  * findClosestByAttribute(document.getElementById('1'),'data-my-attribute', '2'); // ↦ node with id 2
  * ```
  *
- * You can call the method via the monster namespace `new Monster.DOM.findClosestByAttribute()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.DOM.findClosestByAttribute();
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {findClosestByAttribute} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/attributes.js';
+ * import {findClosestByAttribute} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/attributes.js';
  * findClosestByAttribute();
  * </script>
  * ```
@@ -527,7 +401,7 @@ function clearAttributeTokens(element, key) {
  * @return {HTMLElement|undefined}
  * @summary find closest node
  */
-function findClosestByAttribute(element, key, value) {
+export function findClosestByAttribute(element, key, value) {
     validateInstance(element, getGlobalFunction('HTMLElement'));
 
     if (element.hasAttribute(key)) {
@@ -565,20 +439,9 @@ function findClosestByAttribute(element, key, value) {
  * findClosestByClass(document.getElementById('2'),'myclass'); // ↦ node with id 2
  * ```
  *
- * You can call the method via the monster namespace `new Monster.DOM.findClosestByClass()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.DOM.findClosestByClass();
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {findClosestByClass} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/attributes.js';
+ * import {findClosestByClass} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/attributes.js';
  * findClosestByClass();
  * </script>
  * ```
@@ -591,7 +454,7 @@ function findClosestByAttribute(element, key, value) {
  * @return {HTMLElement|undefined}
  * @summary find closest node
  */
-function findClosestByClass(element, className) {
+export function findClosestByClass(element, className) {
     validateInstance(element, getGlobalFunction('HTMLElement'));
 
     if (element?.classList?.contains(validateString(className))) {
@@ -605,22 +468,3 @@ function findClosestByClass(element, className) {
     
     return undefined;
 }
-
-// exports
-assignToNamespace('Monster.DOM', findClosestByClass, getLinkedObjects, addToObjectLink, removeObjectLink, findClosestByAttribute, hasObjectLink, clearAttributeTokens, replaceAttributeToken, containsAttributeToken, removeAttributeToken, addAttributeToken, toggleAttributeToken);
-export {
-    Monster,
-    addToObjectLink,
-    removeObjectLink,
-    hasObjectLink,
-    findClosestByAttribute,
-    clearAttributeTokens,
-    replaceAttributeToken,
-    containsAttributeToken,
-    removeAttributeToken,
-    addAttributeToken,
-    toggleAttributeToken,
-    getLinkedObjects,
-    findClosestObjectLink,
-    findClosestByClass
-}
diff --git a/application/source/dom/constants.js b/application/source/dom/constants.js
index 07e663f81..42a2c33ba 100644
--- a/application/source/dom/constants.js
+++ b/application/source/dom/constants.js
@@ -11,14 +11,14 @@ import {Monster} from '../namespace.js';
  * @memberOf Monster.DOM
  * @type {string}
  */
-const DEFAULT_THEME = 'monster';
+export const DEFAULT_THEME = 'monster';
 
 /**
  * @memberOf Monster.DOM
  * @since 1.8.0
  * @type {string}
  */
-const ATTRIBUTE_PREFIX = 'data-monster-';
+export const ATTRIBUTE_PREFIX = 'data-monster-';
 
 /**
  * This is the name of the attribute to pass options to a control
@@ -27,7 +27,7 @@ const ATTRIBUTE_PREFIX = 'data-monster-';
  * @since 1.8.0
  * @type {string}
  */
-const ATTRIBUTE_OPTIONS = ATTRIBUTE_PREFIX + 'options';
+export const ATTRIBUTE_OPTIONS = ATTRIBUTE_PREFIX + 'options';
 
 /**
  * This is the name of the attribute to pass options to a control
@@ -36,139 +36,139 @@ const ATTRIBUTE_OPTIONS = ATTRIBUTE_PREFIX + 'options';
  * @since 1.30.0
  * @type {string}
  */
-const ATTRIBUTE_OPTIONS_SELECTOR = ATTRIBUTE_PREFIX + 'options-selector';
+export const ATTRIBUTE_OPTIONS_SELECTOR = ATTRIBUTE_PREFIX + 'options-selector';
 
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.8.0
  */
-const ATTRIBUTE_THEME_PREFIX = ATTRIBUTE_PREFIX + 'theme-';
+export const ATTRIBUTE_THEME_PREFIX = ATTRIBUTE_PREFIX + 'theme-';
 
 /**
  * @memberOf Monster.DOM
  * @type {string}
  */
-const ATTRIBUTE_THEME_NAME = ATTRIBUTE_THEME_PREFIX + 'name';
+export const ATTRIBUTE_THEME_NAME = ATTRIBUTE_THEME_PREFIX + 'name';
 
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.8.0
  */
-const ATTRIBUTE_UPDATER_ATTRIBUTES = ATTRIBUTE_PREFIX + 'attributes';
+export const ATTRIBUTE_UPDATER_ATTRIBUTES = ATTRIBUTE_PREFIX + 'attributes';
 
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.27.1
  */
-const ATTRIBUTE_UPDATER_SELECT_THIS = ATTRIBUTE_PREFIX + 'select-this';
+export const ATTRIBUTE_UPDATER_SELECT_THIS = ATTRIBUTE_PREFIX + 'select-this';
 
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.8.0
  */
-const ATTRIBUTE_UPDATER_REPLACE = ATTRIBUTE_PREFIX + 'replace';
+export const ATTRIBUTE_UPDATER_REPLACE = ATTRIBUTE_PREFIX + 'replace';
 
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.8.0
  */
-const ATTRIBUTE_UPDATER_INSERT = ATTRIBUTE_PREFIX + 'insert';
+export const ATTRIBUTE_UPDATER_INSERT = ATTRIBUTE_PREFIX + 'insert';
 
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.8.0
  */
-const ATTRIBUTE_UPDATER_INSERT_REFERENCE = ATTRIBUTE_PREFIX + 'insert-reference';
+export const ATTRIBUTE_UPDATER_INSERT_REFERENCE = ATTRIBUTE_PREFIX + 'insert-reference';
 
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.8.0
  */
-const ATTRIBUTE_UPDATER_REMOVE = ATTRIBUTE_PREFIX + 'remove';
+export const ATTRIBUTE_UPDATER_REMOVE = ATTRIBUTE_PREFIX + 'remove';
 
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.9.0
  */
-const ATTRIBUTE_UPDATER_BIND = ATTRIBUTE_PREFIX + 'bind';
+export const ATTRIBUTE_UPDATER_BIND = ATTRIBUTE_PREFIX + 'bind';
 
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.27.0
  */
-const ATTRIBUTE_TEMPLATE_PREFIX = ATTRIBUTE_PREFIX + 'template-prefix';
+export const ATTRIBUTE_TEMPLATE_PREFIX = ATTRIBUTE_PREFIX + 'template-prefix';
 
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.14.0
  */
-const ATTRIBUTE_ROLE = ATTRIBUTE_PREFIX + 'role';
+export const ATTRIBUTE_ROLE = ATTRIBUTE_PREFIX + 'role';
 
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.24.0
  */
-const ATTRIBUTE_DISABLED = 'disabled';
+export const ATTRIBUTE_DISABLED = 'disabled';
 
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.24.0
  */
-const ATTRIBUTE_VALUE = 'value';
+export const ATTRIBUTE_VALUE = 'value';
 
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.9.0
  */
-const ATTRIBUTE_OBJECTLINK = ATTRIBUTE_PREFIX + 'objectlink';
+export const ATTRIBUTE_OBJECTLINK = ATTRIBUTE_PREFIX + 'objectlink';
 
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.24.0
  */
-const ATTRIBUTE_ERRORMESSAGE = ATTRIBUTE_PREFIX + 'error';
+export const ATTRIBUTE_ERRORMESSAGE = ATTRIBUTE_PREFIX + 'error';
 
 /**
  * @memberOf Monster.DOM
  * @type {symbol}
  * @since 1.24.0
  */
-const objectUpdaterLinkSymbol = Symbol('monsterUpdater');
+export const objectUpdaterLinkSymbol = Symbol('monsterUpdater');
 
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.25.0
  */
-const TAG_SCRIPT = 'script';
+export const TAG_SCRIPT = 'script';
 
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.25.0
  */
-const TAG_STYLE = 'style';
+export const TAG_STYLE = 'style';
 
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.25.0
  */
-const TAG_LINK = 'link';
+export const TAG_LINK = 'link';
 
 /**
  * @memberOf Monster.DOM
@@ -176,7 +176,7 @@ const TAG_LINK = 'link';
  * @since 1.25.0
  */
 
-const ATTRIBUTE_ID = 'id';
+export const ATTRIBUTE_ID = 'id';
 
 /**
  * @memberOf Monster.DOM
@@ -184,48 +184,48 @@ const ATTRIBUTE_ID = 'id';
  * @since 1.25.0
  */
 
-const ATTRIBUTE_CLASS = 'class';
+export const ATTRIBUTE_CLASS = 'class';
 
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.25.0
  */
-const ATTRIBUTE_TITLE = 'title';
+export const ATTRIBUTE_TITLE = 'title';
 
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.25.0
  */
-const ATTRIBUTE_SRC = 'src';
+export const ATTRIBUTE_SRC = 'src';
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.25.0
  */
-const ATTRIBUTE_HREF = 'href';
+export const ATTRIBUTE_HREF = 'href';
 
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.25.0
  */
-const ATTRIBUTE_TYPE = 'type';
+export const ATTRIBUTE_TYPE = 'type';
 
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.25.0
  */
-const ATTRIBUTE_NONCE = 'nonce';
+export const ATTRIBUTE_NONCE = 'nonce';
 
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.25.0
  */
-const ATTRIBUTE_TRANSLATE = 'translate';
+export const ATTRIBUTE_TRANSLATE = 'translate';
 
 
 /**
@@ -233,7 +233,7 @@ const ATTRIBUTE_TRANSLATE = 'translate';
  * @type {string}
  * @since 1.25.0
  */
-const ATTRIBUTE_TABINDEX = 'tabindex';
+export const ATTRIBUTE_TABINDEX = 'tabindex';
 
 
 /**
@@ -241,7 +241,7 @@ const ATTRIBUTE_TABINDEX = 'tabindex';
  * @type {string}
  * @since 1.25.0
  */
-const ATTRIBUTE_SPELLCHECK = 'spellcheck';
+export const ATTRIBUTE_SPELLCHECK = 'spellcheck';
 
 
 /**
@@ -249,7 +249,7 @@ const ATTRIBUTE_SPELLCHECK = 'spellcheck';
  * @type {string}
  * @since 1.25.0
  */
-const ATTRIBUTE_SLOT = 'slot';
+export const ATTRIBUTE_SLOT = 'slot';
 
 
 /**
@@ -257,7 +257,7 @@ const ATTRIBUTE_SLOT = 'slot';
  * @type {string}
  * @since 1.25.0
  */
-const ATTRIBUTE_PART = 'part';
+export const ATTRIBUTE_PART = 'part';
 
 
 /**
@@ -265,7 +265,7 @@ const ATTRIBUTE_PART = 'part';
  * @type {string}
  * @since 1.25.0
  */
-const ATTRIBUTE_LANG = 'lang';
+export const ATTRIBUTE_LANG = 'lang';
 
 
 /**
@@ -273,7 +273,7 @@ const ATTRIBUTE_LANG = 'lang';
  * @type {string}
  * @since 1.25.0
  */
-const ATTRIBUTE_ITEMTYPE = 'itemtype';
+export const ATTRIBUTE_ITEMTYPE = 'itemtype';
 
 
 /**
@@ -281,7 +281,7 @@ const ATTRIBUTE_ITEMTYPE = 'itemtype';
  * @type {string}
  * @since 1.25.0
  */
-const ATTRIBUTE_ITEMSCOPE = 'itemscope';
+export const ATTRIBUTE_ITEMSCOPE = 'itemscope';
 
 
 /**
@@ -289,7 +289,7 @@ const ATTRIBUTE_ITEMSCOPE = 'itemscope';
  * @type {string}
  * @since 1.25.0
  */
-const ATTRIBUTE_ITEMREF = 'itemref';
+export const ATTRIBUTE_ITEMREF = 'itemref';
 
 
 /**
@@ -297,7 +297,7 @@ const ATTRIBUTE_ITEMREF = 'itemref';
  * @type {string}
  * @since 1.25.0
  */
-const ATTRIBUTE_ITEMID = 'itemid';
+export const ATTRIBUTE_ITEMID = 'itemid';
 
 
 /**
@@ -305,7 +305,7 @@ const ATTRIBUTE_ITEMID = 'itemid';
  * @type {string}
  * @since 1.25.0
  */
-const ATTRIBUTE_ITEMPROP = 'itemprop';
+export const ATTRIBUTE_ITEMPROP = 'itemprop';
 
 
 /**
@@ -313,7 +313,7 @@ const ATTRIBUTE_ITEMPROP = 'itemprop';
  * @type {string}
  * @since 1.25.0
  */
-const ATTRIBUTE_IS = 'is';
+export const ATTRIBUTE_IS = 'is';
 
 
 /**
@@ -321,7 +321,7 @@ const ATTRIBUTE_IS = 'is';
  * @type {string}
  * @since 1.25.0
  */
-const ATTRIBUTE_INPUTMODE = 'inputmode';
+export const ATTRIBUTE_INPUTMODE = 'inputmode';
 
 
 /**
@@ -329,42 +329,42 @@ const ATTRIBUTE_INPUTMODE = 'inputmode';
  * @type {string}
  * @since 1.25.0
  */
-const ATTRIBUTE_ACCESSKEY = 'accesskey';
+export const ATTRIBUTE_ACCESSKEY = 'accesskey';
 
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.25.0
  */
-const ATTRIBUTE_AUTOCAPITALIZE = 'autocapitalize';
+export const ATTRIBUTE_AUTOCAPITALIZE = 'autocapitalize';
 
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.25.0
  */
-const ATTRIBUTE_AUTOFOCUS = 'autofocus';
+export const ATTRIBUTE_AUTOFOCUS = 'autofocus';
 
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.25.0
  */
-const ATTRIBUTE_CONTENTEDITABLE = 'contenteditable';
+export const ATTRIBUTE_CONTENTEDITABLE = 'contenteditable';
 
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.25.0
  */
-const ATTRIBUTE_DIR = 'dir';
+export const ATTRIBUTE_DIR = 'dir';
 
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.25.0
  */
-const ATTRIBUTE_DRAGGABLE = 'draggable';
+export const ATTRIBUTE_DRAGGABLE = 'draggable';
 
 
 /**
@@ -372,73 +372,16 @@ const ATTRIBUTE_DRAGGABLE = 'draggable';
  * @type {string}
  * @since 1.25.0
  */
-const ATTRIBUTE_ENTERKEYHINT = 'enterkeyhint';
+export const ATTRIBUTE_ENTERKEYHINT = 'enterkeyhint';
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.25.0
  */
-const ATTRIBUTE_EXPORTPARTS = 'exportparts';
+export const ATTRIBUTE_EXPORTPARTS = 'exportparts';
 /**
  * @memberOf Monster.DOM
  * @type {string}
  * @since 1.25.0
  */
-const ATTRIBUTE_HIDDEN = 'hidden';
-
-
-export {
-    Monster,
-    ATTRIBUTE_HIDDEN,
-    ATTRIBUTE_EXPORTPARTS,
-    ATTRIBUTE_ENTERKEYHINT,
-    ATTRIBUTE_DRAGGABLE,
-    ATTRIBUTE_DIR,
-    ATTRIBUTE_CONTENTEDITABLE,
-    ATTRIBUTE_AUTOFOCUS,
-    ATTRIBUTE_AUTOCAPITALIZE,
-    ATTRIBUTE_ACCESSKEY,
-    TAG_SCRIPT,
-    TAG_LINK,
-    ATTRIBUTE_INPUTMODE,
-    ATTRIBUTE_IS,
-    ATTRIBUTE_ITEMPROP,
-    ATTRIBUTE_ITEMID,
-    ATTRIBUTE_ITEMREF,
-    ATTRIBUTE_ITEMSCOPE,
-    TAG_STYLE,
-    ATTRIBUTE_ITEMTYPE,
-    ATTRIBUTE_HREF,
-    ATTRIBUTE_LANG,
-    ATTRIBUTE_PART,
-    ATTRIBUTE_SLOT,
-    ATTRIBUTE_SPELLCHECK,
-    ATTRIBUTE_SRC,
-    ATTRIBUTE_TABINDEX,
-    ATTRIBUTE_TRANSLATE,
-    ATTRIBUTE_NONCE,
-    ATTRIBUTE_TYPE,
-    ATTRIBUTE_TITLE,
-    ATTRIBUTE_CLASS,
-    ATTRIBUTE_ID,
-    ATTRIBUTE_PREFIX,
-    ATTRIBUTE_OPTIONS,
-    DEFAULT_THEME,
-    ATTRIBUTE_THEME_PREFIX,
-    ATTRIBUTE_ROLE,
-    ATTRIBUTE_THEME_NAME,
-    ATTRIBUTE_UPDATER_ATTRIBUTES,
-    ATTRIBUTE_UPDATER_REPLACE,
-    ATTRIBUTE_UPDATER_INSERT,
-    ATTRIBUTE_UPDATER_INSERT_REFERENCE,
-    ATTRIBUTE_UPDATER_REMOVE,
-    ATTRIBUTE_UPDATER_BIND,
-    ATTRIBUTE_OBJECTLINK,
-    ATTRIBUTE_DISABLED,
-    ATTRIBUTE_ERRORMESSAGE,
-    ATTRIBUTE_VALUE,
-    objectUpdaterLinkSymbol,
-    ATTRIBUTE_TEMPLATE_PREFIX,
-    ATTRIBUTE_UPDATER_SELECT_THIS,
-    ATTRIBUTE_OPTIONS_SELECTOR
-} 
\ No newline at end of file
+export const ATTRIBUTE_HIDDEN = 'hidden';
diff --git a/application/source/dom/customcontrol.js b/application/source/dom/customcontrol.js
index 510f95712..b25a1e615 100644
--- a/application/source/dom/customcontrol.js
+++ b/application/source/dom/customcontrol.js
@@ -4,7 +4,7 @@ import {extend} from "../data/extend.js";
 /**
  * @author schukai GmbH
  */
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {ATTRIBUTE_VALUE} from "./constants.js";
 import {CustomElement, attributeObserverSymbol} from "./customelement.js";
 
@@ -50,7 +50,7 @@ const attachedInternalSymbol = Symbol('attachedInternal');
  * @copyright schukai GmbH
  * @memberOf Monster.DOM
  */
-class CustomControl extends CustomElement {
+export class CustomControl extends CustomElement {
 
     /**
      * IMPORTANT: CustomControls instances are not created via the constructor, but either via a tag in the HTML or via <code>document.createElement()</code>.
@@ -328,6 +328,3 @@ function initObserver() {
     }
 
 }
-
-assignToNamespace('Monster.DOM', CustomControl);
-export {Monster, CustomControl}
diff --git a/application/source/dom/customelement.js b/application/source/dom/customelement.js
index 0a76fbd9c..b4c609d12 100644
--- a/application/source/dom/customelement.js
+++ b/application/source/dom/customelement.js
@@ -7,7 +7,7 @@
 import {internalSymbol} from "../constants.js";
 import {extend} from "../data/extend.js";
 import {Pathfinder} from "../data/pathfinder.js";
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {parseDataURL} from "../types/dataurl.js";
 import {getGlobalObject} from "../types/global.js";
 import {isArray, isFunction, isObject, isString} from "../types/is.js";
@@ -31,20 +31,20 @@ import {Updater} from "./updater.js";
  * @memberOf Monster.DOM
  * @type {symbol}
  */
-const initMethodSymbol = Symbol('initMethodSymbol');
+export const initMethodSymbol = Symbol('initMethodSymbol');
 
 /**
  * @memberOf Monster.DOM
  * @type {symbol}
  */
-const assembleMethodSymbol = Symbol('assembleMethodSymbol');
+export const assembleMethodSymbol = Symbol('assembleMethodSymbol');
 
 /**
  * this symbol holds the attribute observer callbacks. The key is the attribute name.
  * @memberOf Monster.DOM
  * @type {symbol}
  */
-const attributeObserverSymbol = Symbol('attributeObserver');
+export const attributeObserverSymbol = Symbol('attributeObserver');
 
 
 /**
@@ -196,7 +196,7 @@ const attributeObserverSymbol = Symbol('attributeObserver');
  * @extends external:HTMLElement
  * @summary A base class for HTML5 customcontrols
  */
-class CustomElement extends HTMLElement {
+export class CustomElement extends HTMLElement {
 
     /**
      * A new object is created. First the `initOptions` method is called. Here the
@@ -560,7 +560,7 @@ class CustomElement extends HTMLElement {
  * @since 1.23.0
  * @throws {Error} query must be a string
  */
-function getSlottedElements(query, name) {
+export function getSlottedElements(query, name) {
     const self = this;
     const result = new Set;
 
@@ -932,7 +932,7 @@ function initShadowRoot() {
  * @memberOf Monster.DOM
  * @throws {DOMException} Failed to execute 'define' on 'CustomElementRegistry': is not a valid custom element name
  */
-function registerCustomElement(element) {
+export function registerCustomElement(element) {
     validateFunction(element);
     getGlobalObject('customElements').define(element.getTag(), element);
 }
@@ -946,7 +946,7 @@ function registerCustomElement(element) {
  * @since 1.23.0
  * @memberOf Monster.DOM
  */
-function assignUpdaterToElement(elements, object) {
+export function assignUpdaterToElement(elements, object) {
 
     const updaters = new Set;
 
@@ -977,15 +977,3 @@ function assignUpdaterToElement(elements, object) {
 
     return result;
 }
-
-assignToNamespace('Monster.DOM', CustomElement, registerCustomElement, assignUpdaterToElement);
-export {
-    Monster,
-    registerCustomElement,
-    CustomElement,
-    initMethodSymbol,
-    assembleMethodSymbol,
-    assignUpdaterToElement,
-    attributeObserverSymbol,
-    getSlottedElements
-}
diff --git a/application/source/dom/events.js b/application/source/dom/events.js
index 4d1ebed5c..4ae37ecb2 100644
--- a/application/source/dom/events.js
+++ b/application/source/dom/events.js
@@ -4,26 +4,17 @@
 /**
  * @author schukai GmbH
  */
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {isArray,isObject} from "../types/is.js";
 import {validateInstance, validateString} from "../types/validate.js";
 import {getDocument} from "./util.js";
 
 /**
- * You can call the function via the monster namespace `new Monster.DOM.fireEvent()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.DOM.fireEvent()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
+ * The function sends an event
+ * 
  * ```
  * <script type="module">
- * import {fireEvent} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/events.js';
+ * import {fireEvent} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/events.js';
  * fireEvent()
  * </script>
  * ```
@@ -37,7 +28,7 @@ import {getDocument} from "./util.js";
  * @throws {TypeError} value is not an instance of HTMLElement or HTMLCollection
  * @summary Construct and send and event
  */
-function fireEvent(element, type) {
+export function fireEvent(element, type) {
 
     const document = getDocument();
 
@@ -70,16 +61,7 @@ function fireEvent(element, type) {
  *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.DOM.fireCustomEvent()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {fireCustomEvent} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/events.js';
+ * import {fireCustomEvent} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/events.js';
  * fireCustomEvent()
  * </script>
  * ```
@@ -93,7 +75,7 @@ function fireEvent(element, type) {
  * @throws {TypeError} value is not an instance of HTMLElement or HTMLCollection
  * @summary Construct and send and event
  */
-function fireCustomEvent(element, type, detail) {
+export function fireCustomEvent(element, type, detail) {
 
     const document = getDocument();
 
@@ -126,20 +108,9 @@ function fireCustomEvent(element, type, detail) {
  * up the tree `element.closest()` with the attribute and value. If no value, or a value that is undefined or null,
  * is specified, only the attribute is searched.
  *
- * You can call the function via the monster namespace `new Monster.DOM.findTargetElementFromEvent()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.DOM.findTargetElementFromEvent()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {findTargetElementFromEvent} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/events.js';
+ * import {findTargetElementFromEvent} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/events.js';
  * findTargetElementFromEvent()
  * </script>
  * ```
@@ -154,7 +125,7 @@ function fireCustomEvent(element, type, detail) {
  * @throws {TypeError} value is not an instance of HTMLElement
  * @summary Help function to find the appropriate control
  */
-function findTargetElementFromEvent(event, attributeName, attributeValue) {
+export function findTargetElementFromEvent(event, attributeName, attributeValue) {
     validateInstance(event, Event);
 
     if (typeof event.composedPath !== 'function') {
@@ -179,7 +150,3 @@ function findTargetElementFromEvent(event, attributeName, attributeValue) {
     return undefined;
 
 }
-
-
-assignToNamespace('Monster.DOM', findTargetElementFromEvent, fireEvent, fireCustomEvent);
-export {Monster, findTargetElementFromEvent, fireEvent, fireCustomEvent}
diff --git a/application/source/dom/focusmanager.js b/application/source/dom/focusmanager.js
index 31d6dbbbd..d34e487d4 100644
--- a/application/source/dom/focusmanager.js
+++ b/application/source/dom/focusmanager.js
@@ -37,20 +37,9 @@ const stackSymbol = Symbol('stack');
 /**
  * With the focusmanager the focus can be stored in a document, recalled and moved.
  *
- * You can create the object via the monster namespace `new Monster.DOM.FocusManager()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.DOM.FocusManager()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this object individually.
- *
- * ```
- * <script type="module">
- * import {FocusManager} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/focusmanager.js';
+ * import {FocusManager} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/focusmanager.js';
  * new FocusManager()
  * </script>
  * ```
@@ -61,7 +50,7 @@ const stackSymbol = Symbol('stack');
  * @throws {Error} unsupported locale
  * @summary Handle the focus
  */
-class FocusManager extends BaseWithOptions {
+export class FocusManager extends BaseWithOptions {
 
     /**
      *
@@ -239,10 +228,6 @@ class FocusManager extends BaseWithOptions {
 }
 
 
-assignToNamespace('Monster.DOM', FocusManager);
-export {FocusManager}
-
-
 
 
 
diff --git a/application/source/dom/locale.js b/application/source/dom/locale.js
index 3a8cb41b2..255bf04b9 100644
--- a/application/source/dom/locale.js
+++ b/application/source/dom/locale.js
@@ -5,14 +5,14 @@
  */
 
 import {parseLocale} from "../i18n/locale.js";
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {getDocument} from "./util.js";
 
 /**
  * @private
  * @type {string}
  */
-const DEFAULT_LANGUAGE = 'en';
+export const DEFAULT_LANGUAGE = 'en';
 
 /**
  * With this function you can read the language version set by the document.
@@ -26,16 +26,7 @@ const DEFAULT_LANGUAGE = 'en';
  *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.DOM.getLocaleOfDocument()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {getLocaleOfDocument} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/locale.js';
+ * import {getLocaleOfDocument} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/locale.js';
  * new getLocaleOfDocument()
  * </script>
  * ```
@@ -47,7 +38,7 @@ const DEFAULT_LANGUAGE = 'en';
  * @throws {Error} unsupported locale
  * @summary Tries to determine the locale used
  */
-function getLocaleOfDocument() {
+export function getLocaleOfDocument() {
 
     const document = getDocument();
 
@@ -61,6 +52,3 @@ function getLocaleOfDocument() {
 
     return parseLocale(DEFAULT_LANGUAGE);
 }
-
-assignToNamespace('Monster.DOM', getLocaleOfDocument);
-export {Monster, getLocaleOfDocument}
diff --git a/application/source/dom/namespace.js b/application/source/dom/namespace.js
deleted file mode 100644
index 753607f8d..000000000
--- a/application/source/dom/namespace.js
+++ /dev/null
@@ -1,15 +0,0 @@
-'use strict';
-
-/**
- * In this namespace you will find classes and methods for handling the DOM.
- *
- * @namespace Monster.DOM
- * @memberOf Monster
- * @author schukai GmbH
- */
-
-/**
- * @private
- * @type {string}
- */
-export const namespace = "Monster.DOM";
\ No newline at end of file
diff --git a/application/source/dom/ready.js b/application/source/dom/ready.js
index 9fd6fea37..0d03d0e52 100644
--- a/application/source/dom/ready.js
+++ b/application/source/dom/ready.js
@@ -17,7 +17,7 @@ import {getDocument, getWindow} from "./util.js";
  *
  * ```
  * <script type="module">
- * import {domReady} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/ready.js';
+ * import {domReady} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/ready.js';
  * domReady().then(()=>{
  *     // ...
  * })
@@ -31,7 +31,7 @@ import {getDocument, getWindow} from "./util.js";
  * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/DOMContentLoaded_event
  * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/readyState
  */
-const domReady = new Promise(resolve => {
+export const domReady = new Promise(resolve => {
 
     const document = getDocument();
 
@@ -52,7 +52,7 @@ const domReady = new Promise(resolve => {
  *
  * ```
  * <script type="module">
- * import {windowReady} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/ready.js';
+ * import {windowReady} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/ready.js';
  * windowReady().then(()=>{
  *     // ...
  * })
@@ -66,7 +66,7 @@ const domReady = new Promise(resolve => {
  * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event
  * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/readyState
  */
-const windowReady = new Promise(resolve => {
+export const windowReady = new Promise(resolve => {
 
     const document = getDocument();
     const window = getWindow();
@@ -77,5 +77,3 @@ const windowReady = new Promise(resolve => {
         window.addEventListener('load', resolve);
     }
 });
-
-export {Monster, windowReady, domReady}
diff --git a/application/source/dom/resource.js b/application/source/dom/resource.js
index 4558f76d6..cc038a961 100644
--- a/application/source/dom/resource.js
+++ b/application/source/dom/resource.js
@@ -43,20 +43,9 @@ export const referenceSymbol = Symbol('reference');
 /**
  * This class is the base class for all resources to be loaded.
  *
- * You can call the method via the monster namespace `new Monster.DOM.Resource()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.DOM.Resource()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {Resource} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/resource.js';
+ * import {Resource} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/resource.js';
  * new Resource()
  * </script>
  * ```
@@ -66,7 +55,7 @@ export const referenceSymbol = Symbol('reference');
  * @memberOf Monster.DOM
  * @summary A Resource class
  */
-class Resource extends BaseWithOptions {
+export class Resource extends BaseWithOptions {
 
     /**
      *
@@ -262,7 +251,3 @@ function addEvents() {
     return self;
 
 }
-
-
-assignToNamespace('Monster.DOM', Resource);
-export {Monster, Resource}
diff --git a/application/source/dom/resource/data.js b/application/source/dom/resource/data.js
index 1a0de9929..a2354b864 100644
--- a/application/source/dom/resource/data.js
+++ b/application/source/dom/resource/data.js
@@ -19,24 +19,12 @@ import {
 } from "../constants.js";
 import {KEY_DOCUMENT, KEY_QUERY, referenceSymbol, Resource} from "../resource.js";
 
-
 /**
  * This class is used by the resource manager to embed data.
  *
- * You can call the method via the monster namespace `new Monster.DOM.Resource.Data()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.DOM.Resource.Data()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
  * ```
  * <script type="module">
- * import {Data} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/resource/data.js';
+ * import {Data} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/resource/data.js';
  * new Data()
  * </script>
  * ```
@@ -46,7 +34,7 @@ import {KEY_DOCUMENT, KEY_QUERY, referenceSymbol, Resource} from "../resource.js
  * @memberOf Monster.DOM.Resource
  * @summary A Data Resource class
  */
-class Data extends Resource {
+export class Data extends Resource {
 
     /**
      * @property {string} mode=cors https://developer.mozilla.org/en-US/docs/Web/API/fetch
@@ -164,7 +152,3 @@ function appendToDocument() {
 
     return self;
 }
-
-
-assignToNamespace('Monster.DOM.Resource', Data);
-export {Monster, Data}
diff --git a/application/source/dom/resource/link.js b/application/source/dom/resource/link.js
index 354a675bb..6abdfa0d0 100644
--- a/application/source/dom/resource/link.js
+++ b/application/source/dom/resource/link.js
@@ -20,20 +20,9 @@ import {KEY_DOCUMENT, referenceSymbol, Resource} from "../resource.js";
 /**
  * This class is used by the resource manager to embed external resources.
  *
- * You can call the method via the monster namespace `new Monster.DOM.Resource.Link()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.DOM.Resource.Link()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {Link} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/resource/link.js';
+ * import {Link} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/resource/link.js';
  * new Link()
  * </script>
  * ```
@@ -44,7 +33,7 @@ import {KEY_DOCUMENT, referenceSymbol, Resource} from "../resource.js";
  * @summary A Resource class
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link
  */
-class Link extends Resource {
+export class Link extends Resource {
 
     /**
      * @property {string} as {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link#attr-as}
@@ -119,7 +108,3 @@ function createElement() {
     
     return self;
 }
-
-
-assignToNamespace('Monster.DOM.Resource', Link);
-export {Monster, Link}
diff --git a/application/source/dom/resource/link/stylesheet.js b/application/source/dom/resource/link/stylesheet.js
index 9615fa535..e132ef44d 100644
--- a/application/source/dom/resource/link/stylesheet.js
+++ b/application/source/dom/resource/link/stylesheet.js
@@ -12,20 +12,9 @@ import {Link} from "../link.js";
 /**
  * This class is used by the resource manager to embed external resources.
  *
- * You can call the method via the monster namespace `new Monster.DOM.Resource.Link.Stylesheet()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.DOM.Resource.Link.Stylesheet()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
  * ```
  * <script type="module">
- * import {Style} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/resource/link/stylesheet.js';
+ * import {Style} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/resource/link/stylesheet.js';
  * new Stylesheet()
  * </script>
  * ```
@@ -36,7 +25,7 @@ import {Link} from "../link.js";
  * @summary A Resource class
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link
  */
-class Stylesheet extends Link {
+export class Stylesheet extends Link {
 
     /**
      * @property {string} rel {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link#attr-rel}
@@ -49,6 +38,3 @@ class Stylesheet extends Link {
 
 }
 
-
-assignToNamespace('Monster.DOM.Resource.Link', Stylesheet);
-export {Monster, Stylesheet}
diff --git a/application/source/dom/resource/script.js b/application/source/dom/resource/script.js
index 544426cb2..17512eef4 100644
--- a/application/source/dom/resource/script.js
+++ b/application/source/dom/resource/script.js
@@ -21,20 +21,9 @@ import {KEY_DOCUMENT, referenceSymbol, Resource} from "../resource.js";
 /**
  * This class is used by the resource manager to embed scripts.
  *
- * You can call the method via the monster namespace `new Monster.DOM.Resource.Script()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.DOM.Resource.Script()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {Script} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/resource/script.js';
+ * import {Script} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/resource/script.js';
  * new Script()
  * </script>
  * ```
@@ -44,7 +33,7 @@ import {KEY_DOCUMENT, referenceSymbol, Resource} from "../resource.js";
  * @memberOf Monster.DOM.Resource
  * @summary A Resource class
  */
-class Script extends Resource {
+export class Script extends Resource {
 
     /**
      * @property {boolean} async=true {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#attr-async}
@@ -106,7 +95,3 @@ function createElement() {
 
     return self;
 }
-
-
-assignToNamespace('Monster.DOM.Resource', Script);
-export {Monster, Script}
diff --git a/application/source/dom/resourcemanager.js b/application/source/dom/resourcemanager.js
index d90bc3775..d754a42d9 100644
--- a/application/source/dom/resourcemanager.js
+++ b/application/source/dom/resourcemanager.js
@@ -17,20 +17,11 @@ import {Script} from "./resource/script.js";
 
 
 /**
- * You can call the method via the monster namespace `new Monster.DOM.ResourceManager()`.
- *
+ * The ResourceManager is a singleton that manages all resources.
+ * 
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.DOM.ResourceManager()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {Resource} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/resourcemanager.js';
+ * import {Resource} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/resourcemanager.js';
  * new ResourceManager()
  * </script>
  * ```
@@ -40,7 +31,7 @@ import {Script} from "./resource/script.js";
  * @memberOf Monster.DOM
  * @summary A Resource class
  */
-class ResourceManager extends BaseWithOptions {
+export class ResourceManager extends BaseWithOptions {
 
     /**
      *
@@ -208,7 +199,3 @@ function addResource(type, url, options) {
     (self.getOption('resources')?.[type]).push(resource);
     return self;
 }
-
-
-assignToNamespace('Monster.DOM', ResourceManager);
-export {Monster, ResourceManager}
diff --git a/application/source/dom/template.js b/application/source/dom/template.js
index e5b54b60d..834b11ccb 100644
--- a/application/source/dom/template.js
+++ b/application/source/dom/template.js
@@ -3,7 +3,7 @@
 /**
  * @author schukai GmbH
  */
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {Base} from '../types/base.js';
 import {getGlobalFunction, getGlobalObject} from '../types/global.js';
 import {validateInstance, validateString} from "../types/validate.js";
@@ -11,20 +11,11 @@ import {ATTRIBUTE_TEMPLATE_PREFIX} from "./constants.js";
 import {getDocumentTheme} from "./theme.js";
 
 /**
- * you can call the method via the monster namespace `new Monster.DOM.Template()`.
- *
+ * The template class provides methods for creating templates.
+ * 
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.DOM.Template()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {Template} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/template.js';
+ * import {Template} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/template.js';
  * new Template()
  * </script>
  * ```
@@ -34,7 +25,7 @@ import {getDocumentTheme} from "./theme.js";
  * @memberOf Monster.DOM
  * @summary A template class
  */
-class Template extends Base {
+export class Template extends Base {
     /**
      *
      * @param {HTMLTemplateElement} template
@@ -86,23 +77,14 @@ class Template extends Base {
  *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.DOM.findDocumentTemplate()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {findTemplate} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/template.js';
+ * import {findTemplate} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/template.js';
  * findDocumentTemplate()
  * </script>
  * ```
  *
  * @example
  *
- * import { findDocumentTemplate } from "https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/template.js";
+ * import { findDocumentTemplate } from "https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/template.js";
  *
  * const template = document.createElement("template");
  * template.id = "myTemplate";
@@ -139,7 +121,7 @@ class Template extends Base {
  * @throws {Error} template id not found.
  * @throws {TypeError} value is not a string
  */
-function findDocumentTemplate(id, currentNode) {
+export function findDocumentTemplate(id, currentNode) {
     validateString(id);
 
     const document = getGlobalObject('document');
@@ -219,8 +201,3 @@ function findDocumentTemplate(id, currentNode) {
     throw new Error("template " + id + " not found.")
 }
 
-
-assignToNamespace('Monster.DOM', Template, findDocumentTemplate);
-export {Monster, Template, findDocumentTemplate}
-
-
diff --git a/application/source/dom/theme.js b/application/source/dom/theme.js
index 677ac4b6a..33e95a671 100644
--- a/application/source/dom/theme.js
+++ b/application/source/dom/theme.js
@@ -3,7 +3,7 @@
 /**
  * @author schukai GmbH
  */
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {Base} from '../types/base.js';
 import {getGlobalObject} from '../types/global.js';
 import {validateString} from "../types/validate.js";
@@ -11,27 +11,18 @@ import {ATTRIBUTE_THEME_NAME, DEFAULT_THEME} from "./constants.js";
 
 
 /**
- * You can call the method via the monster namespace `new Monster.DOM.Theme()`.
- *
+ * The Theme class provides the functionality for the theme.
+ * 
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(new Monster.DOM.Theme())
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {Theme} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/theme.js';
+ * import {Theme} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/theme.js';
  * console.log(new Theme())
  * </script>
  * ```
  *
  * @example
  *
- * import {getDocumentTheme} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/theme.js';
+ * import {getDocumentTheme} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/theme.js';
  *
  * const theme = getDocumentTheme();
  * console.log(theme.getName());
@@ -42,7 +33,7 @@ import {ATTRIBUTE_THEME_NAME, DEFAULT_THEME} from "./constants.js";
  * @memberOf Monster.DOM
  * @summary A theme class
  */
-class Theme extends Base {
+export class Theme extends Base {
 
     /**
      *
@@ -81,7 +72,7 @@ class Theme extends Base {
  * @memberOf Monster.DOM
  * @since 1.7.0
  */
-function getDocumentTheme() {
+export function getDocumentTheme() {
     let document = getGlobalObject('document');
     let name = DEFAULT_THEME;
 
@@ -96,6 +87,3 @@ function getDocumentTheme() {
     return new Theme(name);
 
 }
-
-assignToNamespace('Monster.DOM', Theme, getDocumentTheme);
-export {Monster, Theme, getDocumentTheme}
diff --git a/application/source/dom/updater.js b/application/source/dom/updater.js
index 93b19ecf0..1530cf97d 100644
--- a/application/source/dom/updater.js
+++ b/application/source/dom/updater.js
@@ -18,7 +18,7 @@ import {
     ATTRIBUTE_UPDATER_REPLACE,
     ATTRIBUTE_UPDATER_SELECT_THIS
 } from "../dom/constants.js";
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {Base} from "../types/base.js";
 import {isArray, isInstance, isIterable} from "../types/is.js";
 import {Observer} from "../types/observer.js";
@@ -40,27 +40,16 @@ import {getDocument} from "./util.js";
  * Changes to attributes are made only when the direct values are changed. If you want to assign changes to other values
  * as well, you have to insert the attribute `data-monster-select-this`. This should be done with care, as it can reduce performance.
  *
- * You can create an object of this class using the monster namespace `new Monster.DOM.Updater()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.DOM.Updater()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {Updater} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/updater.js';
+ * import {Updater} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/updater.js';
  * new Updater()
  * </script>
  * ```
  *
  * @example
  *
- * import {Updater} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/updater.js';
+ * import {Updater} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/updater.js';
  *
  * // First we prepare the html document.
  * // This is done here via script, but can also be inserted into the document as pure html.
@@ -95,7 +84,7 @@ import {getDocument} from "./util.js";
  * @throws {TypeError} value is not an instance of HTMLElement
  * @summary The updater class connects an object with the dom
  */
-class Updater extends Base {
+export class Updater extends Base {
 
     /**
      * @since 1.8.0
@@ -900,6 +889,3 @@ function handleInputControlAttributeUpdate(element, name, value) {
     }
 
 }
-
-assignToNamespace('Monster.DOM', Updater);
-export {Monster, Updater}
diff --git a/application/source/dom/util.js b/application/source/dom/util.js
index b9937e7b3..6e6fb7b35 100644
--- a/application/source/dom/util.js
+++ b/application/source/dom/util.js
@@ -3,26 +3,16 @@
 /**
  * @author schukai GmbH
  */
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {getGlobal} from "../types/global.js";
 import {validateString} from "../types/validate.js";
 
-
 /**
  * this method fetches the document object
  *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(Monster.DOM.getDocument())
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {getDocument} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/util.js';
+ * import {getDocument} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/util.js';
  * console.log(getDocument())
  * </script>
  * ```
@@ -60,7 +50,7 @@ import {validateString} from "../types/validate.js";
  * @memberOf Monster.DOM
  * @throws {Error} not supported environment
  */
-function getDocument() {
+export function getDocument() {
     let document = getGlobal()?.['document'];
     if (typeof document !== 'object') {
         throw new Error("not supported environment")
@@ -74,16 +64,7 @@ function getDocument() {
  *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(Monster.DOM.getWindow())
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {getWindow} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/util.js';
+ * import {getWindow} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/util.js';
  * console.log(getWindow(null))
  * </script>
  * ```
@@ -123,7 +104,7 @@ function getDocument() {
  * @memberOf Monster.DOM
  * @throws {Error} not supported environment
  */
-function getWindow() {
+export function getWindow() {
     let window = getGlobal()?.['window'];
     if (typeof window !== 'object') {
         throw new Error("not supported environment")
@@ -134,22 +115,11 @@ function getWindow() {
 
 
 /**
- *
- *
  * this method fetches the document object
  *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(Monster.DOM.getDocumentFragmentFromString())
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {getDocumentFragmentFromString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/util.js';
+ * import {getDocumentFragmentFromString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/util.js';
  * console.log(getDocumentFragmentFromString('<div></div>'))
  * </script>
  * ```
@@ -188,7 +158,7 @@ function getWindow() {
  * @throws {Error} not supported environment
  * @throws {TypeError} value is not a string
  */
-function getDocumentFragmentFromString(html) {
+export function getDocumentFragmentFromString(html) {
     validateString(html);
 
     const document = getDocument();
@@ -197,7 +167,3 @@ function getDocumentFragmentFromString(html) {
 
     return template.content;
 }
-
-
-assignToNamespace('Monster.DOM', getWindow, getDocument, getDocumentFragmentFromString);
-export {Monster, getWindow, getDocument, getDocumentFragmentFromString}
diff --git a/application/source/dom/worker/factory.js b/application/source/dom/worker/factory.js
index 4a88d16fc..28226d02d 100644
--- a/application/source/dom/worker/factory.js
+++ b/application/source/dom/worker/factory.js
@@ -13,23 +13,12 @@ import {getGlobal, getGlobalFunction} from "../../types/global.js";
 import {isFunction} from "../../types/is.js";
 import {validateInstance, validateString} from "../../types/validate.js";
 
-
-
 /**
- * You can call the function via the monster namespace `new Monster.DOM.Worker.getLocaleOfDocument()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(new Monster.DOM.Worker.Factory())
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
+ * A factory for creating worker instances.
+ * 
  * ```
  * <script type="module">
- * import {Factory} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/dom/worker/factory.js';
+ * import {Factory} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/dom/worker/factory.js';
  * console.log(new Factory())
  * </script>
  * ```
@@ -39,7 +28,7 @@ import {validateInstance, validateString} from "../../types/validate.js";
  * @memberOf Monster.DOM.Worker
  * @summary A small factory to create worker
  */
-class Factory extends Base {
+export class Factory extends Base {
 
 
     /**
@@ -129,6 +118,3 @@ class Factory extends Base {
 
 
 }
-
-assignToNamespace('Monster.DOM.Worker', Factory);
-export {Monster, Factory}
diff --git a/application/source/i18n/formatter.js b/application/source/i18n/formatter.js
index 7e5c24f99..ab65ed7be 100644
--- a/application/source/i18n/formatter.js
+++ b/application/source/i18n/formatter.js
@@ -7,7 +7,7 @@
 
 import {internalSymbol} from "../constants.js";
 import {extend} from "../data/extend.js";
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {Formatter as TextFormatter} from "../text/formatter.js";
 import {validateInstance, validateString} from "../types/validate.js";
 import {Translations} from "./translations.js";
@@ -21,28 +21,17 @@ const internalTranslationSymbol = Symbol('internalTranslation')
 /**
  * The Formatter extends the Text.Formatter with the possibility to replace the key by a translation.
  *
- * You can create an instance via the monster namespace `new Monster.I18n.Formatter()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.I18n.Formatter()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {Formatter} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/i18n/formatter.js';
+ * import {Formatter} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/i18n/formatter.js';
  * new Formatter()
  * </script>
  * ```
  *
  * @example
  *
- * import {Formatter} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/i18n/formatter.js';
- * import {Translations} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/i18n/translations.js';
+ * import {Formatter} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/i18n/formatter.js';
+ * import {Translations} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/i18n/translations.js';
  *
  * const translations = new Translations('en')
  *     .assignTranslations({
@@ -56,7 +45,7 @@ const internalTranslationSymbol = Symbol('internalTranslation')
  * @copyright schukai GmbH
  * @memberOf Monster.I18n
  */
-class Formatter extends TextFormatter {
+export class Formatter extends TextFormatter {
 
     /**
      * Default values for the markers are `${` and `}`
@@ -135,6 +124,3 @@ class Formatter extends TextFormatter {
 
 
 }
-
-assignToNamespace('Monster.I18n', Formatter);
-export {Monster, Formatter}
diff --git a/application/source/i18n/locale.js b/application/source/i18n/locale.js
index 68ba869f3..ad36f18b0 100644
--- a/application/source/i18n/locale.js
+++ b/application/source/i18n/locale.js
@@ -3,7 +3,7 @@
 /**
  * @author schukai GmbH
  */
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {Base} from "../types/base.js";
 import {validateString} from "../types/validate.js";
 import {clone} from "../util/clone.js";
@@ -21,20 +21,11 @@ const propertiesSymbol = Symbol('properties');
 const localeStringSymbol = Symbol('localeString');
 
 /**
- * You can create an instance via the monster namespace `new Monster.I18n.Locale()`.
- *
+ * The Locale class is a base class for the language classes.
+ * 
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.I18n.Locale()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this class individually.
- *
- * ```
- * <script type="module">
- * import {Locale} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/i18n/locale.js';
+ * import {Locale} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/i18n/locale.js';
  * new Locale()
  * </script>
  * ```
@@ -75,7 +66,7 @@ const localeStringSymbol = Symbol('localeString');
  * @memberOf Monster.I18n
  * @see https://datatracker.ietf.org/doc/html/rfc3066
  */
-class Locale extends Base {
+export class Locale extends Base {
 
     /**
      * @param {string} language
@@ -212,7 +203,7 @@ class Locale extends Base {
  *
  * ```
  * <script type="module">
- * import {createLocale} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/i18n/locale.js';
+ * import {createLocale} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/i18n/locale.js';
  * createLocale()
  * </script>
  * ```
@@ -273,7 +264,7 @@ class Locale extends Base {
  * @throws {TypeError} value is not a string
  * @throws {Error} unsupported locale
  */
-function parseLocale(locale) {
+export function parseLocale(locale) {
 
     locale = validateString(locale).replace(/_/g, "-");
 
@@ -330,7 +321,3 @@ function parseLocale(locale) {
     return new Locale(language, region, script, variants, extlang);
 
 }
-
-
-assignToNamespace('Monster.I18n', Locale, parseLocale);
-export {Monster, Locale, parseLocale}
diff --git a/application/source/i18n/namespace.js b/application/source/i18n/namespace.js
deleted file mode 100644
index fb55e2545..000000000
--- a/application/source/i18n/namespace.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-
-/**
- * In this namespace you will find classes and methods for handling locale and localized texts.
- *
- * @namespace Monster.I18n
- * @memberOf Monster
- * @author schukai GmbH
- */
-
-
-/**
- * @private
- * @type {string}
- */
-export const namespace = "Monster.I18n";
\ No newline at end of file
diff --git a/application/source/i18n/provider.js b/application/source/i18n/provider.js
index d7b6bc2d4..7316dd185 100644
--- a/application/source/i18n/provider.js
+++ b/application/source/i18n/provider.js
@@ -3,28 +3,17 @@
 /**
  * @author schukai GmbH
  */
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {BaseWithOptions} from "../types/basewithoptions.js";
 import {Locale} from "./locale.js"
 import {Translations} from "./translations.js"
 
 /**
  * A provider makes a translation object available.
- *
- * You can call the method via the monster namespace `new Monster.I18n.Provider()`.
- *
+ * 
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.I18n.Provider()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {Provider} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/i18n/provider.js';
+ * import {Provider} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/i18n/provider.js';
  * new Provider()
  * </script>
  * ```
@@ -34,7 +23,7 @@ import {Translations} from "./translations.js"
  * @memberOf Monster.I18n
  * @see {@link https://datatracker.ietf.org/doc/html/rfc3066}
  */
-class Provider extends BaseWithOptions {
+export class Provider extends BaseWithOptions {
 
     /**
      * @param {Locale|string} locale
@@ -52,7 +41,3 @@ class Provider extends BaseWithOptions {
     }
 
 }
-
-
-assignToNamespace('Monster.I18n', Provider);
-export {Monster, Provider}
diff --git a/application/source/i18n/providers/fetch.js b/application/source/i18n/providers/fetch.js
index 5506b2e72..ec4647857 100644
--- a/application/source/i18n/providers/fetch.js
+++ b/application/source/i18n/providers/fetch.js
@@ -17,28 +17,17 @@ import {Translations} from "../translations.js";
 
 /**
  * The fetch provider retrieves a JSON file from the given URL and returns a translation object.
- *
- * You can create the object via the monster namespace `new Monster.I18n.Provider.Fetch()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.I18n.Providers.Fetch()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
+ * 
  * ```
  * <script type="module">
- * import {Fetch} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/i18n/providers/fetch.js';
+ * import {Fetch} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/i18n/providers/fetch.js';
  * new Fetch()
  * </script>
  * ```
  * 
  * @example <caption>das ist ein test</caption>
  * 
- * import {Fetch} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/i18n/providers/fetch.js';
+ * import {Fetch} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/i18n/providers/fetch.js';
  * 
  * // fetch from API
  * const translation = new Fetch('https://example.com/${language}.json').getTranslation('en-GB');
@@ -50,7 +39,7 @@ import {Translations} from "../translations.js";
  * @see {@link https://datatracker.ietf.org/doc/html/rfc3066}
  * @tutorial i18n-locale-and-formatter
  */
-class Fetch extends Provider {
+export class Fetch extends Provider {
 
     /**
      * As options the key `fetch` can be passed. This config object is passed to the fetch method as init.
@@ -142,6 +131,3 @@ class Fetch extends Provider {
 
 }
 
-
-assignToNamespace('Monster.I18n.Providers', Fetch);
-export {Monster, Fetch}
diff --git a/application/source/i18n/providers/namespace.js b/application/source/i18n/providers/namespace.js
deleted file mode 100644
index 4e01e737d..000000000
--- a/application/source/i18n/providers/namespace.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-
-/**
- * Namespace for different translation providers.
- *
- * @namespace Monster.I18n.Providers
- * @memberOf Monster.I18n
- * @author schukai GmbH
- */
-
-
-/**
- * @private
- * @type {string}
- */
-export const namespace = "Monster.I18n.Providers";
\ No newline at end of file
diff --git a/application/source/i18n/translations.js b/application/source/i18n/translations.js
index 641b54fa6..1928d5488 100644
--- a/application/source/i18n/translations.js
+++ b/application/source/i18n/translations.js
@@ -3,7 +3,7 @@
 /**
  * @author schukai GmbH
  */
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {Base} from "../types/base.js";
 import {isObject, isString} from "../types/is.js";
 import {validateInstance, validateInteger, validateObject, validateString} from "../types/validate.js";
@@ -13,28 +13,17 @@ import {Locale, parseLocale} from "./locale.js";
 /**
  * With this class you can manage translations and access the keys.
  *
- * You can call the method via the monster namespace `new Monster.I18n.Translations()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.I18n.Translations()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {Translations} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/i18n/translations.js';
+ * import {Translations} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/i18n/translations.js';
  * new Translations()
  * </script>
  * ```
  *
  * @example
  *
- * import {Translations} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/i18n/translations.js';
- * import {parseLocale} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/i18n/locale.js';
+ * import {Translations} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/i18n/translations.js';
+ * import {parseLocale} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/i18n/locale.js';
  *
  * const translation = new Translations(parseLocale('en-GB'));
  *
@@ -59,7 +48,7 @@ import {Locale, parseLocale} from "./locale.js";
  * @memberOf Monster.I18n
  * @see https://datatracker.ietf.org/doc/html/rfc3066
  */
-class Translations extends Base {
+export class Translations extends Base {
 
     /**
      *
@@ -214,6 +203,3 @@ class Translations extends Base {
     }
 
 }
-
-assignToNamespace('Monster.I18n', Translations);
-export {Monster, Translations}
diff --git a/application/source/logging/handler.js b/application/source/logging/handler.js
index 674fe3ea6..5eb221b71 100644
--- a/application/source/logging/handler.js
+++ b/application/source/logging/handler.js
@@ -4,27 +4,18 @@
  * @author schukai GmbH
  */
 
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {Base} from '../types/base.js';
 import {validateInstance, validateInteger} from "../types/validate.js";
 import {LogEntry} from "./logentry.js";
 import {ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE, WARN} from "./logger.js";
 
 /**
- * you can call the method via the monster namespace `new Monster.Logging.Handler()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(new Monster.Logging.Handler())
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
+ * The log handler is the interface between the log entries and the log listeners.
+ * 
  * ```
  * <script type="module">
- * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/logging/handler.js';
+ * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/logging/handler.js';
  * console.log(new Handler())
  * </script>
  * ```
@@ -33,7 +24,7 @@ import {ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE, WARN} from "./logger.js";
  * @copyright schukai GmbH
  * @memberOf Monster.Logging
  */
-class Handler extends Base {
+export class Handler extends Base {
     constructor() {
         super();
 
@@ -178,7 +169,3 @@ class Handler extends Base {
 
 
 }
-
-
-assignToNamespace('Monster.Logging', Handler);
-export {Monster, Handler};
diff --git a/application/source/logging/handler/console.js b/application/source/logging/handler/console.js
index 5bd470630..9f74a9e03 100644
--- a/application/source/logging/handler/console.js
+++ b/application/source/logging/handler/console.js
@@ -12,19 +12,10 @@ import {LogEntry} from "../logentry.js";
 
 /**
  * You can create an object of the class simply by using the namespace `new Monster.Logging.Handler.ConsoleHandler()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(new Monster.Logging.Handler.ConsoleHandler())
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this class individually.
- *
+ * 
  * ```
  * <script type="module">
- * import {ConsoleHandler} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/logging/handler/console.js';
+ * import {ConsoleHandler} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/logging/handler/console.js';
  * console.log(new ConsoleHandler())
  * </script>
  * ```
@@ -33,7 +24,7 @@ import {LogEntry} from "../logentry.js";
  * @copyright schukai GmbH
  * @memberOf Monster.Logging.Handler
  */
-class ConsoleHandler extends Handler {
+export class ConsoleHandler extends Handler {
     constructor() {
         super();
     }
@@ -62,5 +53,3 @@ class ConsoleHandler extends Handler {
 }
 
 
-assignToNamespace('Monster.Logging.Handler', ConsoleHandler);
-export {Monster, ConsoleHandler};
diff --git a/application/source/logging/handler/namespace.js b/application/source/logging/handler/namespace.js
deleted file mode 100644
index 6bd37d05d..000000000
--- a/application/source/logging/handler/namespace.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-
-/**
- * @namespace Monster.Logging.Handler
- * @memberOf Monster.Logging
- * @author schukai GmbH
- */
-
-
-/**
- * @private
- * @type {string}
- */
-export const namespace = "Monster.Logging.Handler";
\ No newline at end of file
diff --git a/application/source/logging/logentry.js b/application/source/logging/logentry.js
index cca66fb32..f137ab2f1 100644
--- a/application/source/logging/logentry.js
+++ b/application/source/logging/logentry.js
@@ -4,26 +4,17 @@
  * @author schukai GmbH
  */
 
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {Base} from '../types/base.js';
 import {validateInteger} from '../types/validate.js';
 
 
 /**
- * you can call the method via the monster namespace `new Monster.Logging.LogEntry()`.
- *
+ * A log entry for the logger
+ * 
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(new Monster.Logging.LogEntry())
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/logging/logentry.js';
+ * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/logging/logentry.js';
  * console.log(new LogEntry())
  * </script>
  * ```
@@ -32,7 +23,7 @@ import {validateInteger} from '../types/validate.js';
  * @copyright schukai GmbH
  * @memberOf Monster.Logging
  */
-class LogEntry extends Base {
+export class LogEntry extends Base {
     /**
      *
      * @param {Integer} loglevel
@@ -63,6 +54,3 @@ class LogEntry extends Base {
     }
 
 }
-
-assignToNamespace('Monster.Logging', LogEntry);
-export {Monster, LogEntry}
diff --git a/application/source/logging/logger.js b/application/source/logging/logger.js
index 420c46a61..ca43dfd4e 100644
--- a/application/source/logging/logger.js
+++ b/application/source/logging/logger.js
@@ -6,7 +6,7 @@
 
 import {Handler} from '../logging/handler.js';
 import {LogEntry} from '../logging/logentry.js';
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {Base} from '../types/base.js';
 import {validateInteger, validateObject, validateString} from '../types/validate.js';
 
@@ -16,65 +16,56 @@ import {validateInteger, validateObject, validateString} from '../types/validate
  * @type {number}
  * @memberOf Monster.Logging
  */
-const ALL = 255;
+export const ALL = 255;
 /**
  * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF
  * @type {number}
  * @memberOf Monster.Logging
  */
-const TRACE = 64;
+export const TRACE = 64;
 /**
  * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF
  * @type {number}
  * @memberOf Monster.Logging
  */
-const DEBUG = 32;
+export const DEBUG = 32;
 /**
  * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF
  * @type {number}
  * @memberOf Monster.Logging
  */
-const INFO = 16;
+export const INFO = 16;
 /**
  * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF
  * @type {number}
  * @memberOf Monster.Logging
  */
-const WARN = 8;
+export const WARN = 8;
 /**
  * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF
  * @type {number}
  * @memberOf Monster.Logging
  */
-const ERROR = 4;
+export const ERROR = 4;
 /**
  * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF
  * @type {number}
  * @memberOf Monster.Logging
  */
-const FATAL = 2;
+export const FATAL = 2;
 /**
  * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF
  * @type {number}
  * @memberOf Monster.Logging
  */
-const OFF = 0;
+export const OFF = 0;
 
 /**
- * You can create an object of the class simply by using the namespace `new Monster.Logging.Logger()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.Logging.Logger()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this class individually.
+ * The logger is a class that takes care of logging.
  *
  * ```
  * <script type="module">
- * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/logging/logger.js';
+ * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/logging/logger.js';
  * new Logger()
  * </script>
  * ```
@@ -83,7 +74,7 @@ const OFF = 0;
  * @copyright schukai GmbH
  * @memberOf Monster.Logging
  */
-class Logger extends Base {
+export class Logger extends Base {
 
     /**
      *
@@ -256,9 +247,6 @@ class Logger extends Base {
 
 }
 
-assignToNamespace('Monster.Logging', Logger);
-export {Monster, Logger, ALL, TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF};
-
 
 /**
  * Log triggern
diff --git a/application/source/logging/namespace.js b/application/source/logging/namespace.js
deleted file mode 100644
index 325bb0bd2..000000000
--- a/application/source/logging/namespace.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-
-/**
- * Namespace for logging.
- *
- * @namespace Monster.Logging
- * @memberOf Monster
- * @author schukai GmbH
- */
-
-
-/**
- * @private
- * @type {string}
- */
-export const namespace = "Monster.Logging";
\ No newline at end of file
diff --git a/application/source/math/namespace.js b/application/source/math/namespace.js
deleted file mode 100644
index 93c2e40e0..000000000
--- a/application/source/math/namespace.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-
-/**
- * Namespace for math.
- *
- * @namespace Monster.Math
- * @memberOf Monster
- * @author schukai GmbH
- */
-
-
-/**
- * @private
- * @type {string}
- */
-export const namespace = "Monster.Math";
\ No newline at end of file
diff --git a/application/source/math/random.js b/application/source/math/random.js
index 2b41fa914..3a8efed11 100644
--- a/application/source/math/random.js
+++ b/application/source/math/random.js
@@ -4,28 +4,16 @@
  * @author schukai GmbH
  */
 
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {getGlobal} from '../types/global.js';
 
 
 /**
  * this function uses crypt and returns a random number.
  *
- * you can call the method via the monster namespace `Monster.Math.random()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.Math.random(1,10)
- * // ↦ 5
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
  * ```
  * <script type="module">
- * import {random} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/math/random.js';
+ * import {random} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/math/random.js';
  * random(1,10)
  * // ↦ 5
  * </script>
@@ -42,7 +30,7 @@ import {getGlobal} from '../types/global.js';
  * @since 1.0.0
  * @copyright schukai GmbH
  */
-function random(min, max) {
+export function random(min, max) {
 
     if (min === undefined) {
         min = 0;
@@ -125,10 +113,3 @@ function create(min, max) {
     return rval;
 
 }
-
-assignToNamespace('Monster.Math', random);
-export {Monster, random}
-
-
-
-
diff --git a/application/source/text/formatter.js b/application/source/text/formatter.js
index bcb536fd6..2c004426c 100644
--- a/application/source/text/formatter.js
+++ b/application/source/text/formatter.js
@@ -7,10 +7,11 @@
 import {internalSymbol} from "../constants.js";
 import {extend} from "../data/extend.js";
 import {Pipe} from "../data/pipe.js";
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {BaseWithOptions} from "../types/basewithoptions.js";
 import {isObject, isString} from "../types/is.js";
 import {validateArray, validateString} from "../types/validate.js";
+import {getMonsterVersion} from "../types/version.js";
 
 
 /**
@@ -49,20 +50,9 @@ const workingDataSymbol = Symbol('workingData');
  *
  * Look at the example below. The placeholders use the logic of Pipe.
  *
- * You can create an instance via the monster namespace `new Monster.Text.Formatter()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.Text.Formatter()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {Formatter} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/text/formatter.js';
+ * import {Formatter} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/text/formatter.js';
  * new Formatter()
  * </script>
  * ```
@@ -107,7 +97,7 @@ const workingDataSymbol = Symbol('workingData');
  *
  * @example
  *
- * import {Formatter} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/text/formatter.js';
+ * import {Formatter} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/text/formatter.js';
  *
  * new Formatter({
  *       a: {
@@ -124,7 +114,7 @@ const workingDataSymbol = Symbol('workingData');
  * @copyright schukai GmbH
  * @memberOf Monster.Text
  */
-class Formatter extends BaseWithOptions {
+export class Formatter extends BaseWithOptions {
 
     /**
      * Default values for the markers are `${` and `}`
@@ -362,6 +352,3 @@ function tokenize(text, openMarker, closeMarker) {
 
     return formatted.join('');
 }
-
-assignToNamespace('Monster.Text', Formatter);
-export {Monster, Formatter}
diff --git a/application/source/text/namespace.js b/application/source/text/namespace.js
deleted file mode 100644
index 2bd5ddd7e..000000000
--- a/application/source/text/namespace.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-
-/**
- * Namespace for texts.
- *
- * @namespace Monster.Text
- * @memberOf Monster
- * @author schukai GmbH
- */
-
-
-/**
- * @private
- * @type {string}
- */
-export const namespace = "Monster.Text";
\ No newline at end of file
diff --git a/application/source/types/base.js b/application/source/types/base.js
index 74c6f1efc..79b100564 100644
--- a/application/source/types/base.js
+++ b/application/source/types/base.js
@@ -4,25 +4,14 @@
  * @author schukai GmbH
  */
 
-import {assignToNamespace, Monster} from '../namespace.js';
+
 
 /**
  * This is the base class from which all monster classes are derived.
  *
- * You can call the method via the monster namespace `new Monster.Types.Base()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.Types.Base()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {Base} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/base.js';
+ * import {Base} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/base.js';
  * new Base()
  * </script>
  * ```
@@ -33,7 +22,7 @@ import {assignToNamespace, Monster} from '../namespace.js';
  * @copyright schukai GmbH
  * @memberOf Monster.Types
  */
-class Base extends Object {
+export class Base extends Object {
 
     /**
      *
@@ -45,6 +34,3 @@ class Base extends Object {
 
 
 }
-
-assignToNamespace('Monster.Types', Base);
-export {Monster, Base}
diff --git a/application/source/types/basewithoptions.js b/application/source/types/basewithoptions.js
index f100f37e6..a98e92a4c 100644
--- a/application/source/types/basewithoptions.js
+++ b/application/source/types/basewithoptions.js
@@ -7,7 +7,7 @@
 import {internalSymbol} from "../constants.js";
 import {extend} from "../data/extend.js";
 import {Pathfinder} from "../data/pathfinder.js";
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {Base} from "./base.js";
 import {validateObject} from "./validate.js";
 
@@ -16,20 +16,9 @@ import {validateObject} from "./validate.js";
  *
  * This class is actually only used as a base class.
  * 
- * However, you can also create an instance directly via the monster namespace `new Monster.Types.BaseWithOptions()`.
- *
  * ```html
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.Types.BaseWithOptions()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```html
- * <script type="module">
- * import {BaseWithOptions} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/basewithoptions.js';
+ * import {BaseWithOptions} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/basewithoptions.js';
  * new BaseWithOptions()
  * </script>
  * ```
@@ -53,7 +42,7 @@ import {validateObject} from "./validate.js";
  * @copyright schukai GmbH
  * @memberOf Monster.Types
  */
-class BaseWithOptions extends Base {
+export class BaseWithOptions extends Base {
 
     /**
      *
@@ -113,6 +102,3 @@ class BaseWithOptions extends Base {
 
 
 }
-
-assignToNamespace('Monster.Types', BaseWithOptions);
-export {Monster, BaseWithOptions}
diff --git a/application/source/types/binary.js b/application/source/types/binary.js
index 939b3452a..19e0eae7f 100644
--- a/application/source/types/binary.js
+++ b/application/source/types/binary.js
@@ -13,16 +13,7 @@ import {Monster, validateString} from "./validate.js";
  *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.Types.toBinary()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {toBinary} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/binary.js';
+ * import {toBinary} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/binary.js';
  * toBinary()
  * </script>
  * ```
@@ -33,7 +24,7 @@ import {Monster, validateString} from "./validate.js";
  * @memberOf Monster.Types
  * @since 1.18.0
  */
-function toBinary(string) {
+export function toBinary(string) {
     const codeUnits = new Uint16Array(validateString(string).length);
     for (let i = 0; i < codeUnits.length; i++) {
         codeUnits[i] = string.charCodeAt(i);
@@ -54,16 +45,7 @@ function toBinary(string) {
  *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.Types.fromBinary()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {fromBinary} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/binary.js';
+ * import {fromBinary} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/binary.js';
  * fromBinary()
  * </script>
  * ```
@@ -74,7 +56,7 @@ function toBinary(string) {
  * @memberOf Monster.Types
  * @since 1.18.0
  */
-function fromBinary(binary) {
+export function fromBinary(binary) {
     const bytes = new Uint8Array(validateString(binary).length);
     for (let i = 0; i < bytes.length; i++) {
         bytes[i] = binary.charCodeAt(i);
@@ -87,6 +69,3 @@ function fromBinary(binary) {
     return result;
 }
 
-
-assignToNamespace('Monster.Types', toBinary, fromBinary);
-export {Monster, toBinary, fromBinary};
diff --git a/application/source/types/dataurl.js b/application/source/types/dataurl.js
index 4049ef559..790b08761 100644
--- a/application/source/types/dataurl.js
+++ b/application/source/types/dataurl.js
@@ -20,16 +20,7 @@ const internal = Symbol('internal');
  *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.Types.DataUrl()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {DataUrl} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/dataurl.js';
+ * import {DataUrl} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/dataurl.js';
  * new DataUrl()
  * </script>
  * ```
@@ -40,7 +31,7 @@ const internal = Symbol('internal');
  * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs
  * @see https://datatracker.ietf.org/doc/html/rfc2397
  */
-class DataUrl extends Base {
+export class DataUrl extends Base {
 
     /**
      *
@@ -98,17 +89,8 @@ class DataUrl extends Base {
  *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(Monster.Types.parseDataURL())
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {parseDataURL} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/dataurl.js';
- * console.log(parseDataURL())
+ * import {parseDataURL} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/dataurl.js';
+ * parseDataURL(...)
  * </script>
  * ```
  *
@@ -129,7 +111,7 @@ class DataUrl extends Base {
  * @throws {TypeError} malformed data url
  * @memberOf Monster.Types
  */
-function parseDataURL(dataurl) {
+export function parseDataURL(dataurl) {
 
     validateString(dataurl);
 
@@ -170,7 +152,3 @@ function parseDataURL(dataurl) {
 
 
 }
-
-
-assignToNamespace('Monster.Types', parseDataURL, DataUrl);
-export {Monster, parseDataURL, DataUrl};
diff --git a/application/source/types/id.js b/application/source/types/id.js
index 2f0f45e68..24f40ab81 100644
--- a/application/source/types/id.js
+++ b/application/source/types/id.js
@@ -3,7 +3,7 @@
 /**
  * @author schukai GmbH
  */
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {Base} from './base.js';
 import {validateString} from "./validate.js";
 
@@ -20,20 +20,9 @@ let internalCounter = new Map;
  *
  * So the ids can also be used for navigation. you just have to take care that the order stays the same.
  *
- * You can call the method via the monster namespace `new Monster.Types.ID()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(new Monster.Types.ID())
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/id.js';
+ * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/id.js';
  * console.log(new ID())
  * </script>
  * ```
@@ -45,7 +34,7 @@ let internalCounter = new Map;
  * @memberOf Monster.Types
  * @summary Automatic generation of ids
  */
-class ID extends Base {
+export class ID extends Base {
 
     /**
      * create new id with prefix
@@ -79,6 +68,3 @@ class ID extends Base {
     }
 
 }
-
-assignToNamespace('Monster.Types', ID);
-export {Monster, ID}
diff --git a/application/source/types/is.js b/application/source/types/is.js
index 533773ba8..4990aa301 100644
--- a/application/source/types/is.js
+++ b/application/source/types/is.js
@@ -4,7 +4,7 @@
  * @author schukai GmbH
  */
 
-import {assignToNamespace, Monster} from '../namespace.js';
+
 
 /**
  * With this function you can check if a value is iterable.
@@ -15,18 +15,7 @@ import {assignToNamespace, Monster} from '../namespace.js';
  *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.Types.isIterable(null) // ↦ false
- * Monster.Types.isIterable('hello') // ↦ true
- * Monster.Types.isIterable([]) // ↦ true
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {isIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/is.js';
+ * import {isIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/is.js';
  * isIterable(null)  // ↦ false
  * isIterable('hello')  // ↦ true
  * isIterable([])  // ↦ true
@@ -39,7 +28,7 @@ import {assignToNamespace, Monster} from '../namespace.js';
  * @copyright schukai GmbH
  * @memberOf Monster.Types
  */
-function isIterable(value) {
+export function isIterable(value) {
     if (value === undefined) return false;
     if (value === null) return false;
     return typeof value?.[Symbol.iterator] === 'function';
@@ -51,21 +40,9 @@ function isIterable(value) {
  * 
  * This method is used in the library to have consistent names.
  *
- * You can call the method via the monster namespace `Monster.Types.isPrimitive()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.Types.isPrimitive('2') // ↦ false
- * Monster.Types.isPrimitive([]) // ↦ true
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {isPrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/is.js';
+ * import {isPrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/is.js';
  * isPrimitive('2'))  // ↦ true
  * isPrimitive([]))  // ↦ false
  * </script>
@@ -77,7 +54,7 @@ function isIterable(value) {
  * @copyright schukai GmbH
  * @memberOf Monster.Types
  */
-function isPrimitive(value) {
+export function isPrimitive(value) {
     var type;
 
     if (value === undefined || value === null) {
@@ -98,21 +75,9 @@ function isPrimitive(value) {
  * 
  * This method is used in the library to have consistent names.
  *
- * You can call the method via the monster namespace `Monster.Types.isSymbol()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.Types.isSymbol('2') // ↦ false
- * Monster.Types.isSymbol(Symbol('test') // ↦ true
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {isSymbol} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/is.js';
+ * import {isSymbol} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/is.js';
  * isSymbol(Symbol('a')))  // ↦ true
  * isSymbol([])  // ↦ false
  * </script>
@@ -124,7 +89,7 @@ function isPrimitive(value) {
  * @copyright schukai GmbH
  * @memberOf Monster.Types
  */
-function isSymbol(value) {
+export function isSymbol(value) {
     return ('symbol' === typeof value) ? true : false;
 }
 
@@ -133,22 +98,9 @@ function isSymbol(value) {
  * 
  * This method is used in the library to have consistent names.
  *
- * You can call the method via the monster namespace `Monster.Types.isBoolean()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.Types.isBoolean('2') // ↦ false
- * Monster.Types.isBoolean([]) // ↦ false
- * Monster.Types.isBoolean(true) // ↦ true
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
  * ```
  * <script type="module">
- * import {isBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/is.js';
+ * import {isBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/is.js';
  * isBoolean('2'))  // ↦ false
  * isBoolean([]))  // ↦ false
  * isBoolean(2>4))  // ↦ true
@@ -161,7 +113,7 @@ function isSymbol(value) {
  * @copyright schukai GmbH
  * @memberOf Monster.Types
  */
-function isBoolean(value) {
+export function isBoolean(value) {
 
     if (value === true || value === false) {
         return true;
@@ -175,21 +127,9 @@ function isBoolean(value) {
  * 
  * This method is used in the library to have consistent names.
  *
- * You can call the method via the monster namespace `Monster.Types.isString()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.Types.isString('2') // ↦ true
- * Monster.Types.isString([]) // ↦ false
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {isString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/is.js';
+ * import {isString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/is.js';
  * isString('2'))  // ↦ true
  * isString([]))  // ↦ false
  * </script>
@@ -201,7 +141,7 @@ function isBoolean(value) {
  * @copyright schukai GmbH
  * @memberOf Monster.Types
  */
-function isString(value) {
+export function isString(value) {
     if (value === undefined || typeof value !== 'string') {
         return false;
     }
@@ -213,22 +153,9 @@ function isString(value) {
  * 
  * This method is used in the library to have consistent names.
  *
- * You can call the method via the monster namespace `Monster.Types.isObject()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.Types.isObject('2') // ↦ false
- * Monster.Types.isObject([]) // ↦ false
- * Monster.Types.isObject({}) // ↦ true
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {isObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/is.js';
+ * import {isObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/is.js';
  * isObject('2'))  // ↦ false
  * isObject([]))  // ↦ false
  * </script>
@@ -240,7 +167,7 @@ function isString(value) {
  * @copyright schukai GmbH
  * @memberOf Monster.Types
  */
-function isObject(value) {
+export function isObject(value) {
 
     if (isArray(value)) return false;
     if (isPrimitive(value)) return false;
@@ -257,22 +184,9 @@ function isObject(value) {
  * 
  * This method is used in the library to have consistent names.
  *
- * you can call the method via the monster namespace `Monster.Types.isInstance()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.Types.isInstance('2') // ↦ false
- * Monster.Types.isInstance([]) // ↦ false
- * Monster.Types.isInstance({}) // ↦ true
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
  * ```
  * <script type="module">
- * import {isInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/is.js';
+ * import {isInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/is.js';
  * isInstance('2'))  // ↦ false
  * isInstance([]))  // ↦ false
  * </script>
@@ -285,7 +199,7 @@ function isObject(value) {
  * @copyright schukai GmbH
  * @memberOf Monster.Types
  */
-function isInstance(value, instance) {
+export function isInstance(value, instance) {
 
     if (!isObject(value)) return false;
     if (!isFunction(instance)) return false;
@@ -299,21 +213,9 @@ function isInstance(value, instance) {
  * 
  * This method is used in the library to have consistent names. 
  *
- * you can call the method via the monster namespace `Monster.Types.isArray()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.Types.isArray('2') // ↦ false
- * Monster.Types.isArray([]) // ↦ true
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
  * ```
  * <script type="module">
- * import {isArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/is.js';
+ * import {isArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/is.js';
  * isArray('2'))  // ↦ false
  * isArray([]))  // ↦ true
  * </script>
@@ -326,7 +228,7 @@ function isInstance(value, instance) {
  * @memberOf Monster.Types
  * @see https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray
  */
-function isArray(value) {
+export function isArray(value) {
     return Array.isArray(value);
 }
 
@@ -335,22 +237,9 @@ function isArray(value) {
  * 
  * This method is used in the library to have consistent names. 
  *
- * you can call the method via the monster namespace `Monster.Types.isFunction()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.Types.isFunction(()=>{}) // ↦ true
- * Monster.Types.isFunction('2') // ↦ false
- * Monster.Types.isFunction([]) // ↦ false
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
  * ```
  * <script type="module">
- * import {isFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/is.js';
+ * import {isFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/is.js';
  * isFunction(()=>{}) // ↦ true
  * isFunction('2'))  // ↦ false
  * isFunction([]))  // ↦ false
@@ -363,7 +252,7 @@ function isArray(value) {
  * @copyright schukai GmbH
  * @memberOf Monster.Types
  */
-function isFunction(value) {
+export function isFunction(value) {
     if (isArray(value)) return false;
     if (isPrimitive(value)) return false;
 
@@ -380,22 +269,9 @@ function isFunction(value) {
  * 
  * This method is used in the library to have consistent names. 
  *
- * You can call the method via the monster namespace `Monster.Types.isFunction()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.Types.isInteger(()=>{}) // ↦ true
- * Monster.Types.isInteger('2') // ↦ false
- * Monster.Types.isInteger(2) // ↦ true
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {isInteger} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/is.js';
+ * import {isInteger} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/is.js';
  * isInteger(()=>{}) // ↦ true
  * isInteger('2'))  // ↦ false
  * isInteger(2))  // ↦ true
@@ -408,22 +284,7 @@ function isFunction(value) {
  * @copyright schukai GmbH
  * @memberOf Monster.Types
  */
-function isInteger(value) {
+export function isInteger(value) {
     return Number.isInteger(value);
 }
 
-
-assignToNamespace('Monster.Types', isPrimitive, isBoolean, isString, isObject, isArray, isFunction, isIterable, isInteger, isSymbol);
-export {
-    Monster,
-    isPrimitive,
-    isBoolean,
-    isString,
-    isObject,
-    isInstance,
-    isArray,
-    isFunction,
-    isIterable,
-    isInteger,
-    isSymbol
-}
diff --git a/application/source/types/mediatype.js b/application/source/types/mediatype.js
index 6b63573e9..fd9bfb1a5 100644
--- a/application/source/types/mediatype.js
+++ b/application/source/types/mediatype.js
@@ -28,16 +28,7 @@ const internal = Symbol('internal');
  *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(new Monster.Types.MediaType())
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {MediaType} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/mediatype.js';
+ * import {MediaType} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/mediatype.js';
  * console.log(new MediaType())
  * </script>
  * ```
@@ -46,7 +37,7 @@ const internal = Symbol('internal');
  * @copyright schukai GmbH
  * @memberOf Monster.Types
  */
-class MediaType extends Base {
+export class MediaType extends Base {
 
     /**
      *
@@ -146,7 +137,7 @@ class MediaType extends Base {
  *
  * ```
  * <script type="module">
- * import {parseMediaType} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/dataurl.js';
+ * import {parseMediaType} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/dataurl.js';
  * console.log(parseMediaType())
  * </script>
  * ```
@@ -168,7 +159,7 @@ class MediaType extends Base {
  * @throws {TypeError} malformed data url
  * @memberOf Monster.Types
  */
-function parseMediaType(mediatype) {
+export function parseMediaType(mediatype) {
 
     const regex = /(?<type>[A-Za-z]+|\*)\/(?<subtype>([a-zA-Z0-9.\+_\-]+)|\*|)(?<parameter>\s*;\s*([a-zA-Z0-9]+)\s*(=\s*("?[A-Za-z0-9_\-]+"?))?)*/g;
     const result = regex.exec(validateString(mediatype));
@@ -230,7 +221,3 @@ function parseParameter(parameter) {
     return result;
 
 }
-
-
-assignToNamespace('Monster.Types', parseMediaType, MediaType);
-export {Monster, parseMediaType, MediaType};
diff --git a/application/source/types/namespace.js b/application/source/types/namespace.js
deleted file mode 100644
index d379ec3ed..000000000
--- a/application/source/types/namespace.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-
-/**
- * Namespace for types.
- *
- * @namespace Monster.Types
- * @memberOf Monster
- * @author schukai GmbH
- */
-
-
-/**
- * @private
- * @type {string}
- */
-export const namespace = "Monster.Types";   
\ No newline at end of file
diff --git a/application/source/types/node.js b/application/source/types/node.js
index ad4093ab2..0c06d69b5 100644
--- a/application/source/types/node.js
+++ b/application/source/types/node.js
@@ -5,7 +5,7 @@
  */
 
 
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {Base} from './base.js';
 import {isPrimitive} from "./is.js";
 import {NodeList} from './nodelist.js';
@@ -29,16 +29,7 @@ const treeStructureSymbol = Symbol('treeStructure');
  *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.Types.Node()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {Node} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/node.js';
+ * import {Node} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/node.js';
  * new Node()
  * </script>
  * ```
@@ -49,7 +40,7 @@ const treeStructureSymbol = Symbol('treeStructure');
  * @summary A Node Class
  * @see https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Iteration_protocols
  */
-class Node extends Base {
+export class Node extends Base {
 
     /**
      * @param {*} [value]
@@ -205,6 +196,3 @@ function setChildLevelAndParent(node, operand) {
     });
     return this;
 }
-
-assignToNamespace('Monster.Types', Node);
-export {Monster, Node}
diff --git a/application/source/types/nodelist.js b/application/source/types/nodelist.js
index 49437d21a..24532a3c1 100644
--- a/application/source/types/nodelist.js
+++ b/application/source/types/nodelist.js
@@ -3,7 +3,7 @@
 /**
  * @author schukai GmbH
  */
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {isArray, isInstance} from "./is.js";
 import {Node} from "./node.js";
 import {validateInstance} from "./validate.js";
@@ -13,16 +13,7 @@ import {validateInstance} from "./validate.js";
  *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.Types.NodeList()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {NodeList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/nodelist.js';
+ * import {NodeList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/nodelist.js';
  * new NodeList()
  * </script>
  * ```
@@ -32,7 +23,7 @@ import {validateInstance} from "./validate.js";
  * @memberOf Monster.Types
  * @summary A NodeList class
  */
-class NodeList extends Set {
+export class NodeList extends Set {
 
     /**
      * @throws {Error} invalid value type
@@ -124,6 +115,3 @@ class NodeList extends Set {
     }
 }
 
-
-assignToNamespace('Monster.Types', NodeList);
-export {Monster, NodeList}
diff --git a/application/source/types/noderecursiveiterator.js b/application/source/types/noderecursiveiterator.js
index 4fe8f6d2b..411e73dac 100644
--- a/application/source/types/noderecursiveiterator.js
+++ b/application/source/types/noderecursiveiterator.js
@@ -6,7 +6,7 @@
 
 
 import {internalSymbol} from "../constants.js";
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {Base} from './base.js';
 import {isInstance} from "./is.js";
 import {Node} from "./node.js";
@@ -25,23 +25,14 @@ const isNodeListSymbol = Symbol('isNodeList');
  *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.Types.NodeRecursiveIterator()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {NodeRecursiveIterator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/noderecursiveiterator.js';
+ * import {NodeRecursiveIterator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/noderecursiveiterator.js';
  * new NodeRecursiveIterator()
  * </script>
  * ```
  *
  * @example
- * import {Node} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/node.js';
- * import {NodeRecursiveIterator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/noderecursiveiterator.js';
+ * import {Node} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/node.js';
+ * import {NodeRecursiveIterator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/noderecursiveiterator.js';
  *
  * const node =new Node('1')
  *
@@ -78,7 +69,7 @@ const isNodeListSymbol = Symbol('isNodeList');
  * @memberOf Monster.Types
  * @summary An iterator to run recursively through a tree of nodes
  */
-class NodeRecursiveIterator extends Base {
+export class NodeRecursiveIterator extends Base {
 
     /**
      * @param {Node} [data]
@@ -142,7 +133,3 @@ class NodeRecursiveIterator extends Base {
     }
 
 }
-
-
-assignToNamespace('Monster.Types', NodeRecursiveIterator);
-export {Monster, NodeRecursiveIterator}
diff --git a/application/source/types/observer.js b/application/source/types/observer.js
index 4c65e9f2a..f6d5d317b 100644
--- a/application/source/types/observer.js
+++ b/application/source/types/observer.js
@@ -4,7 +4,7 @@
  * @author schukai GmbH
  */
 
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {Base} from './base.js';
 import {isObject} from './is.js';
 import {TokenList} from './tokenlist.js';
@@ -13,17 +13,8 @@ import {UniqueQueue} from './uniquequeue.js';
 /**
  * An observer manages a callback function
  *
- * You can call the method via the monster namespace `new Monster.Types.Observer()`.
- *
- * ```
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.Types.Observer()
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
  * ```
- * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/observer.js';
+ * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/observer.js';
  * new Observer()
  * ```
  *
@@ -52,7 +43,7 @@ import {UniqueQueue} from './uniquequeue.js';
  *
  * @example
  *
- * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/observer.js';
+ * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/observer.js';
  *
  * const observer = new Observer(function(a, b, c) {
  *      console.log(this, a, b, c); // ↦ "a", 2, true 
@@ -65,7 +56,7 @@ import {UniqueQueue} from './uniquequeue.js';
  * @copyright schukai GmbH
  * @memberOf Monster.Types
  */
-class Observer extends Base {
+export class Observer extends Base {
 
     /**
      *
@@ -168,9 +159,3 @@ class Observer extends Base {
     };
 
 }
-
-assignToNamespace('Monster.Types', Observer);
-export {Monster, Observer}
-
-
-
diff --git a/application/source/types/observerlist.js b/application/source/types/observerlist.js
index 8b667bda2..79cc16602 100644
--- a/application/source/types/observerlist.js
+++ b/application/source/types/observerlist.js
@@ -4,7 +4,7 @@
  * @author schukai GmbH
  */
 
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {Base} from './base.js';
 import {Observer} from "./observer.js";
 import {validateInstance} from "./validate.js";
@@ -12,21 +12,9 @@ import {validateInstance} from "./validate.js";
 /**
  * With the help of the ObserverList class, observer can be managed.
  *
- * You can call the method via the monster namespace `new Monster.Types.ObserverList()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(new Monster.Types.ObserverList())
- * console.log(new Monster.Types.ObserverList())
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {ObserverList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/observerlist.js';
+ * import {ObserverList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/observerlist.js';
  * console.log(ObserverList())
  * console.log(ObserverList())
  * </script>
@@ -36,7 +24,7 @@ import {validateInstance} from "./validate.js";
  * @copyright schukai GmbH
  * @memberOf Monster.Types
  */
-class ObserverList extends Base {
+export class ObserverList extends Base {
 
     /**
      *
@@ -113,6 +101,3 @@ class ObserverList extends Base {
     };
 
 }
-
-assignToNamespace('Monster.Types', ObserverList);
-export {Monster, ObserverList}
diff --git a/application/source/types/package.d.ts b/application/source/types/package.d.ts
deleted file mode 100644
index 2202f1775..000000000
--- a/application/source/types/package.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export declare let Monster: Object;
\ No newline at end of file
diff --git a/application/source/types/proxyobserver.js b/application/source/types/proxyobserver.js
index d2d388bca..a2fe765dc 100644
--- a/application/source/types/proxyobserver.js
+++ b/application/source/types/proxyobserver.js
@@ -3,7 +3,7 @@
 /**
  * @author schukai GmbH
  */
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {Base} from './base.js';
 import {isArray, isObject, isPrimitive} from "./is.js";
 import {Observer} from "./observer.js";
@@ -14,33 +14,22 @@ import {extend} from "../data/extend.js";
 /**
  * An observer manages a callback function
  *
- * You can call create the class via the monster namespace `new Monster.Types.ProxyObserver()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.Types.ProxyObserver()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this class individually.
- *
- * ```
- * <script type="module">
- * import {ProxyObserver} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/proxyobserver.js';
+ * import {ProxyObserver} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/proxyobserver.js';
  * new ProxyObserver()
  * </script>
  * ```
  *
- * with the ProxyObserver you can attach observer for observation. with each change at the object to be observed an update takes place.
+ * With the ProxyObserver you can attach observer for observation. with each change at the object to be observed an update takes place.
  *
  * this also applies to nested objects.
  *
  * @example
  *
- * import {ProxyObserver} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/proxyobserver.js';
- * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/observer.js';
- * import {isObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/is.js';
+ * import {ProxyObserver} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/proxyobserver.js';
+ * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/observer.js';
+ * import {isObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/is.js';
  *
  * const o = new Observer(function () { 
  *   if (isObject(this) && this instanceof ProxyObserver) {
@@ -68,7 +57,7 @@ import {extend} from "../data/extend.js";
  * @copyright schukai GmbH
  * @memberOf Monster.Types
  */
-class ProxyObserver extends Base {
+export class ProxyObserver extends Base {
 
     /**
      *
@@ -167,9 +156,6 @@ class ProxyObserver extends Base {
 
 }
 
-assignToNamespace('Monster.Types', ProxyObserver);
-export {Monster, ProxyObserver}
-
 /**
  *
  * @returns {{defineProperty: (function(*=, *=, *=): *), setPrototypeOf: (function(*, *=): boolean), set: (function(*, *, *, *): boolean), get: ((function(*=, *=, *=): (undefined))|*), deleteProperty: ((function(*, *): (boolean))|*)}}
diff --git a/application/source/types/queue.js b/application/source/types/queue.js
index 898304a91..f6505c3fd 100644
--- a/application/source/types/queue.js
+++ b/application/source/types/queue.js
@@ -3,31 +3,22 @@
 /**
  * @author schukai GmbH
  */
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {Base} from './base.js';
 
 /**
  * You can create the instance via the monster namespace `new Monster.Types.Queue()`.
- *
+ * 
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.Types.Queue()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {Queue} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/queue.js';
+ * import {Queue} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/queue.js';
  * new Queue()
  * </script>
  * ```
  *
  * @example
  *
- * import {Queue} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/queue.js';
+ * import {Queue} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/queue.js';
  *
  * const queue = new Queue;
  *
@@ -53,7 +44,7 @@ import {Base} from './base.js';
  * @memberOf Monster.Types
  * @summary A Queue (Fifo)
  */
-class Queue extends Base {
+export class Queue extends Base {
 
     /**
      *
@@ -120,6 +111,3 @@ class Queue extends Base {
 
 
 }
-
-assignToNamespace('Monster.Types', Queue);
-export {Monster, Queue}
diff --git a/application/source/types/randomid.js b/application/source/types/randomid.js
index f7333f882..c592e5d14 100644
--- a/application/source/types/randomid.js
+++ b/application/source/types/randomid.js
@@ -4,7 +4,7 @@ import {random} from "../math/random.js";
 /**
  * @author schukai GmbH
  */
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {getGlobal} from "./global.js";
 import {ID} from "./id.js";
 
@@ -15,20 +15,11 @@ import {ID} from "./id.js";
 let internalCounter = 0;
 
 /**
- * You can call the method via the monster namespace `new Monster.Types.RandomID()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(new Monster.Types.RandomID())
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
+ * The `RandomID` class provides a unique ID for an item.
  *
  * ```
  * <script type="module">
- * import {RandomID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/randomid.js';
+ * import {RandomID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/randomid.js';
  * console.log(new RandomID())
  * </script>
  * ```
@@ -38,7 +29,7 @@ let internalCounter = 0;
  * @memberOf Monster.Types
  * @summary class to generate random numbers
  */
-class RandomID extends ID {
+export class RandomID extends ID {
 
     /**
      * create new object
@@ -55,6 +46,3 @@ class RandomID extends ID {
     }
 
 }
-
-assignToNamespace('Monster.Types', RandomID);
-export {Monster, RandomID}
diff --git a/application/source/types/regex.js b/application/source/types/regex.js
index 14aefb327..b9cd22042 100644
--- a/application/source/types/regex.js
+++ b/application/source/types/regex.js
@@ -11,20 +11,9 @@ import {validateString} from "./validate.js";
 /**
  * This function prefixes all special characters that may appear in a regex with a slash.
  * 
- * You can call the method via the monster namespace `Monster.Types.escapeString()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.Types.escapeString()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {escapeString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/validate.js';
+ * import {escapeString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/validate.js';
  * escapeString()
  * </script>
  * ```
@@ -36,14 +25,8 @@ import {validateString} from "./validate.js";
  * @memberOf Monster.Types
  * @throws {TypeError} value is not a string
  */
-function escapeString(value) {
+export function escapeString(value) {
     return validateString(value)
         .replace(/[|\\{}()[\]^$+*?.]/g, '\\$&')
         .replace(/-/g, '\\x2d');
 }
-
-assignToNamespace('Monster.Types', escapeString);
-export {
-    Monster,
-    escapeString
-}
diff --git a/application/source/types/stack.js b/application/source/types/stack.js
index 73807939c..983196c7b 100644
--- a/application/source/types/stack.js
+++ b/application/source/types/stack.js
@@ -4,24 +4,15 @@
  * @author schukai GmbH
  */
 
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {Base} from './base.js';
 
 /**
  * You can call the method via the monster namespace `new Monster.Types.Queue()`.
- *
+ * 
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(new Monster.Types.Stack())
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/stack.js';
+ * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/stack.js';
  * console.log(new Stack())
  * </script>
  * ```
@@ -30,7 +21,7 @@ import {Base} from './base.js';
  * @copyright schukai GmbH
  * @memberOf Monster.Types
  */
-class Stack extends Base {
+export class Stack extends Base {
 
     /**
      *
@@ -98,6 +89,3 @@ class Stack extends Base {
 
 
 }
-
-assignToNamespace('Monster.Types', Stack);
-export {Monster, Stack}
diff --git a/application/source/types/tokenlist.js b/application/source/types/tokenlist.js
index d82f92b33..b94567ea6 100644
--- a/application/source/types/tokenlist.js
+++ b/application/source/types/tokenlist.js
@@ -4,7 +4,7 @@
  * @author schukai GmbH
  */
 
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {isIterable, isString} from '../types/is.js';
 import {validateFunction, validateString} from '../types/validate.js';
 import {Base} from './base.js';
@@ -14,20 +14,9 @@ import {Base} from './base.js';
  *
  * The tokenlist offers various functions to manipulate values. For example, you can add, remove or replace a class in a CSS list.
  *
- * You can call the method via the monster namespace `new Monster.Types.TokenList()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.Types.TokenList("myclass row")
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {TokenList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/tokenlist.js';
+ * import {TokenList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/tokenlist.js';
  * new TokenList("myclass row")
  * </script>
  * ```
@@ -43,7 +32,7 @@ import {Base} from './base.js';
  * @copyright schukai GmbH
  * @memberOf Monster.Types
  */
-class TokenList extends Base {
+export class TokenList extends Base {
 
     /**
      *
@@ -309,6 +298,3 @@ function toggleValue(token) {
     this.add(token);
     return this;
 }
-
-assignToNamespace('Monster.Types', TokenList);
-export {Monster, TokenList}
diff --git a/application/source/types/typeof.js b/application/source/types/typeof.js
index f3d8fda32..c1eb8b3a2 100644
--- a/application/source/types/typeof.js
+++ b/application/source/types/typeof.js
@@ -5,32 +5,21 @@
  */
 
 
-import {assignToNamespace, Monster} from '../namespace.js';
+
 
 /**
  * The built-in typeof method is known to have some historical weaknesses. This function tries to provide a better and more accurate result.
  *
- * You can call the method via the monster namespace `Monster.Types.typeOf()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(Monster.Types.typeOf())
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {typeOf} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/typeof.js';
+ * import {typeOf} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/typeof.js';
  * console.log(typeOf())
  * </script>
  * ```
  *
  * @example
  *
- * import {typeOf} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/typeof.js';
+ * import {typeOf} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/typeof.js';
  *
  * console.log(typeOf(undefined)); // ↦ undefined
  * console.log(typeOf("")); // ↦ string
@@ -56,8 +45,3 @@ function typeOf(value) {
     return type.toLowerCase();
 }
 
-assignToNamespace('Monster.Types', typeOf);
-export {
-    Monster,
-    typeOf
-}
diff --git a/application/source/types/uniquequeue.js b/application/source/types/uniquequeue.js
index 6dbfd1d93..a61b4c83a 100644
--- a/application/source/types/uniquequeue.js
+++ b/application/source/types/uniquequeue.js
@@ -4,25 +4,16 @@
  * @author schukai GmbH
  */
 
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {Queue} from "./queue.js";
 import {validateObject} from "./validate.js";
 
 /**
- * You can call the method via the monster namespace `new Monster.Types.Queue()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.Types.UniqueQueue()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
+ * A UniqueQueue is a queue that contains items only once.
  *
  * ```
  * <script type="module">
- * import {UniqueQueue} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/uniquequeue.js';
+ * import {UniqueQueue} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/uniquequeue.js';
  * new UniqueQueue()
  * </script>
  * ```
@@ -32,7 +23,7 @@ import {validateObject} from "./validate.js";
  * @memberOf Monster.Types
  * @summary A queue for unique values
  */
-class UniqueQueue extends Queue {
+export class UniqueQueue extends Queue {
 
     /**
      *
@@ -90,6 +81,3 @@ class UniqueQueue extends Queue {
 
 
 }
-
-assignToNamespace('Monster.Types', UniqueQueue);
-export {Monster, UniqueQueue}
diff --git a/application/source/types/uuid.js b/application/source/types/uuid.js
index e11b07f3a..f709b5e73 100644
--- a/application/source/types/uuid.js
+++ b/application/source/types/uuid.js
@@ -12,22 +12,11 @@ import {Base} from "./base.js";
 import {getGlobalObject} from "./global.js";
 
 /**
- * This is the base class from which all monster classes are derived.
- *
- * You can create an object using the namespace:
- *
+ * The UUID class makes it possible to get a unique UUID for an object.
+ * 
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.Types.UUID()
- * </script>
- * ```
- *
- * Or directly via the class:
- *
- * ```
- * <script type="module">
- * import {Base} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/uuid.js';
+ * import {Base} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/uuid.js';
  * new UUID()
  * </script>
  * ```
@@ -37,7 +26,7 @@ import {getGlobalObject} from "./global.js";
  * @memberOf Monster.Types
  * @throws {Error} unsupported
  */
-class UUID extends Base {
+export class UUID extends Base {
 
     /**
      *
@@ -97,6 +86,3 @@ function createWithCrypto() {
     return crypt.randomUUID();
 }
 
-
-assignToNamespace('Monster.Types', UUID);
-export {Monster, UUID}
diff --git a/application/source/types/validate.js b/application/source/types/validate.js
index fecd561d4..1bc7e6259 100644
--- a/application/source/types/validate.js
+++ b/application/source/types/validate.js
@@ -4,7 +4,7 @@
  * @author schukai GmbH
  */
 
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {
     isArray,
     isBoolean,
@@ -21,21 +21,9 @@ import {
 /**
  * This method checks if the type matches the primitive type. this function is identical to isPrimitive() except that a TypeError is thrown.
  *
- * You can call the method via the monster namespace `Monster.Types.validatePrimitive()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(Monster.Types.validateIterable('2')) // ↦ TypeError
- * console.log(Monster.Types.validateIterable([])) // ↦ value
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
  * ```
  * <script type="module">
- * import {validateIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/validate.js';
+ * import {validateIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/validate.js';
  * console.log(validateIterable('2'))  // ↦ TypeError
  * console.log(validateIterable([]))  // ↦ value
  * </script>
@@ -51,7 +39,7 @@ import {
  * @see {@link Monster.Types.isPrimitive}
  * @see {@link Monster.Types#isPrimitive}
  */
-function validateIterable(value) {
+export function validateIterable(value) {
     if (!isIterable(value)) {
         throw new TypeError('value is not iterable')
     }
@@ -61,21 +49,9 @@ function validateIterable(value) {
 /**
  * This method checks if the type matches the primitive type. this function is identical to isPrimitive() except that a TypeError is thrown.
  *
- * You can call the method via the monster namespace `Monster.Types.validatePrimitive()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(Monster.Types.validatePrimitive('2')) // ↦ value
- * console.log(Monster.Types.validatePrimitive([])) // ↦ TypeError
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {validatePrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/validate.js';
+ * import {validatePrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/validate.js';
  * console.log(validatePrimitive('2'))  // ↦ value
  * console.log(validatePrimitive([]))  // ↦ TypeError
  * </script>
@@ -91,7 +67,7 @@ function validateIterable(value) {
  * @see {@link Monster.Types.isPrimitive}
  * @see {@link Monster.Types#isPrimitive}
  */
-function validatePrimitive(value) {
+export function validatePrimitive(value) {
     if (!isPrimitive(value)) {
         throw new TypeError('value is not a primitive')
     }
@@ -101,22 +77,9 @@ function validatePrimitive(value) {
 /**
  * This method checks if the type matches the boolean type. this function is identical to isBoolean() except that a TypeError is thrown.
  *
- * You can call the method via the monster namespace `Monster.Types.validateBoolean()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(Monster.Types.validateBoolean(true)) // ↦ value
- * console.log(Monster.Types.validateBoolean('2')) // ↦ TypeError
- * console.log(Monster.Types.validateBoolean([])) // ↦ TypeError
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {validateBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/validate.js';
+ * import {validateBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/validate.js';
  * console.log(validateBoolean(false))  // ↦ value
  * console.log(validateBoolean('2'))  // ↦ TypeError
  * console.log(validateBoolean([]))  // ↦ TypeError
@@ -131,7 +94,7 @@ function validatePrimitive(value) {
 
  * @throws {TypeError}  value is not primitive
  */
-function validateBoolean(value) {
+export function validateBoolean(value) {
     if (!isBoolean(value)) {
         throw new TypeError('value is not a boolean')
     }
@@ -141,21 +104,9 @@ function validateBoolean(value) {
 /**
  * This method checks if the type matches the string type. this function is identical to isString() except that a TypeError is thrown.
  *
- * You can call the method via the monster namespace `Monster.Types.validateString()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(Monster.Types.validateString('2')) // ↦ value
- * console.log(Monster.Types.validateString([])) // ↦ TypeError
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
  * ```
  * <script type="module">
- * import {validateString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/validate.js';
+ * import {validateString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/validate.js';
  * console.log(validateString('2'))  // ↦ value
  * console.log(validateString([]))  // ↦ TypeError
  * </script>
@@ -168,7 +119,7 @@ function validateBoolean(value) {
  * @memberOf Monster.Types
  * @throws {TypeError} value is not a string
  */
-function validateString(value) {
+export function validateString(value) {
     if (!isString(value)) {
         throw new TypeError('value is not a string')
     }
@@ -179,22 +130,9 @@ function validateString(value) {
 /**
  * This method checks if the type matches the object type. this function is identical to isObject() except that a TypeError is thrown.
  *
- * You can call the method via the monster namespace `Monster.Types.validateObject()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(Monster.Types.validateObject({})) // ↦ value
- * console.log(Monster.Types.validateObject('2')) // ↦ TypeError
- * console.log(Monster.Types.validateObject([])) // ↦ TypeError
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {validateObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/validate.js';
+ * import {validateObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/validate.js';
  * console.log(validateObject({}))  // ↦ value
  * console.log(validateObject('2'))  // ↦ TypeError
  * console.log(validateObject([]))  // ↦ TypeError
@@ -208,7 +146,7 @@ function validateString(value) {
  * @memberOf Monster.Types
  * @throws {TypeError} value is not a object
  */
-function validateObject(value) {
+export function validateObject(value) {
     if (!isObject(value)) {
         throw new TypeError('value is not a object')
     }
@@ -218,22 +156,9 @@ function validateObject(value) {
 /**
  * This method checks if the type matches the object instance.
  *
- * You can call the method via the monster namespace `Monster.Types.validateInstance()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(Monster.Types.validateInstance({}, Object)) // ↦ value
- * console.log(Monster.Types.validateInstance('2', Object)) // ↦ TypeError
- * console.log(Monster.Types.validateInstance([], Object)) // ↦ TypeError
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {validateInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/validate.js';
+ * import {validateInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/validate.js';
  * console.log(validateInstance({}, Object)) // ↦ value
  * console.log(validateInstance('2', Object)) // ↦ TypeError
  * console.log(validateInstance([], Object)) // ↦ TypeError
@@ -247,7 +172,7 @@ function validateObject(value) {
  * @memberOf Monster.Types
  * @throws {TypeError} value is not an instance of
  */
-function validateInstance(value, instance) {
+export function validateInstance(value, instance) {
     if (!isInstance(value, instance)) {
         let n = "";
         if (isObject(instance) || isFunction(instance)) {
@@ -266,21 +191,9 @@ function validateInstance(value, instance) {
 /**
  * This method checks if the type matches the array type. this function is identical to isArray() except that a TypeError is thrown.
  *
- * You can call the method via the monster namespace `Monster.Types.validateArray()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(Monster.Types.validateArray('2')) // ↦ TypeError
- * console.log(Monster.Types.validateArray([])) // ↦ value
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
  * ```
  * <script type="module">
- * import {validateArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/validate.js';
+ * import {validateArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/validate.js';
  * console.log(validateArray('2'))  // ↦ TypeError
  * console.log(validateArray([]))  // ↦ value
  * </script>
@@ -293,7 +206,7 @@ function validateInstance(value, instance) {
  * @memberOf Monster.Types
  * @throws {TypeError} value is not an array
  */
-function validateArray(value) {
+export function validateArray(value) {
     if (!isArray(value)) {
         throw new TypeError('value is not an array')
     }
@@ -303,21 +216,9 @@ function validateArray(value) {
 /**
  * This method checks if the type matches the symbol type. this function is identical to isSymbol() except that a TypeError is thrown.
  *
- * You can call the method via the monster namespace `Monster.Types.validateSymbol()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(Monster.Types.validateSymbol('2')) // ↦ TypeError
- * console.log(Monster.Types.validateSymbol([])) // ↦ value
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
  * ```
  * <script type="module">
- * import {validateSymbol} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/validate.js';
+ * import {validateSymbol} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/validate.js';
  * console.log(validateSymbol('2'))  // ↦ TypeError
  * console.log(validateSymbol())  // ↦ value
  * </script>
@@ -330,7 +231,7 @@ function validateArray(value) {
  * @memberOf Monster.Types
  * @throws {TypeError} value is not an symbol
  */
-function validateSymbol(value) {
+export function validateSymbol(value) {
     if (!isSymbol(value)) {
         throw new TypeError('value is not an symbol')
     }
@@ -340,22 +241,9 @@ function validateSymbol(value) {
 /**
  * This method checks if the type matches the function type. this function is identical to isFunction() except that a TypeError is thrown.
  *
- * You can call the method via the monster namespace `Monster.Types.validateFunction()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(Monster.Types.validateFunction(()=>{})) // ↦ value
- * console.log(Monster.Types.validateFunction('2')) // ↦ TypeError
- * console.log(Monster.Types.validateFunction([])) // ↦ TypeError
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
  * ```
  * <script type="module">
- * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/validate.js';
+ * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/validate.js';
  * console.log(validateFunction(()=>{})) // ↦ value
  * console.log(validateFunction('2'))  // ↦ TypeError
  * console.log(validateFunction([]))  // ↦ TypeError
@@ -369,7 +257,7 @@ function validateSymbol(value) {
  * @memberOf Monster.Types
  * @throws {TypeError} value is not a function
  */
-function validateFunction(value) {
+export function validateFunction(value) {
     if (!isFunction(value)) {
         throw new TypeError('value is not a function')
     }
@@ -379,22 +267,9 @@ function validateFunction(value) {
 /**
  * This method checks if the type is an integer. this function is identical to isInteger() except that a TypeError is thrown.
  *
- * You can call the method via the monster namespace `Monster.Types.validateInteger()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(Monster.Types.validateInteger(true)) // ↦ TypeError
- * console.log(Monster.Types.validateInteger('2')) // ↦ TypeError
- * console.log(Monster.Types.validateInteger(2)) // ↦ value
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/validate.js';
+ * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/validate.js';
  * console.log(validateInteger(true)) // ↦ TypeError
  * console.log(validateInteger('2'))  // ↦ TypeError
  * console.log(validateInteger(2))  // ↦ value
@@ -408,24 +283,9 @@ function validateFunction(value) {
  * @memberOf Monster.Types
  * @throws {TypeError} value is not an integer
  */
-function validateInteger(value) {
+export function validateInteger(value) {
     if (!isInteger(value)) {
         throw new TypeError('value is not an integer')
     }
     return value
 }
-
-assignToNamespace('Monster.Types', validatePrimitive, validateBoolean, validateString, validateObject, validateArray, validateFunction, validateIterable, validateInteger);
-export {
-    Monster,
-    validatePrimitive,
-    validateBoolean,
-    validateString,
-    validateObject,
-    validateInstance,
-    validateArray,
-    validateFunction,
-    validateIterable,
-    validateInteger,
-    validateSymbol
-}
diff --git a/application/source/types/version.js b/application/source/types/version.js
index db52ec506..5c635227b 100644
--- a/application/source/types/version.js
+++ b/application/source/types/version.js
@@ -1,26 +1,14 @@
 'use strict';
 
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {Base} from './base.js';
 
 /**
  * The version object contains a sematic version number
  *
- * You can create the object via the monster namespace `new Monster.Types.Version()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * console.log(new Monster.Types.Version('1.2.3')) // ↦ 1.2.3
- * console.log(new Monster.Types.Version('1')) // ↦ 1.0.0
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this class individually.
- *
  * ```
  * <script type="module">
- * import {Version} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/version.js';
+ * import {Version} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/version.js';
  * console.log(new Version('1.2.3')) // ↦ 1.2.3
  * console.log(new Version('1')) // ↦ 1.0.0
  * </script>
@@ -28,7 +16,7 @@ import {Base} from './base.js';
  *
  * @example
  *
- * import {Version} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/version.js';
+ * import {Version} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/version.js';
  *
  * new Version('1.0.0') // ↦ 1.0.0
  * new Version(1)  // ↦ 1.0.0
@@ -41,7 +29,7 @@ import {Base} from './base.js';
  * @memberOf Monster.Types
  * @summary The version object contains a sematic version number
  */
-class Version extends Base {
+export class Version extends Base {
 
     /**
      *
@@ -139,9 +127,6 @@ class Version extends Base {
 
 }
 
-assignToNamespace('Monster.Types', Version);
-
-
 let monsterVersion;
 
 /**
@@ -160,8 +145,8 @@ let monsterVersion;
  *
  * ```
  * <script type="module">
- * import {getVersion} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/types/version.js';
- * console.log(getVersion())
+ * import {getMonsterVersion} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/types/version.js';
+ * console.log(getMonsterVersion())
  * </script>
  * ```
  *
@@ -171,7 +156,7 @@ let monsterVersion;
  * @author schukai GmbH
  * @memberOf Monster
  */
-function getVersion() {
+export function getMonsterVersion() {
     if (monsterVersion instanceof Version) {
         return monsterVersion;
     }
@@ -182,6 +167,3 @@ function getVersion() {
     return monsterVersion;
 
 }
-
-assignToNamespace('Monster', getVersion);
-export {Monster, Version, getVersion}
diff --git a/application/source/util/clone.js b/application/source/util/clone.js
index d8b1a769f..a48f2d578 100644
--- a/application/source/util/clone.js
+++ b/application/source/util/clone.js
@@ -4,7 +4,7 @@
  * @author schukai GmbH
  */
 
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {getGlobal} from '../types/global.js';
 import {isArray, isFunction, isObject, isPrimitive} from '../types/is.js';
 import {typeOf} from "../types/typeof.js";
@@ -20,20 +20,9 @@ import {validateObject} from "../types/validate.js";
  *
  * If an object has a method `getClone()`, this method is used to create the clone.
  *
- * You can call the method via the monster namespace `Monster.Util.clone()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.Util.clone({})
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {clone} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/util/clone.js';
+ * import {clone} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/util/clone.js';
  * clone({})
  * </script>
  * ```
@@ -45,7 +34,7 @@ import {validateObject} from "../types/validate.js";
  * @copyright schukai GmbH
  * @throws {Error} unable to clone obj! its type isn't supported.
  */
-function clone(obj) {
+export function clone(obj) {
 
     // typeof null results in 'object'.  https://2ality.com/2013/10/typeof-null.html
     if (null === obj) {
@@ -155,6 +144,3 @@ function cloneObject(obj) {
 
     return copy;
 }
-
-assignToNamespace('Monster.Util', clone);
-export {Monster, clone}
diff --git a/application/source/util/comparator.js b/application/source/util/comparator.js
index 81606729a..1939bdf65 100644
--- a/application/source/util/comparator.js
+++ b/application/source/util/comparator.js
@@ -3,25 +3,16 @@
 /**
  * @author schukai GmbH
  */
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {Base} from '../types/base.js';
 import {isFunction} from '../types/is.js';
 
 /**
  * The comparator allows a comparison function to be abstracted.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.Util.Comparator()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
+ * 
  * ```
  * <script type="module">
- * import {Comparator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/util/comparator.js';
+ * import {Comparator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/util/comparator.js';
  * console.log(new Comparator())
  * </script>
  * ```
@@ -46,7 +37,7 @@ import {isFunction} from '../types/is.js';
  *
  * @example
  *
- * import {Comparator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/util/comparator.js';
+ * import {Comparator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/util/comparator.js';
  *
  * console.log(new Comparator().lessThanOrEqual(2, 5))
  * // ↦ true
@@ -60,7 +51,7 @@ import {isFunction} from '../types/is.js';
  * @since 1.3.0
  * @memberOf Monster.Util
  */
-class Comparator extends Base {
+export class Comparator extends Base {
 
     /**
      * create new comparator
@@ -194,9 +185,3 @@ class Comparator extends Base {
  * @see Monster.Util.Comparator
  */
 
-
-/**
- *
- */
-assignToNamespace('Monster.Util', Comparator);
-export {Monster, Comparator}
diff --git a/application/source/util/deadmansswitch.js b/application/source/util/deadmansswitch.js
index 63dbfb0e1..b6bb6d8a3 100644
--- a/application/source/util/deadmansswitch.js
+++ b/application/source/util/deadmansswitch.js
@@ -6,7 +6,7 @@
 
 
 import {internalSymbol} from "../constants.js";
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {Base} from "../types/base.js";
 import {isInteger} from "../types/is.js";
 import {validateFunction, validateInteger} from "../types/validate.js";
@@ -14,26 +14,15 @@ import {validateFunction, validateInteger} from "../types/validate.js";
 /**
  * The dead man's switch allows to set a timer which can be reset again and again within a defined period of time.
  *
- * You can create an instance via the monster namespace `Monster.Util.DeadMansSwitch()`.
- *
- * ```
- * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.Util.DeadMansSwitch()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this class individually.
- *
  * ```
  * <script type="module">
- * import {DeadMansSwitch} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/util/deadmansswitch.js';
+ * import {DeadMansSwitch} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/util/deadmansswitch.js';
  * new DeadMansSwitch();
  * </script>
  * ```
  *
  * @example
- * import {DeadMansSwitch} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/util/deadmansswitch.js';
+ * import {DeadMansSwitch} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/util/deadmansswitch.js';
  *
  * const deadmansswitch = new DeadMansSwitch(100, ()=>{
  *   console.log('yeah!')
@@ -48,7 +37,7 @@ import {validateFunction, validateInteger} from "../types/validate.js";
  * @memberOf Monster.Util
  * @summary Class to be able to execute function chains
  */
-class DeadMansSwitch extends Base {
+export class DeadMansSwitch extends Base {
 
     /**
      * Create new dead man's switch
@@ -120,5 +109,5 @@ function init(delay, callback) {
 
 }
 
-assignToNamespace('Monster.Util', DeadMansSwitch);
-export {Monster, DeadMansSwitch}
+
+
diff --git a/application/source/util/freeze.js b/application/source/util/freeze.js
index daa49a34e..a0c0619ce 100644
--- a/application/source/util/freeze.js
+++ b/application/source/util/freeze.js
@@ -4,26 +4,15 @@
  * @author schukai GmbH
  */
 
-import {assignToNamespace, Monster} from '../namespace.js';
+
 import {validateObject} from '../types/validate.js';
 
 /**
  * Deep freeze a object
  *
- * You can call the method via the monster namespace `Monster.Util.deepFreeze()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * Monster.Util.deepFreeze({})
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this function individually.
- *
- * ```
- * <script type="module">
- * import {deepFreeze} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/util/freeze.js';
+ * import {deepFreeze} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/util/freeze.js';
  * deepFreeze({})
  * </script>
  * ```
@@ -35,7 +24,7 @@ import {validateObject} from '../types/validate.js';
  * @copyright schukai GmbH
  * @throws {TypeError} value is not a object
  */
-function deepFreeze(object) {
+export function deepFreeze(object) {
 
     validateObject(object)
 
@@ -52,6 +41,3 @@ function deepFreeze(object) {
 
     return Object.freeze(object);
 }
-
-assignToNamespace('Monster.Util', deepFreeze);
-export {Monster, deepFreeze}
diff --git a/application/source/util/namespace.js b/application/source/util/namespace.js
deleted file mode 100644
index f304ecc7d..000000000
--- a/application/source/util/namespace.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-
-/**
- * Namespace for utilities.
- *
- * @namespace Monster.Util
- * @memberOf Monster
- * @author schukai GmbH
- */
-
-
-/**
- * @private
- * @type {string}
- */
-export const namespace = "Monster.Util";
\ No newline at end of file
diff --git a/application/source/util/processing.js b/application/source/util/processing.js
index 9e8d77b5d..5019656ba 100644
--- a/application/source/util/processing.js
+++ b/application/source/util/processing.js
@@ -6,14 +6,12 @@
 
 
 import {internalSymbol} from "../constants.js";
-import {assignToNamespace, Monster} from '../namespace.js';
 import {Base} from "../types/base.js";
 import {getGlobalFunction} from "../types/global.js";
 import {isFunction, isInteger} from "../types/is.js";
 import {Queue} from "../types/queue.js";
 import {validateFunction, validateInteger} from "../types/validate.js";
 
-
 /**
  * @private
  */
@@ -73,26 +71,15 @@ class Callback {
  *
  * The result of `run()` is a promise.
  *
- * You can create an instance via the monster namespace `Monster.Util.Processing()`.
- *
  * ```
  * <script type="module">
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
- * new Monster.Util.Processing()
- * </script>
- * ```
- *
- * Alternatively, you can also integrate this class individually.
- *
- * ```
- * <script type="module">
- * import {Processing} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/util/processing.js';
+ * import {Processing} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/util/processing.js';
  * new Processing();
  * </script>
  * ```
  *
  * @example
- * import {Processing} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/util/processing.js';
+ * import {Processing} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/util/processing.js';
  *
  * let startTime = +new Date();
  *
@@ -115,7 +102,7 @@ class Callback {
  * @memberOf Monster.Util
  * @summary Class to be able to execute function chains
  */
-class Processing extends Base {
+export class Processing extends Base {
 
     /**
      * Create new Processing
@@ -189,6 +176,3 @@ class Processing extends Base {
     }
 
 }
-
-assignToNamespace('Monster.Util', Processing);
-export {Monster, Processing}
diff --git a/application/source/util/trimspaces.js b/application/source/util/trimspaces.js
index 7ae3771c1..6a4ef3d3d 100644
--- a/application/source/util/trimspaces.js
+++ b/application/source/util/trimspaces.js
@@ -32,7 +32,7 @@ import {validateString} from "../types/validate.js";
  * @return {string}
  * @throws {TypeError} value is not a string
  */
-function trimSpaces(value) {
+export function trimSpaces(value) {
 
     validateString(value);
 
-- 
GitLab