diff --git a/.gitignore b/.gitignore
index 6e1b1d68..7f0088a2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -130,5 +130,3 @@ dmypy.json
 
 # IDE
 .vscode/
-
-/src_old/
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index e53893e0..b48a5e45 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -22,211 +22,9 @@
     
   
   
-    
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
+    
       
-      
       
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
     
@@ -664,13 +462,6 @@
       
       1605881914521
     
-    
-      1607620265254
-      
-      
-      
-      1607620265254
-    
     
       1607712129507
       
@@ -1007,7 +798,14 @@
       
       1614372713621
     
-    
+    
+      1614764872108
+      
+      
+      
+      1614764872108
+    
+
@@ -1023,7 +821,6 @@
     
   
   
-    
     
     
     
@@ -1048,7 +845,8 @@
     
     
     
-    
+    
+    
   
   
     
diff --git a/src_old/MANIFEST.in b/src_old/MANIFEST.in
deleted file mode 100644
index cb32f474..00000000
--- a/src_old/MANIFEST.in
+++ /dev/null
@@ -1,2 +0,0 @@
-include ../ README
-recursive-include sh_edraft *.txt
\ No newline at end of file
diff --git a/src_old/setup.py b/src_old/setup.py
deleted file mode 100644
index a2e40b12..00000000
--- a/src_old/setup.py
+++ /dev/null
@@ -1,29 +0,0 @@
-import setuptools
-
-setuptools.setup(
-    name='sh_edraft',
-    version='2020.0.1',
-    packages=setuptools.find_packages(exclude=["tests*"]),
-    url='https://www.sh-edraft.de',
-    license='MIT',
-    author='Sven Heidemann',
-    author_email='edraft.sh@gmail.com',
-    include_package_data=True,
-    description='sh-edraft python common lib',
-    python_requires='>=3.8',
-    install_requires=[
-        'discord.py',
-        'flask',
-        'mysql-connector',
-        'SQLAlchemy',
-        'termcolor',
-        'pyfiglet',
-        'tabulate',
-        'smtplib'
-    ],
-    entry_points={
-        'console_scripts': [
-            'cpl = sh_edraft.cli.cpl_cli.cli:main'
-        ]
-    }
-)
diff --git a/src_old/sh_edraft/__init__.py b/src_old/sh_edraft/__init__.py
deleted file mode 100644
index a74b7597..00000000
--- a/src_old/sh_edraft/__init__.py
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft common python library
-~~~~~~~~~~~~~~~~~~~
-
-Library to share common classes and models used at sh-edraft.de
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/coding/__init__.py b/src_old/sh_edraft/coding/__init__.py
deleted file mode 100644
index 74fd8f6b..00000000
--- a/src_old/sh_edraft/coding/__init__.py
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.coding 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.coding'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/coding/model/__init__.py b/src_old/sh_edraft/coding/model/__init__.py
deleted file mode 100644
index ccdd0f5a..00000000
--- a/src_old/sh_edraft/coding/model/__init__.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.coding.model 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.coding.model'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-from .version import Version
-from .version_enum import VersionEnum
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/coding/model/version.py b/src_old/sh_edraft/coding/model/version.py
deleted file mode 100644
index be2d5a3d..00000000
--- a/src_old/sh_edraft/coding/model/version.py
+++ /dev/null
@@ -1,46 +0,0 @@
-from typing import Optional
-
-from sh_edraft.coding.model.version_enum import VersionEnum
-from sh_edraft.configuration.base.configuration_model_base import ConfigurationModelBase
-
-
-class Version(ConfigurationModelBase):
-
-    def __init__(
-            self,
-            major: int = None,
-            minor: int = None,
-            micro: float = None
-    ):
-        ConfigurationModelBase.__init__(self)
-
-        self._major: Optional[int] = major
-        self._minor: Optional[int] = minor
-        self._micro: Optional[int] = micro
-
-    @property
-    def major(self) -> int:
-        return self._major
-
-    @property
-    def minor(self) -> int:
-        return self._minor
-
-    @property
-    def micro(self) -> float:
-        return self._micro
-
-    def to_str(self) -> str:
-        return f'{self._major}.{self._minor}.{self._micro}'
-
-    def from_dict(self, settings: dict):
-        self._major = int(settings[VersionEnum.Major.value])
-        self._minor = int(settings[VersionEnum.Minor.value])
-        self._micro = int(settings[VersionEnum.Micro.value])
-
-    def to_dict(self) -> dict:
-        return {
-            VersionEnum.Major.value: self._major,
-            VersionEnum.Minor.value: self._minor,
-            VersionEnum.Micro.value: self._micro
-        }
diff --git a/src_old/sh_edraft/coding/model/version_enum.py b/src_old/sh_edraft/coding/model/version_enum.py
deleted file mode 100644
index 8c294c1e..00000000
--- a/src_old/sh_edraft/coding/model/version_enum.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from enum import Enum
-
-
-class VersionEnum(Enum):
-
-    Major = 'Major'
-    Minor = 'Minor'
-    Micro = 'Micro'
diff --git a/src_old/sh_edraft/configuration/__init__.py b/src_old/sh_edraft/configuration/__init__.py
deleted file mode 100644
index 21979d7f..00000000
--- a/src_old/sh_edraft/configuration/__init__.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.configuration 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.configuration'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-from .configuration import Configuration
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/configuration/base/__init__.py b/src_old/sh_edraft/configuration/base/__init__.py
deleted file mode 100644
index 28444895..00000000
--- a/src_old/sh_edraft/configuration/base/__init__.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.configuration.base 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.configuration.base'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-from .configuration_base import ConfigurationBase
-from .configuration_model_base import ConfigurationModelBase
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/configuration/base/configuration_base.py b/src_old/sh_edraft/configuration/base/configuration_base.py
deleted file mode 100644
index bf44a8c1..00000000
--- a/src_old/sh_edraft/configuration/base/configuration_base.py
+++ /dev/null
@@ -1,34 +0,0 @@
-from abc import abstractmethod, ABC
-from collections import Callable
-from typing import Type
-
-from sh_edraft.configuration.base.configuration_model_base import ConfigurationModelBase
-from sh_edraft.environment.base.environment_base import EnvironmentBase
-
-
-class ConfigurationBase(ABC):
-
-    @abstractmethod
-    def __init__(self): pass
-
-    @property
-    @abstractmethod
-    def environment(self) -> EnvironmentBase: pass
-
-    @abstractmethod
-    def add_environment_variables(self, prefix: str): pass
-
-    @abstractmethod
-    def add_argument_variables(self): pass
-
-    @abstractmethod
-    def add_json_file(self, name: str, optional: bool = None): pass
-
-    @abstractmethod
-    def add_configuration(self, key_type: type, value: object): pass
-
-    @abstractmethod
-    def get_configuration(self, search_type: Type[ConfigurationModelBase]) -> Callable[ConfigurationModelBase]: pass
-
-    @abstractmethod
-    def create(self): pass
diff --git a/src_old/sh_edraft/configuration/base/configuration_model_base.py b/src_old/sh_edraft/configuration/base/configuration_model_base.py
deleted file mode 100644
index 9772a648..00000000
--- a/src_old/sh_edraft/configuration/base/configuration_model_base.py
+++ /dev/null
@@ -1,10 +0,0 @@
-from abc import ABC, abstractmethod
-
-
-class ConfigurationModelBase(ABC):
-
-    @abstractmethod
-    def __init__(self): pass
-
-    @abstractmethod
-    def from_dict(self, settings: dict): pass
diff --git a/src_old/sh_edraft/configuration/configuration.py b/src_old/sh_edraft/configuration/configuration.py
deleted file mode 100644
index f4007ada..00000000
--- a/src_old/sh_edraft/configuration/configuration.py
+++ /dev/null
@@ -1,121 +0,0 @@
-import json
-import os
-import sys
-
-from sh_edraft.configuration.base.configuration_model_base import ConfigurationModelBase
-from sh_edraft.configuration.base.configuration_base import ConfigurationBase
-from sh_edraft.configuration.model.configuration_variable_name import ConfigurationVariableName
-from sh_edraft.environment.base.environment_base import EnvironmentBase
-from sh_edraft.environment.hosting_environment import HostingEnvironment
-from sh_edraft.environment.model.environment_name import EnvironmentName
-from sh_edraft.console.console import Console
-from sh_edraft.console.model import ForegroundColor
-
-
-class Configuration(ConfigurationBase):
-
-    def __init__(self):
-        ConfigurationBase.__init__(self)
-
-        self._hosting_environment = HostingEnvironment()
-        self._config: dict[type, ConfigurationModelBase] = {}
-
-    @property
-    def environment(self) -> EnvironmentBase:
-        return self._hosting_environment
-
-    @staticmethod
-    def _print_info(name: str, message: str):
-        Console.set_foreground_color(ForegroundColor.green)
-        Console.write_line(f'[{name}] {message}')
-        Console.set_foreground_color(ForegroundColor.default)
-
-    @staticmethod
-    def _print_warn(name: str, message: str):
-        Console.set_foreground_color(ForegroundColor.yellow)
-        Console.write_line(f'[{name}] {message}')
-        Console.set_foreground_color(ForegroundColor.default)
-
-    @staticmethod
-    def _print_error(name: str, message: str):
-        Console.set_foreground_color(ForegroundColor.red)
-        Console.write_line(f'[{name}] {message}')
-        Console.set_foreground_color(ForegroundColor.default)
-
-    def _set_variable(self, name: str, value: str):
-        if name == ConfigurationVariableName.environment.value:
-            self._hosting_environment.environment_name = EnvironmentName(value)
-
-        elif name == ConfigurationVariableName.name.value:
-            self._hosting_environment.application_name = value
-
-        elif name == ConfigurationVariableName.customer.value:
-            self._hosting_environment.customer = value
-
-    def add_environment_variables(self, prefix: str):
-        for variable in ConfigurationVariableName.to_list():
-            var_name = f'{prefix}{variable}'
-            if var_name in [key.upper() for key in os.environ.keys()]:
-                self._set_variable(variable, os.environ[var_name])
-
-    def add_argument_variables(self):
-        for arg in sys.argv[1:]:
-            try:
-                argument = arg.split('--')[1].split('=')[0].upper()
-                value = arg.split('=')[1]
-
-                if argument not in ConfigurationVariableName.to_list():
-                    raise Exception(f'Invalid argument name: {argument}')
-
-                self._set_variable(argument, value)
-            except Exception as e:
-                self._print_error(__name__, f'Invalid argument: {arg} -> {e}')
-                exit()
-
-    def add_json_file(self, name: str, optional: bool = None):
-        if self._hosting_environment.content_root_path.endswith('/') and not name.startswith('/'):
-            file_path = f'{self._hosting_environment.content_root_path}{name}'
-        else:
-            file_path = f'{self._hosting_environment.content_root_path}/{name}'
-
-        if not os.path.isfile(file_path):
-            if not optional:
-                self._print_error(__name__, f'File not found: {file_path}')
-                exit()
-
-            self._print_warn(__name__, f'Not Loaded config file: {file_path}')
-            return None
-
-        config_from_file = self._load_json_file(file_path)
-        for sub in ConfigurationModelBase.__subclasses__():
-            for key, value in config_from_file.items():
-                if sub.__name__ == key:
-                    configuration = sub()
-                    configuration.from_dict(value)
-                    self.add_configuration(sub, configuration)
-
-    def _load_json_file(self, file: str) -> dict:
-        try:
-            # open config file, create if not exists
-            with open(file, encoding='utf-8') as cfg:
-                # load json
-                json_cfg = json.load(cfg)
-                self._print_info(__name__, f'Loaded config file: {file}')
-                return json_cfg
-        except Exception as e:
-            self._print_error(__name__, f'Cannot load config file: {file}! -> {e}')
-            return {}
-
-    def add_configuration(self, key_type: type, value: ConfigurationModelBase):
-        self._config[key_type] = value
-
-    def get_configuration(self, search_type: type) -> ConfigurationModelBase:
-        if search_type not in self._config:
-            raise Exception(f'Config model by type {search_type} not found')
-
-        for config_model in self._config:
-            if config_model == search_type:
-                return self._config[config_model]
-
-    def create(self):
-        pass
diff --git a/src_old/sh_edraft/configuration/model/__init__.py b/src_old/sh_edraft/configuration/model/__init__.py
deleted file mode 100644
index ae7cc417..00000000
--- a/src_old/sh_edraft/configuration/model/__init__.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.configuration.model 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.configuration.model'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-from .configuration_variable_name import ConfigurationVariableName
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/configuration/model/configuration_variable_name.py b/src_old/sh_edraft/configuration/model/configuration_variable_name.py
deleted file mode 100644
index c89deb88..00000000
--- a/src_old/sh_edraft/configuration/model/configuration_variable_name.py
+++ /dev/null
@@ -1,12 +0,0 @@
-from enum import Enum
-
-
-class ConfigurationVariableName(Enum):
-
-    environment = 'ENVIRONMENT'
-    name = 'NAME'
-    customer = 'CUSTOMER'
-
-    @staticmethod
-    def to_list():
-        return [var.value for var in ConfigurationVariableName]
diff --git a/src_old/sh_edraft/console/__init__.py b/src_old/sh_edraft/console/__init__.py
deleted file mode 100644
index 632019e8..00000000
--- a/src_old/sh_edraft/console/__init__.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.console 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.console'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-from .console import Console
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/console/console.py b/src_old/sh_edraft/console/console.py
deleted file mode 100644
index 14964866..00000000
--- a/src_old/sh_edraft/console/console.py
+++ /dev/null
@@ -1,205 +0,0 @@
-import os
-from typing import Union, Optional
-
-import pyfiglet
-from tabulate import tabulate
-from termcolor import colored
-
-from sh_edraft.console.model.background_color import BackgroundColor
-from sh_edraft.console.model.foreground_color import ForegroundColor
-
-
-class Console:
-    _is_first_write = True
-
-    _background_color: BackgroundColor = BackgroundColor.default
-    _foreground_color: ForegroundColor = ForegroundColor.default
-    _x: Optional[int] = None
-    _y: Optional[int] = None
-    _disabled: bool = False
-
-    """
-        Properties
-    """
-
-    @classmethod
-    @property
-    def background_color(cls) -> str:
-        return str(cls._background_color.value)
-
-    @classmethod
-    @property
-    def foreground_color(cls) -> str:
-        return str(cls._foreground_color.value)
-
-    """
-        Settings
-    """
-
-    @classmethod
-    def set_background_color(cls, color: Union[BackgroundColor, str]):
-        if type(color) is str:
-            cls._background_color = BackgroundColor[color]
-        else:
-            cls._background_color = color
-
-    @classmethod
-    def set_foreground_color(cls, color: Union[ForegroundColor, str]):
-
-        if type(color) is str:
-            cls._foreground_color = ForegroundColor[color]
-        else:
-            cls._foreground_color = color
-
-    @classmethod
-    def reset_cursor_position(cls):
-        cls._x = None
-        cls._y = None
-
-    @classmethod
-    def set_cursor_position(cls, x: int, y: int):
-        cls._x = x
-        cls._y = y
-
-    """
-        Useful protected methods
-    """
-
-    @classmethod
-    def _output(cls, string: str, x: int = None, y: int = None, end='\n'):
-        if cls._is_first_write:
-            cls._is_first_write = False
-
-        args = []
-        colored_args = []
-
-        if x is not None and y is not None:
-            args.append(f'\033[{x};{y}H')
-        elif cls._x is not None and cls._y is not None:
-            args.append(f'\033[{cls._x};{cls._y}H')
-
-        colored_args.append(string)
-        if cls._foreground_color != ForegroundColor.default and cls._background_color == BackgroundColor.default:
-            colored_args.append(cls._foreground_color.value)
-        elif cls._foreground_color == ForegroundColor.default and cls._background_color != BackgroundColor.default:
-            colored_args.append(cls._background_color.value)
-        elif cls._foreground_color != ForegroundColor.default and cls._background_color != BackgroundColor.default:
-            colored_args.append(cls._foreground_color.value)
-            colored_args.append(cls._background_color.value)
-
-        args.append(colored(*colored_args))
-        print(*args, end=end)
-
-    """
-        Useful public methods
-    """
-
-    @classmethod
-    def banner(cls, string: str):
-        if cls._disabled:
-            return
-
-        ascii_banner = pyfiglet.figlet_format(string)
-        cls.write_line(ascii_banner)
-
-    @classmethod
-    def clear(cls):
-        os.system('cls' if os.name == 'nt' else 'clear')
-
-    @classmethod
-    def close(cls):
-        if cls._disabled:
-            return
-
-        Console.reset()
-        Console.write('\n\n\nPress any key to continue...')
-        Console.read_line()
-        exit()
-
-    @classmethod
-    def disable(cls):
-        cls._disabled = True
-
-    @classmethod
-    def error(cls, string: str, tb: str = None):
-        if cls._disabled:
-            return
-
-        cls.set_foreground_color('red')
-        if tb is not None:
-            cls.write_line(f'{string} -> {tb}')
-        else:
-            cls.write_line(string)
-        cls.set_foreground_color('default')
-
-    @classmethod
-    def enable(cls):
-        cls._disabled = False
-
-    @classmethod
-    def read(cls, output: str = None) -> str:
-        if output is not None:
-            cls.write(output)
-
-        return input()[0]
-
-    @classmethod
-    def read_line(cls, output: str = None) -> str:
-        if cls._disabled:
-            return ''
-
-        if output is not None:
-            cls.write(output)
-
-        return input()
-
-    @classmethod
-    def reset(cls):
-        cls._background_color = BackgroundColor.default
-        cls._foreground_color = ForegroundColor.default
-
-    @classmethod
-    def table(cls, header: list[str], values: list[list[str]]):
-        if cls._disabled:
-            return
-
-        table = tabulate(values, headers=header)
-
-        Console.write_line(table)
-        Console.write('\n')
-
-    @classmethod
-    def write(cls, *args):
-        if cls._disabled:
-            return
-
-        string = ' '.join(map(str, args))
-        cls._output(string, end='')
-
-    @classmethod
-    def write_at(cls, x: int, y: int, *args):
-        if cls._disabled:
-            return
-
-        string = ' '.join(map(str, args))
-        cls._output(string, x, y, end='')
-
-    @classmethod
-    def write_line(cls, *args):
-        if cls._disabled:
-            return
-
-        string = ' '.join(map(str, args))
-        if not cls._is_first_write:
-            cls._output('')
-        cls._output(string, end='')
-
-    @classmethod
-    def write_line_at(cls, x: int, y: int, *args):
-        if cls._disabled:
-            return
-
-        string = ' '.join(map(str, args))
-        if not cls._is_first_write:
-            cls._output('', end='')
-        cls._output(string, x, y, end='')
diff --git a/src_old/sh_edraft/console/model/__init__.py b/src_old/sh_edraft/console/model/__init__.py
deleted file mode 100644
index 3df50dae..00000000
--- a/src_old/sh_edraft/console/model/__init__.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.console.model 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.console.model'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-from .background_color import BackgroundColor
-from .foreground_color import ForegroundColor
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/console/model/background_color.py b/src_old/sh_edraft/console/model/background_color.py
deleted file mode 100644
index f4947e30..00000000
--- a/src_old/sh_edraft/console/model/background_color.py
+++ /dev/null
@@ -1,14 +0,0 @@
-from enum import Enum
-
-
-class BackgroundColor(Enum):
-
-    default = 'on_default'
-    grey = 'on_grey'
-    red = 'on_red'
-    green = 'on_green'
-    yellow = 'on_yellow'
-    blue = 'on_blue'
-    magenta = 'on_magenta'
-    cyan = 'on_cyan'
-    white = 'on_white'
diff --git a/src_old/sh_edraft/console/model/foreground_color.py b/src_old/sh_edraft/console/model/foreground_color.py
deleted file mode 100644
index 463d4ae7..00000000
--- a/src_old/sh_edraft/console/model/foreground_color.py
+++ /dev/null
@@ -1,14 +0,0 @@
-from enum import Enum
-
-
-class ForegroundColor(Enum):
-
-    default = 'default'
-    grey = 'grey'
-    red = 'red'
-    green = 'green'
-    yellow = 'yellow'
-    blue = 'blue'
-    magenta = 'magenta'
-    cyan = 'cyan'
-    white = 'white'
diff --git a/src_old/sh_edraft/database/__init__.py b/src_old/sh_edraft/database/__init__.py
deleted file mode 100644
index 7bb526a4..00000000
--- a/src_old/sh_edraft/database/__init__.py
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.database 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.database'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/database/connection/__init__.py b/src_old/sh_edraft/database/connection/__init__.py
deleted file mode 100644
index 5f3406df..00000000
--- a/src_old/sh_edraft/database/connection/__init__.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.database.connection 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.database.connection'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-from .database_connection import DatabaseConnection
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/database/connection/base/__init__.py b/src_old/sh_edraft/database/connection/base/__init__.py
deleted file mode 100644
index 492da1d6..00000000
--- a/src_old/sh_edraft/database/connection/base/__init__.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.database.connection.base 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.database.connection.base'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-from .database_connection_base import DatabaseConnectionBase
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/database/connection/base/database_connection_base.py b/src_old/sh_edraft/database/connection/base/database_connection_base.py
deleted file mode 100644
index 9bc31427..00000000
--- a/src_old/sh_edraft/database/connection/base/database_connection_base.py
+++ /dev/null
@@ -1,21 +0,0 @@
-from abc import abstractmethod, ABC
-
-from sqlalchemy import engine
-from sqlalchemy.orm import Session
-
-
-class DatabaseConnectionBase(ABC):
-
-    @abstractmethod
-    def __init__(self): pass
-
-    @property
-    @abstractmethod
-    def engine(self) -> engine: pass
-
-    @property
-    @abstractmethod
-    def session(self) -> Session: pass
-
-    @abstractmethod
-    def connect(self, connection_string: str): pass
diff --git a/src_old/sh_edraft/database/connection/database_connection.py b/src_old/sh_edraft/database/connection/database_connection.py
deleted file mode 100644
index b3397113..00000000
--- a/src_old/sh_edraft/database/connection/database_connection.py
+++ /dev/null
@@ -1,56 +0,0 @@
-from typing import Optional
-
-from sqlalchemy import engine, create_engine
-from sqlalchemy.orm import Session, sessionmaker
-
-from sh_edraft.database.connection.base.database_connection_base import DatabaseConnectionBase
-from sh_edraft.database.model.database_settings import DatabaseSettings
-from sh_edraft.console.console import Console
-from sh_edraft.console.model.foreground_color import ForegroundColor
-
-
-class DatabaseConnection(DatabaseConnectionBase):
-
-    def __init__(self, database_settings: DatabaseSettings):
-        DatabaseConnectionBase.__init__(self)
-
-        self._db_settings = database_settings
-
-        self._engine: Optional[engine] = None
-        self._session: Optional[Session] = None
-        self._credentials: Optional[str] = None
-
-    @property
-    def engine(self) -> engine:
-        return self._engine
-
-    @property
-    def session(self) -> Session:
-        return self._session
-
-    def connect(self, connection_string: str):
-        try:
-            self._engine = create_engine(connection_string)
-
-            if self._db_settings.encoding is not None:
-                self._engine.encoding = self._db_settings.encoding
-
-            if self._db_settings.case_sensitive is not None:
-                self._engine.case_sensitive = self._db_settings.case_sensitive
-
-            if self._db_settings.echo is not None:
-                self._engine.echo = self._db_settings.echo
-
-            self._engine.connect()
-
-            db_session = sessionmaker(bind=self._engine)
-            self._session = db_session()
-            Console.set_foreground_color(ForegroundColor.green)
-            Console.write_line(f'[{__name__}] Connected to database')
-            Console.set_foreground_color(ForegroundColor.default)
-        except Exception as e:
-            Console.set_foreground_color(ForegroundColor.red)
-            Console.write_line(f'[{__name__}] Database connection failed -> {e}')
-            Console.set_foreground_color(ForegroundColor.default)
-            exit()
-
diff --git a/src_old/sh_edraft/database/context/__init__.py b/src_old/sh_edraft/database/context/__init__.py
deleted file mode 100644
index 1f5bc196..00000000
--- a/src_old/sh_edraft/database/context/__init__.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.database.context 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.database.context'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-from .database_context import DatabaseContext
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/database/context/base/__init__.py b/src_old/sh_edraft/database/context/base/__init__.py
deleted file mode 100644
index 63d9bb64..00000000
--- a/src_old/sh_edraft/database/context/base/__init__.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.database.context.base 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.database.context.base'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-from .database_context_base import DatabaseContextBase
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/database/context/base/database_context_base.py b/src_old/sh_edraft/database/context/base/database_context_base.py
deleted file mode 100644
index b8294e64..00000000
--- a/src_old/sh_edraft/database/context/base/database_context_base.py
+++ /dev/null
@@ -1,27 +0,0 @@
-from abc import abstractmethod
-
-from sqlalchemy import engine
-from sqlalchemy.orm import Session
-
-from sh_edraft.service.base.service_base import ServiceBase
-
-
-class DatabaseContextBase(ServiceBase):
-
-    @abstractmethod
-    def __init__(self):
-        ServiceBase.__init__(self)
-
-    @property
-    @abstractmethod
-    def engine(self) -> engine: pass
-
-    @property
-    @abstractmethod
-    def session(self) -> Session: pass
-
-    @abstractmethod
-    def connect(self, connection_string: str): pass
-
-    @abstractmethod
-    def _create_tables(self): pass
diff --git a/src_old/sh_edraft/database/context/database_context.py b/src_old/sh_edraft/database/context/database_context.py
deleted file mode 100644
index 436ed53e..00000000
--- a/src_old/sh_edraft/database/context/database_context.py
+++ /dev/null
@@ -1,50 +0,0 @@
-from sqlalchemy import engine, Table
-from sqlalchemy.orm import Session
-
-from sh_edraft.database.connection.database_connection import DatabaseConnection
-from sh_edraft.database.connection.base.database_connection_base import DatabaseConnectionBase
-from sh_edraft.database.context.base.database_context_base import DatabaseContextBase
-from sh_edraft.database.model.dbmodel import DBModel
-from sh_edraft.database.model.database_settings import DatabaseSettings
-from sh_edraft.console.console import Console
-from sh_edraft.console.model.foreground_color import ForegroundColor
-
-
-class DatabaseContext(DatabaseContextBase):
-
-    def __init__(self, database_settings: DatabaseSettings):
-        DatabaseContextBase.__init__(self)
-
-        self._db: DatabaseConnectionBase = DatabaseConnection(database_settings)
-        self._tables: list[Table] = []
-
-    @property
-    def engine(self) -> engine:
-        return self._db.engine
-
-    @property
-    def session(self) -> Session:
-        return self._db.session
-
-    def create(self):
-        pass
-
-    def connect(self, connection_string: str):
-        self._db.connect(connection_string)
-        self._create_tables()
-
-    def _create_tables(self):
-        try:
-            for subclass in DBModel.__subclasses__():
-                self._tables.append(subclass.__table__)
-
-            DBModel.metadata.drop_all(self._db.engine, self._tables)
-            DBModel.metadata.create_all(self._db.engine, self._tables, checkfirst=True)
-            Console.set_foreground_color(ForegroundColor.green)
-            Console.write_line(f'[{__name__}] Created tables')
-            Console.set_foreground_color(ForegroundColor.default)
-        except Exception as e:
-            Console.set_foreground_color(ForegroundColor.red)
-            Console.write_line(f'[{__name__}] Creating tables failed -> {e}')
-            Console.set_foreground_color(ForegroundColor.default)
-            exit()
diff --git a/src_old/sh_edraft/database/model/__init__.py b/src_old/sh_edraft/database/model/__init__.py
deleted file mode 100644
index de87e001..00000000
--- a/src_old/sh_edraft/database/model/__init__.py
+++ /dev/null
@@ -1,28 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.database.model 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.database.model'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-from .database_settings import DatabaseSettings
-from .database_settings_name import DatabaseSettingsName
-from .dbmodel import DBModel
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/database/model/database_settings.py b/src_old/sh_edraft/database/model/database_settings.py
deleted file mode 100644
index aed39e5f..00000000
--- a/src_old/sh_edraft/database/model/database_settings.py
+++ /dev/null
@@ -1,78 +0,0 @@
-import traceback
-from typing import Optional
-
-from sh_edraft.configuration.base.configuration_model_base import ConfigurationModelBase
-from sh_edraft.database.model.database_settings_name import DatabaseSettingsName
-from sh_edraft.console.console import Console
-from sh_edraft.console.model.foreground_color import ForegroundColor
-
-
-class DatabaseSettings(ConfigurationModelBase):
-
-    def __init__(self):
-        ConfigurationModelBase.__init__(self)
-
-        self._connection_string: Optional[str] = None
-        self._credentials: Optional[str] = None
-        self._encoding: Optional[str] = None
-        self._case_sensitive: Optional[bool] = None
-        self._echo: Optional[bool] = None
-        
-    @property
-    def connection_string(self) -> str:
-        return self._connection_string
-    
-    @connection_string.setter
-    def connection_string(self, connection_string: str):
-        self._connection_string = connection_string
-        
-    @property
-    def credentials(self) -> str:
-        return self._credentials
-    
-    @credentials.setter
-    def credentials(self, credentials: str):
-        self._credentials = credentials
-
-    @property
-    def encoding(self) -> str:
-        return self._encoding
-
-    @encoding.setter
-    def encoding(self, encoding: str) -> None:
-        self._encoding = encoding
-
-    @property
-    def case_sensitive(self) -> bool:
-        return self._case_sensitive
-
-    @case_sensitive.setter
-    def case_sensitive(self, case_sensitive: bool) -> None:
-        self._case_sensitive = case_sensitive
-
-    @property
-    def echo(self) -> bool:
-        return self._echo
-
-    @echo.setter
-    def echo(self, echo: bool) -> None:
-        self._echo = echo
-
-    def from_dict(self, settings: dict):
-        try:
-            self._connection_string = settings[DatabaseSettingsName.connection_string.value]
-            self._credentials = settings[DatabaseSettingsName.credentials.value]
-
-            if DatabaseSettingsName.encoding.value in settings:
-                self._encoding = settings[DatabaseSettingsName.encoding.value]
-
-            if DatabaseSettingsName.case_sensitive.value in settings:
-                self._case_sensitive = bool(settings[DatabaseSettingsName.case_sensitive.value])
-
-            if DatabaseSettingsName.echo.value in settings:
-                self._echo = bool(settings[DatabaseSettingsName.echo.value])
-        except Exception as e:
-            Console.set_foreground_color(ForegroundColor.red)
-            Console.write_line(f'[ ERROR ] [ {__name__} ]: Reading error in {self.__name__} settings')
-            Console.write_line(f'[ EXCEPTION ] [ {__name__} ]: {e} -> {traceback.format_exc()}')
-            Console.set_foreground_color(ForegroundColor.default)
diff --git a/src_old/sh_edraft/database/model/database_settings_name.py b/src_old/sh_edraft/database/model/database_settings_name.py
deleted file mode 100644
index 57ece941..00000000
--- a/src_old/sh_edraft/database/model/database_settings_name.py
+++ /dev/null
@@ -1,10 +0,0 @@
-from enum import Enum
-
-
-class DatabaseSettingsName(Enum):
-
-    connection_string = 'ConnectionString'
-    credentials = 'Credentials'
-    encoding = 'Encoding'
-    case_sensitive = 'CaseSensitive'
-    echo = 'Echo'
diff --git a/src_old/sh_edraft/database/model/dbmodel.py b/src_old/sh_edraft/database/model/dbmodel.py
deleted file mode 100644
index 145da02b..00000000
--- a/src_old/sh_edraft/database/model/dbmodel.py
+++ /dev/null
@@ -1,3 +0,0 @@
-from sqlalchemy.ext.declarative import declarative_base
-
-DBModel: declarative_base = declarative_base()
diff --git a/src_old/sh_edraft/environment/__init__.py b/src_old/sh_edraft/environment/__init__.py
deleted file mode 100644
index ac993870..00000000
--- a/src_old/sh_edraft/environment/__init__.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.environment 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.environment'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-from .hosting_environment import HostingEnvironment
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/environment/base/__init__.py b/src_old/sh_edraft/environment/base/__init__.py
deleted file mode 100644
index 36b8b351..00000000
--- a/src_old/sh_edraft/environment/base/__init__.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.environment.base 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.environment.base'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-from .environment_base import EnvironmentBase
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/environment/base/environment_base.py b/src_old/sh_edraft/environment/base/environment_base.py
deleted file mode 100644
index f5dc9266..00000000
--- a/src_old/sh_edraft/environment/base/environment_base.py
+++ /dev/null
@@ -1,43 +0,0 @@
-from abc import ABC, abstractmethod
-
-
-class EnvironmentBase(ABC):
-
-    @abstractmethod
-    def __init__(self): pass
-    
-    @property
-    @abstractmethod
-    def environment_name(self) -> str: pass
-    
-    @environment_name.setter
-    @abstractmethod
-    def environment_name(self, environment_name: str): pass
-    
-    @property
-    @abstractmethod
-    def application_name(self) -> str: pass
-    
-    @application_name.setter
-    @abstractmethod
-    def application_name(self, application_name: str): pass
-    
-    @property
-    @abstractmethod
-    def customer(self) -> str: pass
-    
-    @customer.setter
-    @abstractmethod
-    def customer(self, customer: str): pass
-
-    @property
-    @abstractmethod
-    def content_root_path(self) -> str: pass
-
-    @content_root_path.setter
-    @abstractmethod
-    def content_root_path(self, content_root_path: str): pass
-
-    @property
-    @abstractmethod
-    def host_name(self) -> str: pass
diff --git a/src_old/sh_edraft/environment/hosting_environment.py b/src_old/sh_edraft/environment/hosting_environment.py
deleted file mode 100644
index 2f2021ff..00000000
--- a/src_old/sh_edraft/environment/hosting_environment.py
+++ /dev/null
@@ -1,52 +0,0 @@
-from socket import gethostname
-from typing import Optional
-
-from sh_edraft.environment.base.environment_base import EnvironmentBase
-from sh_edraft.environment.model.environment_name import EnvironmentName
-
-
-class HostingEnvironment(EnvironmentBase):
-
-    def __init__(self, name: EnvironmentName = EnvironmentName.production, crp: str = './'):
-        EnvironmentBase.__init__(self)
-
-        self._environment_name: Optional[EnvironmentName] = name
-        self._app_name: Optional[str] = None
-        self._customer: Optional[str] = None
-        self._content_root_path: Optional[str] = crp
-
-    @property
-    def environment_name(self) -> str:
-        return str(self._environment_name.value)
-
-    @environment_name.setter
-    def environment_name(self, environment_name: str):
-        self._environment_name = EnvironmentName(environment_name)
-
-    @property
-    def application_name(self) -> str:
-        return self._app_name if self._app_name is not None else ''
-
-    @application_name.setter
-    def application_name(self, application_name: str):
-        self._app_name = application_name
-
-    @property
-    def customer(self) -> str:
-        return self._customer if self._customer is not None else ''
-
-    @customer.setter
-    def customer(self, customer: str):
-        self._customer = customer
-
-    @property
-    def content_root_path(self) -> str:
-        return self._content_root_path
-
-    @content_root_path.setter
-    def content_root_path(self, content_root_path: str):
-        self._content_root_path = content_root_path
-
-    @property
-    def host_name(self):
-        return gethostname()
diff --git a/src_old/sh_edraft/environment/model/__init__.py b/src_old/sh_edraft/environment/model/__init__.py
deleted file mode 100644
index 59266f74..00000000
--- a/src_old/sh_edraft/environment/model/__init__.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.environment.model 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.environment.model'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-from .environment_name import EnvironmentName
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/environment/model/environment_name.py b/src_old/sh_edraft/environment/model/environment_name.py
deleted file mode 100644
index 18abcbb5..00000000
--- a/src_old/sh_edraft/environment/model/environment_name.py
+++ /dev/null
@@ -1,9 +0,0 @@
-from enum import Enum
-
-
-class EnvironmentName(Enum):
-
-    production = 'production'
-    staging = 'staging'
-    testing = 'testing'
-    development = 'development'
diff --git a/src_old/sh_edraft/hosting/__init__.py b/src_old/sh_edraft/hosting/__init__.py
deleted file mode 100644
index d650f7e0..00000000
--- a/src_old/sh_edraft/hosting/__init__.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.hosting 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.hosting'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-from .application_host import ApplicationHost
-from .application_runtime import ApplicationRuntime
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/hosting/application_host.py b/src_old/sh_edraft/hosting/application_host.py
deleted file mode 100644
index 1c5ed011..00000000
--- a/src_old/sh_edraft/hosting/application_host.py
+++ /dev/null
@@ -1,46 +0,0 @@
-import atexit
-from datetime import datetime
-
-from sh_edraft.configuration.configuration import Configuration
-from sh_edraft.configuration.base.configuration_base import ConfigurationBase
-from sh_edraft.hosting.base.application_runtime_base import ApplicationRuntimeBase
-from sh_edraft.hosting.application_runtime import ApplicationRuntime
-from sh_edraft.hosting.base.application_host_base import ApplicationHostBase
-from sh_edraft.service.providing.service_provider import ServiceProvider
-from sh_edraft.service.providing.base.service_provider_base import ServiceProviderBase
-from sh_edraft.console.console import Console
-
-
-class ApplicationHost(ApplicationHostBase):
-
-    def __init__(self):
-        ApplicationHostBase.__init__(self)
-
-        # Init
-        self._config = Configuration()
-        self._app_runtime = ApplicationRuntime(self._config)
-        self._services = ServiceProvider(self._app_runtime)
-
-        # Create
-        self._config.create()
-        self._services.create()
-
-        # Set vars
-        self._start_time: datetime = datetime.now()
-        self._end_time: datetime = datetime.now()
-
-        atexit.register(Console.close)
-
-    @property
-    def configuration(self) -> ConfigurationBase:
-        return self._config
-
-    @property
-    def application_runtime(self) -> ApplicationRuntimeBase:
-        return self._app_runtime
-
-    @property
-    def services(self) -> ServiceProviderBase:
-        return self._services
-
-    def create(self): pass
diff --git a/src_old/sh_edraft/hosting/application_runtime.py b/src_old/sh_edraft/hosting/application_runtime.py
deleted file mode 100644
index 5e903bb5..00000000
--- a/src_old/sh_edraft/hosting/application_runtime.py
+++ /dev/null
@@ -1,38 +0,0 @@
-from datetime import datetime
-
-from sh_edraft.configuration.base.configuration_base import ConfigurationBase
-from sh_edraft.hosting.base.application_runtime_base import ApplicationRuntimeBase
-
-
-class ApplicationRuntime(ApplicationRuntimeBase):
-
-    def __init__(self, config: ConfigurationBase):
-        ApplicationRuntimeBase.__init__(self)
-
-        self._app_configuration = config
-        self._start_time: datetime = datetime.now()
-        self._end_time: datetime = datetime.now()
-
-    @property
-    def configuration(self) -> ConfigurationBase:
-        return self._app_configuration
-
-    @property
-    def start_time(self) -> datetime:
-        return self._start_time
-
-    @start_time.setter
-    def start_time(self, start_time: datetime):
-        self._start_time = start_time
-
-    @property
-    def end_time(self) -> datetime:
-        return self._end_time
-
-    @end_time.setter
-    def end_time(self, end_time: datetime):
-        self._end_time = end_time
-
-    @property
-    def date_time_now(self) -> datetime:
-        return datetime.now()
diff --git a/src_old/sh_edraft/hosting/base/__init__.py b/src_old/sh_edraft/hosting/base/__init__.py
deleted file mode 100644
index 47f46211..00000000
--- a/src_old/sh_edraft/hosting/base/__init__.py
+++ /dev/null
@@ -1,28 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.hosting.base 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.hosting.base'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-from .application_base import ApplicationBase
-from .application_host_base import ApplicationHostBase
-from .application_runtime_base import ApplicationRuntimeBase
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/hosting/base/application_base.py b/src_old/sh_edraft/hosting/base/application_base.py
deleted file mode 100644
index 00f72997..00000000
--- a/src_old/sh_edraft/hosting/base/application_base.py
+++ /dev/null
@@ -1,19 +0,0 @@
-from abc import ABC, abstractmethod
-
-
-class ApplicationBase(ABC):
-
-    @abstractmethod
-    def __init__(self): pass
-
-    @abstractmethod
-    def create_application_host(self): pass
-
-    @abstractmethod
-    def create_configuration(self): pass
-
-    @abstractmethod
-    def create_services(self): pass
-
-    @abstractmethod
-    def main(self): pass
diff --git a/src_old/sh_edraft/hosting/base/application_host_base.py b/src_old/sh_edraft/hosting/base/application_host_base.py
deleted file mode 100644
index fb816ccb..00000000
--- a/src_old/sh_edraft/hosting/base/application_host_base.py
+++ /dev/null
@@ -1,26 +0,0 @@
-from abc import ABC, abstractmethod
-
-from sh_edraft.configuration.base.configuration_base import ConfigurationBase
-from sh_edraft.hosting.base.application_runtime_base import ApplicationRuntimeBase
-from sh_edraft.service.providing.base.service_provider_base import ServiceProviderBase
-
-
-class ApplicationHostBase(ABC):
-
-    @abstractmethod
-    def __init__(self): pass
-
-    @property
-    @abstractmethod
-    def configuration(self) -> ConfigurationBase: pass
-
-    @property
-    @abstractmethod
-    def application_runtime(self) -> ApplicationRuntimeBase: pass
-
-    @property
-    @abstractmethod
-    def services(self) -> ServiceProviderBase: pass
-
-    @abstractmethod
-    def create(self): pass
diff --git a/src_old/sh_edraft/hosting/base/application_runtime_base.py b/src_old/sh_edraft/hosting/base/application_runtime_base.py
deleted file mode 100644
index fd644270..00000000
--- a/src_old/sh_edraft/hosting/base/application_runtime_base.py
+++ /dev/null
@@ -1,34 +0,0 @@
-from abc import ABC, abstractmethod
-from datetime import datetime
-
-from sh_edraft.configuration.base.configuration_base import ConfigurationBase
-
-
-class ApplicationRuntimeBase(ABC):
-
-    @abstractmethod
-    def __init__(self): pass
-
-    @property
-    @abstractmethod
-    def configuration(self) -> ConfigurationBase: pass
-
-    @property
-    @abstractmethod
-    def start_time(self) -> datetime: pass
-
-    @start_time.setter
-    @abstractmethod
-    def start_time(self, start_time: datetime): pass
-
-    @property
-    @abstractmethod
-    def end_time(self): pass
-
-    @end_time.setter
-    @abstractmethod
-    def end_time(self, end_time: datetime): pass
-
-    @property
-    @abstractmethod
-    def date_time_now(self) -> datetime: pass
diff --git a/src_old/sh_edraft/hosting/model/__init__.py b/src_old/sh_edraft/hosting/model/__init__.py
deleted file mode 100644
index 2ff0878e..00000000
--- a/src_old/sh_edraft/hosting/model/__init__.py
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.hosting.model 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.hosting.model'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/logging/__init__.py b/src_old/sh_edraft/logging/__init__.py
deleted file mode 100644
index 80fdec21..00000000
--- a/src_old/sh_edraft/logging/__init__.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.logging 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.logging'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-from .logger import Logger
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/logging/base/__init__.py b/src_old/sh_edraft/logging/base/__init__.py
deleted file mode 100644
index 83da99e0..00000000
--- a/src_old/sh_edraft/logging/base/__init__.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.logging.base 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.logging.base'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-from .logger_base import LoggerBase
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/logging/base/logger_base.py b/src_old/sh_edraft/logging/base/logger_base.py
deleted file mode 100644
index 2dc5de50..00000000
--- a/src_old/sh_edraft/logging/base/logger_base.py
+++ /dev/null
@@ -1,31 +0,0 @@
-from abc import abstractmethod
-
-from sh_edraft.service.base.service_base import ServiceBase
-
-
-class LoggerBase(ServiceBase):
-
-    @abstractmethod
-    def __init__(self):
-        ServiceBase.__init__(self)
-
-    @abstractmethod
-    def header(self, string: str): pass
-
-    @abstractmethod
-    def trace(self, name: str, message: str): pass
-
-    @abstractmethod
-    def debug(self, name: str, message: str): pass
-
-    @abstractmethod
-    def info(self, name: str, message: str): pass
-
-    @abstractmethod
-    def warn(self, name: str, message: str): pass
-
-    @abstractmethod
-    def error(self, name: str, message: str, ex: Exception = None): pass
-
-    @abstractmethod
-    def fatal(self, name: str, message: str, ex: Exception = None): pass
diff --git a/src_old/sh_edraft/logging/logger.py b/src_old/sh_edraft/logging/logger.py
deleted file mode 100644
index 6668132e..00000000
--- a/src_old/sh_edraft/logging/logger.py
+++ /dev/null
@@ -1,195 +0,0 @@
-import datetime
-import os
-import traceback
-from string import Template
-
-from sh_edraft.hosting.base.application_runtime_base import ApplicationRuntimeBase
-from sh_edraft.logging.base.logger_base import LoggerBase
-from sh_edraft.logging.model.logging_settings import LoggingSettings
-from sh_edraft.logging.model.logging_level import LoggingLevel
-from sh_edraft.time.model.time_format_settings import TimeFormatSettings
-from sh_edraft.console.console import Console
-from sh_edraft.console.model.foreground_color import ForegroundColor
-
-
-class Logger(LoggerBase):
-
-    def __init__(self, logging_settings: LoggingSettings, time_format: TimeFormatSettings, app_runtime: ApplicationRuntimeBase):
-        LoggerBase.__init__(self)
-
-        self._app_runtime = app_runtime
-        self._log_settings: LoggingSettings = logging_settings
-        self._time_format_settings: TimeFormatSettings = time_format
-
-        self._log = Template(self._log_settings.filename).substitute(
-            date_time_now=self._app_runtime.date_time_now.strftime(self._time_format_settings.date_time_format),
-            start_time=self._app_runtime.start_time.strftime(self._time_format_settings.date_time_log_format)
-        )
-        self._path = self._log_settings.path
-        self._level = self._log_settings.level
-        self._console = self._log_settings.console
-
-        self.create()
-
-    def _get_datetime_now(self) -> str:
-        try:
-            return datetime.datetime.now().strftime(self._time_format_settings.date_time_format)
-        except Exception as e:
-            self.error(__name__, 'Cannot get time', ex=e)
-
-    def _get_date(self) -> str:
-        try:
-            return datetime.datetime.now().strftime(self._time_format_settings.date_format)
-        except Exception as e:
-            self.error(__name__, 'Cannot get date', ex=e)
-
-    def create(self) -> None:
-        """ path """
-        try:
-            # check if log file path exists
-            if not os.path.exists(self._path):
-                os.makedirs(self._path)
-        except Exception as e:
-            self._fatal_console(__name__, 'Cannot create log dir', ex=e)
-
-        """ create new log file """
-        try:
-            # open log file, create if not exists
-            path = f'{self._path}{self._log}'
-            f = open(path, "w+")
-            Console.write_line(f'[{__name__}]: Using log file: {path}')
-            f.close()
-        except Exception as e:
-            self._fatal_console(__name__, 'Cannot open log file', ex=e)
-
-    def _append_log(self, string):
-        try:
-            # open log file and append always
-            if not os.path.isdir(self._path):
-                self._fatal_console(__name__, 'Log directory not found')
-
-            with open(self._path + self._log, "a+", encoding="utf-8") as f:
-                f.write(string + '\n')
-                f.close()
-        except Exception as e:
-            self._fatal_console(__name__, f'Cannot append log file, message: {string}', ex=e)
-
-    def _get_string(self, name: str, level: LoggingLevel, message: str) -> str:
-        log_level = level.name
-        return f'<{self._get_datetime_now()}> [ {log_level} ] [ {name} ]: {message}'
-
-    def header(self, string: str):
-        # append log and print message
-        self._append_log(string)
-        Console.set_foreground_color(ForegroundColor.default)
-        Console.write_line(string)
-        Console.set_foreground_color(ForegroundColor.default)
-
-    def trace(self, name: str, message: str):
-        output = self._get_string(name, LoggingLevel.TRACE, message)
-
-        # check if message can be written to log
-        if self._level.value >= LoggingLevel.TRACE.value:
-            self._append_log(output)
-
-        # check if message can be shown in console
-        if self._console.value >= LoggingLevel.TRACE.value:
-            Console.set_foreground_color(ForegroundColor.green)
-            Console.write_line(output)
-            Console.set_foreground_color(ForegroundColor.default)
-
-    def debug(self, name: str, message: str):
-        output = self._get_string(name, LoggingLevel.DEBUG, message)
-
-        # check if message can be written to log
-        if self._level.value >= LoggingLevel.DEBUG.value:
-            self._append_log(output)
-
-        # check if message can be shown in console
-        if self._console.value >= LoggingLevel.DEBUG.value:
-            Console.set_foreground_color(ForegroundColor.green)
-            Console.write_line(output)
-            Console.set_foreground_color(ForegroundColor.default)
-
-    def info(self, name: str, message: str):
-        output = self._get_string(name, LoggingLevel.INFO, message)
-
-        # check if message can be written to log
-        if self._level.value >= LoggingLevel.INFO.value:
-            self._append_log(output)
-
-        # check if message can be shown in console
-        if self._console.value >= LoggingLevel.INFO.value:
-            Console.set_foreground_color(ForegroundColor.green)
-            Console.write_line(output)
-            Console.set_foreground_color(ForegroundColor.default)
-
-    def warn(self, name: str, message: str):
-        output = self._get_string(name, LoggingLevel.WARN, message)
-
-        # check if message can be written to log
-        if self._level.value >= LoggingLevel.WARN.value:
-            self._append_log(output)
-
-        # check if message can be shown in console
-        if self._console.value >= LoggingLevel.WARN.value:
-            Console.set_foreground_color(ForegroundColor.yellow)
-            Console.write_line(output)
-            Console.set_foreground_color(ForegroundColor.default)
-
-    def error(self, name: str, message: str, ex: Exception = None):
-        output = ''
-        if ex is not None:
-            tb = traceback.format_exc()
-            self.error(name, message)
-            output = self._get_string(name, LoggingLevel.ERROR, f'{ex} -> {tb}')
-        else:
-            output = self._get_string(name, LoggingLevel.ERROR, message)
-
-        # check if message can be written to log
-        if self._level.value >= LoggingLevel.ERROR.value:
-            self._append_log(output)
-
-        # check if message can be shown in console
-        if self._console.value >= LoggingLevel.ERROR.value:
-            Console.set_foreground_color(ForegroundColor.red)
-            Console.write_line(output)
-            Console.set_foreground_color(ForegroundColor.default)
-
-    def fatal(self, name: str, message: str, ex: Exception = None):
-        output = ''
-        if ex is not None:
-            tb = traceback.format_exc()
-            self.error(name, message)
-            output = self._get_string(name, LoggingLevel.FATAL, f'{ex} -> {tb}')
-        else:
-            output = self._get_string(name, LoggingLevel.FATAL, message)
-
-        # check if message can be written to log
-        if self._level.value >= LoggingLevel.FATAL.value:
-            self._append_log(output)
-
-        # check if message can be shown in console
-        if self._console.value >= LoggingLevel.FATAL.value:
-            Console.set_foreground_color(ForegroundColor.red)
-            Console.write_line(output)
-            Console.set_foreground_color(ForegroundColor.default)
-
-        exit()
-
-    def _fatal_console(self, name: str, message: str, ex: Exception = None):
-        output = ''
-        if ex is not None:
-            tb = traceback.format_exc()
-            self.error(name, message)
-            output = self._get_string(name, LoggingLevel.ERROR, f'{ex} -> {tb}')
-        else:
-            output = self._get_string(name, LoggingLevel.ERROR, message)
-
-        # check if message can be shown in console
-        if self._console.value >= LoggingLevel.FATAL.value:
-            Console.set_foreground_color(ForegroundColor.red)
-            Console.write_line(output)
-            Console.set_foreground_color(ForegroundColor.default)
-
-        exit()
diff --git a/src_old/sh_edraft/logging/model/__init__.py b/src_old/sh_edraft/logging/model/__init__.py
deleted file mode 100644
index e7bcd608..00000000
--- a/src_old/sh_edraft/logging/model/__init__.py
+++ /dev/null
@@ -1,28 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.logging.model 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.logging.model'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-from .logging_level import LoggingLevel
-from .logging_settings import LoggingSettings
-from .logging_settings_name import LoggingSettingsName
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/logging/model/logging_level.py b/src_old/sh_edraft/logging/model/logging_level.py
deleted file mode 100644
index ceb7b4c7..00000000
--- a/src_old/sh_edraft/logging/model/logging_level.py
+++ /dev/null
@@ -1,12 +0,0 @@
-from enum import Enum
-
-
-class LoggingLevel(Enum):
-
-    OFF = 0         # Nothing
-    FATAL = 1       # Error that cause exit
-    ERROR = 2       # Non fatal error
-    WARN = 3        # Error that can later be fatal
-    INFO = 4        # Normal information's
-    DEBUG = 5       # Detailed app state
-    TRACE = 6       # Detailed app information's
diff --git a/src_old/sh_edraft/logging/model/logging_settings.py b/src_old/sh_edraft/logging/model/logging_settings.py
deleted file mode 100644
index 563369cc..00000000
--- a/src_old/sh_edraft/logging/model/logging_settings.py
+++ /dev/null
@@ -1,62 +0,0 @@
-import traceback
-from typing import Optional
-
-from sh_edraft.configuration.base.configuration_model_base import ConfigurationModelBase
-from sh_edraft.logging.model.logging_settings_name import LoggingSettingsName
-from sh_edraft.logging.model.logging_level import LoggingLevel
-from sh_edraft.console.console import Console
-from sh_edraft.console.model.foreground_color import ForegroundColor
-
-
-class LoggingSettings(ConfigurationModelBase):
-
-    def __init__(self):
-        ConfigurationModelBase.__init__(self)
-        self._path: Optional[str] = None
-        self._filename: Optional[str] = None
-        self._console: Optional[LoggingLevel] = None
-        self._level: Optional[LoggingLevel] = None
-
-    @property
-    def path(self) -> str:
-        return self._path
-
-    @path.setter
-    def path(self, path: str) -> None:
-        self._path = path
-
-    @property
-    def filename(self) -> str:
-        return self._filename
-
-    @filename.setter
-    def filename(self, filename: str) -> None:
-        self._filename = filename
-
-    @property
-    def console(self) -> LoggingLevel:
-        return self._console
-
-    @console.setter
-    def console(self, console: LoggingLevel) -> None:
-        self._console = console
-
-    @property
-    def level(self) -> LoggingLevel:
-        return self._level
-
-    @level.setter
-    def level(self, level: LoggingLevel) -> None:
-        self._level = level
-
-    def from_dict(self, settings: dict):
-        try:
-            self._path = settings[LoggingSettingsName.path.value]
-            self._filename = settings[LoggingSettingsName.filename.value]
-            self._console = LoggingLevel[settings[LoggingSettingsName.console_level.value]]
-            self._level = LoggingLevel[settings[LoggingSettingsName.file_level.value]]
-        except Exception as e:
-            Console.set_foreground_color(ForegroundColor.red)
-            Console.write_line(f'[ ERROR ] [ {__name__} ]: Reading error in {self.__name__} settings')
-            Console.write_line(f'[ EXCEPTION ] [ {__name__} ]: {e} -> {traceback.format_exc()}')
-            Console.set_foreground_color(ForegroundColor.default)
diff --git a/src_old/sh_edraft/logging/model/logging_settings_name.py b/src_old/sh_edraft/logging/model/logging_settings_name.py
deleted file mode 100644
index 323e5735..00000000
--- a/src_old/sh_edraft/logging/model/logging_settings_name.py
+++ /dev/null
@@ -1,9 +0,0 @@
-from enum import Enum
-
-
-class LoggingSettingsName(Enum):
-
-    path = 'Path'
-    filename = 'Filename'
-    console_level = 'ConsoleLogLevel'
-    file_level = 'FileLogLevel'
diff --git a/src_old/sh_edraft/mailing/__init__.py b/src_old/sh_edraft/mailing/__init__.py
deleted file mode 100644
index db3f827b..00000000
--- a/src_old/sh_edraft/mailing/__init__.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.mailing 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.mailing'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.10'
-
-from collections import namedtuple
-
-# imports:
-from .email_client import EMailClient
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=10)
diff --git a/src_old/sh_edraft/mailing/base/__init__.py b/src_old/sh_edraft/mailing/base/__init__.py
deleted file mode 100644
index 587aab2c..00000000
--- a/src_old/sh_edraft/mailing/base/__init__.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.mailing.base 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.mailing.base'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.10'
-
-from collections import namedtuple
-
-# imports:
-from .email_client_base import EMailClientBase
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=10)
diff --git a/src_old/sh_edraft/mailing/base/email_client_base.py b/src_old/sh_edraft/mailing/base/email_client_base.py
deleted file mode 100644
index bbb98879..00000000
--- a/src_old/sh_edraft/mailing/base/email_client_base.py
+++ /dev/null
@@ -1,17 +0,0 @@
-from abc import abstractmethod
-
-from sh_edraft.mailing.model.email import EMail
-from sh_edraft.service.base.service_base import ServiceBase
-
-
-class EMailClientBase(ServiceBase):
-
-    @abstractmethod
-    def __init__(self):
-        ServiceBase.__init__(self)
-
-    @abstractmethod
-    def connect(self): pass
-
-    @abstractmethod
-    def send_mail(self, email: EMail): pass
diff --git a/src_old/sh_edraft/mailing/email_client.py b/src_old/sh_edraft/mailing/email_client.py
deleted file mode 100644
index cc6296ee..00000000
--- a/src_old/sh_edraft/mailing/email_client.py
+++ /dev/null
@@ -1,71 +0,0 @@
-import ssl
-from smtplib import SMTP
-from typing import Optional
-
-from sh_edraft.environment.base.environment_base import EnvironmentBase
-from sh_edraft.logging.base.logger_base import LoggerBase
-from sh_edraft.mailing.base.email_client_base import EMailClientBase
-from sh_edraft.mailing.model.email import EMail
-from sh_edraft.mailing.model.email_client_settings import EMailClientSettings
-from sh_edraft.service.base.service_base import ServiceBase
-from sh_edraft.utils.credential_manager import CredentialManager
-
-
-class EMailClient(EMailClientBase):
-
-    def __init__(self, environment: EnvironmentBase, logger: LoggerBase, mail_settings: EMailClientSettings):
-        ServiceBase.__init__(self)
-
-        self._environment = environment
-        self._mail_settings = mail_settings
-        self._logger = logger
-
-        self._server: Optional[SMTP] = None
-
-        self.create()
-
-    def create(self):
-        self._logger.trace(__name__, f'Started {__name__}.create')
-        self.connect()
-        self._logger.trace(__name__, f'Stopped {__name__}.create')
-
-    def connect(self):
-        self._logger.trace(__name__, f'Started {__name__}.connect')
-        try:
-            self._logger.debug(__name__, f'Try to connect to {self._mail_settings.host}:{self._mail_settings.port}')
-            self._server = SMTP(self._mail_settings.host, self._mail_settings.port)
-            self._logger.info(__name__, f'Connected to {self._mail_settings.host}:{self._mail_settings.port}')
-
-            self._logger.debug(__name__, 'Try to start tls')
-            self._server.starttls(context=ssl.create_default_context())
-            self._logger.info(__name__, 'Started tls')
-        except Exception as e:
-            self._logger.error(__name__, 'Cannot connect to mail server', e)
-
-        self._logger.trace(__name__, f'Stopped {__name__}.connect')
-
-    def login(self):
-        self._logger.trace(__name__, f'Started {__name__}.login')
-        try:
-            self._logger.debug(__name__, f'Try to login {self._mail_settings.user_name}@{self._mail_settings.host}:{self._mail_settings.port}')
-            self._server.login(self._mail_settings.user_name, CredentialManager.decrypt(self._mail_settings.credentials))
-            self._logger.info(__name__, f'Logged on as {self._mail_settings.user_name} to {self._mail_settings.host}:{self._mail_settings.port}')
-        except Exception as e:
-            self._logger.error(__name__, 'Cannot login to mail server', e)
-
-        self._logger.trace(__name__, f'Stopped {__name__}.login')
-
-    def send_mail(self, email: EMail):
-        self._logger.trace(__name__, f'Started {__name__}.send_mail')
-        try:
-            self.login()
-            email.body += f'\n\nDies ist eine automatische E-Mail.' \
-                          f'\nGesendet von {self._environment.application_name}-{self._environment.environment_name}@{self._environment.host_name} für ' \
-                          f'{self._environment.customer}.'
-
-            self._logger.debug(__name__, f'Try to send email to {email.receiver_list}')
-            self._server.sendmail(self._mail_settings.user_name, email.receiver_list, email.get_content(self._mail_settings.user_name))
-            self._logger.info(__name__, f'Sent email to {email.receiver_list}')
-        except Exception as e:
-            self._logger.error(__name__, f'Cannot send mail to {email.receiver_list}', e)
-        self._logger.trace(__name__, f'Stopped {__name__}.send_mail')
diff --git a/src_old/sh_edraft/mailing/model/__init__.py b/src_old/sh_edraft/mailing/model/__init__.py
deleted file mode 100644
index ee1b8eb3..00000000
--- a/src_old/sh_edraft/mailing/model/__init__.py
+++ /dev/null
@@ -1,28 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.mailing.model 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.mailing.model'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.10'
-
-from collections import namedtuple
-
-# imports:
-from .email import EMail
-from .email_client_settings_name import EMailClientSettingsName
-from .email_client_settings import EMailClientSettings
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=10)
diff --git a/src_old/sh_edraft/mailing/model/email.py b/src_old/sh_edraft/mailing/model/email.py
deleted file mode 100644
index de49639d..00000000
--- a/src_old/sh_edraft/mailing/model/email.py
+++ /dev/null
@@ -1,86 +0,0 @@
-import re
-
-
-class EMail:
-
-    def __init__(self, header: list[str] = None, subject: str = None, body: str = None, transceiver: str = None, receiver: list[str] = None):
-        self._header: list[str] = header
-
-        self._subject: str = subject
-        self._body: str = body
-
-        self._transceiver: str = transceiver
-        self._receiver: list[str] = receiver
-
-    @property
-    def header(self) -> str:
-        return '\r\n'.join(self._header)
-
-    @property
-    def header_list(self) -> list[str]:
-        return self._header
-
-    @header.setter
-    def header(self, header: list[str]):
-        self._header = header
-
-    @property
-    def subject(self) -> str:
-        return self._subject
-
-    @subject.setter
-    def subject(self, subject: str):
-        self._subject = subject
-
-    @property
-    def body(self) -> str:
-        return self._body
-
-    @body.setter
-    def body(self, body: str):
-        self._body = body
-
-    @property
-    def transceiver(self) -> str:
-        return self._transceiver
-
-    @transceiver.setter
-    def transceiver(self, transceiver: str):
-        if self.check_mail(transceiver):
-            self._transceiver = transceiver
-        else:
-            raise Exception(f'Invalid email: {transceiver}')
-
-    @property
-    def receiver(self) -> str:
-        return ','.join(self._receiver)
-
-    @property
-    def receiver_list(self) -> list[str]:
-        return self._receiver
-
-    @receiver.setter
-    def receiver(self, receiver: list[str]):
-        self._receiver = receiver
-
-    @staticmethod
-    def check_mail(address: str) -> bool:
-        return bool(re.search('^\\w+([.-]?\\w+)*@\\w+([.-]?\\w+)*(.\\w{2,3})+$', address))
-
-    def add_header(self, header: str):
-        if self._header is None:
-            self._header = []
-
-        self._header.append(header)
-
-    def add_receiver(self, receiver: str):
-        if self._receiver is None:
-            self._receiver = []
-
-        if self.check_mail(receiver):
-            self._receiver.append(receiver)
-        else:
-            raise Exception(f'Invalid email: {receiver}')
-
-    def get_content(self, transceiver: str):
-        return str(f'From: {transceiver}\r\nTo: {self.receiver}\r\n{self.header}\r\nSubject: {self.subject}\r\n{self.body}').encode('utf-8')
diff --git a/src_old/sh_edraft/mailing/model/email_client_settings.py b/src_old/sh_edraft/mailing/model/email_client_settings.py
deleted file mode 100644
index d9755919..00000000
--- a/src_old/sh_edraft/mailing/model/email_client_settings.py
+++ /dev/null
@@ -1,59 +0,0 @@
-import traceback
-
-from sh_edraft.configuration.base.configuration_model_base import ConfigurationModelBase
-from sh_edraft.console.console import Console
-from sh_edraft.mailing.model.email_client_settings_name import EMailClientSettingsName
-
-
-class EMailClientSettings(ConfigurationModelBase):
-
-    def __init__(self):
-        ConfigurationModelBase.__init__(self)
-
-        self._host: str = ''
-        self._port: int = 0
-        self._user_name: str = ''
-        self._credentials: str = ''
-
-    @property
-    def host(self) -> str:
-        return self._host
-
-    @host.setter
-    def host(self, host: str) -> None:
-        self._host = host
-
-    @property
-    def port(self) -> int:
-        return self._port
-
-    @port.setter
-    def port(self, port: int) -> None:
-        self._port = port
-
-    @property
-    def user_name(self) -> str:
-        return self._user_name
-
-    @user_name.setter
-    def user_name(self, user_name: str) -> None:
-        self._user_name = user_name
-
-    @property
-    def credentials(self) -> str:
-        return self._credentials
-
-    @credentials.setter
-    def credentials(self, credentials: str) -> None:
-        self._credentials = credentials
-
-    def from_dict(self, settings: dict):
-        try:
-            self._host = settings[EMailClientSettingsName.host.value]
-            self._port = settings[EMailClientSettingsName.port.value]
-            self._user_name = settings[EMailClientSettingsName.user_name.value]
-            self._credentials = settings[EMailClientSettingsName.credentials.value]
-        except Exception as e:
-            Console.error(f'[ ERROR ] [ {__name__} ]: Reading error in {self.__name__} settings')
-            Console.error(f'[ EXCEPTION ] [ {__name__} ]: {e} -> {traceback.format_exc()}')
-
diff --git a/src_old/sh_edraft/mailing/model/email_client_settings_name.py b/src_old/sh_edraft/mailing/model/email_client_settings_name.py
deleted file mode 100644
index 665c64b6..00000000
--- a/src_old/sh_edraft/mailing/model/email_client_settings_name.py
+++ /dev/null
@@ -1,9 +0,0 @@
-from enum import Enum
-
-
-class EMailClientSettingsName(Enum):
-
-    host = 'Host'
-    port = 'Port'
-    user_name = 'UserName'
-    credentials = 'Credentials'
diff --git a/src_old/sh_edraft/publish/base/publisher_base.py b/src_old/sh_edraft/publish/base/publisher_base.py
deleted file mode 100644
index 092dec3d..00000000
--- a/src_old/sh_edraft/publish/base/publisher_base.py
+++ /dev/null
@@ -1,30 +0,0 @@
-from abc import abstractmethod
-
-from sh_edraft.service.base.service_base import ServiceBase
-
-
-class PublisherBase(ServiceBase):
-
-    @abstractmethod
-    def __init__(self):
-        ServiceBase.__init__(self)
-
-    @property
-    @abstractmethod
-    def source_path(self) -> str: pass
-
-    @property
-    @abstractmethod
-    def dist_path(self) -> str: pass
-
-    @abstractmethod
-    def include(self, path: str): pass
-
-    @abstractmethod
-    def exclude(self, path: str): pass
-
-    @abstractmethod
-    def build(self): pass
-
-    @abstractmethod
-    def publish(self): pass
diff --git a/src_old/sh_edraft/publish/model/publish_settings_model.py b/src_old/sh_edraft/publish/model/publish_settings_model.py
deleted file mode 100644
index 3a1f8ce5..00000000
--- a/src_old/sh_edraft/publish/model/publish_settings_model.py
+++ /dev/null
@@ -1,90 +0,0 @@
-import traceback
-from typing import Optional
-
-from sh_edraft.configuration.base.configuration_model_base import ConfigurationModelBase
-from sh_edraft.publish.model.template import Template
-from sh_edraft.publish.model.publish_settings_name import PublishSettingsName
-from sh_edraft.console.console import Console
-from sh_edraft.console.model.foreground_color import ForegroundColor
-
-
-class PublishSettings(ConfigurationModelBase):
-
-    def __init__(self):
-        ConfigurationModelBase.__init__(self)
-
-        self._source_path: Optional[str] = None
-        self._dist_path: Optional[str] = None
-        self._templates: list[Template] = []
-
-        self._included_files: list[str] = []
-        self._excluded_files: list[str] = []
-
-        self._template_ending: Optional[str] = None
-
-    @property
-    def source_path(self) -> str:
-        return self._source_path
-
-    @source_path.setter
-    def source_path(self, source_path: str):
-        self._source_path = source_path
-
-    @property
-    def dist_path(self) -> str:
-        return self._dist_path
-
-    @dist_path.setter
-    def dist_path(self, dist_path: str):
-        self._dist_path = dist_path
-
-    @property
-    def templates(self) -> list[Template]:
-        return self._templates
-
-    @templates.setter
-    def templates(self, templates: list[Template]):
-        self._templates = templates
-        
-    @property
-    def included_files(self) -> list[str]:
-        return self._included_files
-    
-    @included_files.setter
-    def included_files(self, included_files: list[str]):
-        self._included_files = included_files
-
-    @property
-    def excluded_files(self) -> list[str]:
-        return self._excluded_files
-
-    @excluded_files.setter
-    def excluded_files(self, excluded_files: list[str]):
-        self._excluded_files = excluded_files
-        
-    @property
-    def template_ending(self) -> str:
-        return self._template_ending
-    
-    @template_ending.setter
-    def template_ending(self, template_ending: str):
-        self._template_ending = template_ending
-
-    def from_dict(self, settings: dict):
-        try:
-            self._source_path = settings[PublishSettingsName.source_path.value]
-            self._dist_path = settings[PublishSettingsName.dist_path.value]
-            for template in settings[PublishSettingsName.templates.value]:
-                temp = Template()
-                temp.from_dict(template)
-                self._templates.append(temp)
-
-            self._included_files = settings[PublishSettingsName.included_files.value]
-            self._excluded_files = settings[PublishSettingsName.excluded_files.value]
-            self._template_ending = settings[PublishSettingsName.template_ending.value]
-        except Exception as e:
-            Console.set_foreground_color(ForegroundColor.red)
-            Console.write_line(
-                f'[ ERROR ] [ {__name__} ]: Reading error in {PublishSettingsName.publish.value} settings')
-            Console.write_line(f'[ EXCEPTION ] [ {__name__} ]: {e} -> {traceback.format_exc()}')
-            Console.set_foreground_color(ForegroundColor.default)
diff --git a/src_old/sh_edraft/publish/model/publish_settings_name.py b/src_old/sh_edraft/publish/model/publish_settings_name.py
deleted file mode 100644
index 80033c68..00000000
--- a/src_old/sh_edraft/publish/model/publish_settings_name.py
+++ /dev/null
@@ -1,12 +0,0 @@
-from enum import Enum
-
-
-class PublishSettingsName(Enum):
-
-    publish = 'Publish'
-    source_path = 'SourcePath'
-    dist_path = 'DistPath'
-    templates = 'Templates'
-    included_files = 'IncludedFiles'
-    excluded_files = 'ExcludedFiles'
-    template_ending = 'TemplateEnding'
diff --git a/src_old/sh_edraft/publish/model/template.py b/src_old/sh_edraft/publish/model/template.py
deleted file mode 100644
index b98a4738..00000000
--- a/src_old/sh_edraft/publish/model/template.py
+++ /dev/null
@@ -1,122 +0,0 @@
-from typing import Optional
-
-from sh_edraft.coding.model.version import Version
-from sh_edraft.configuration.base.configuration_model_base import ConfigurationModelBase
-from sh_edraft.publish.model.template_enum import TemplateEnum
-
-
-class Template(ConfigurationModelBase):
-
-    def __init__(
-            self,
-            template_path: Optional[str] = None,
-            name: Optional[str] = None,
-            description: Optional[str] = None,
-            long_description: Optional[str] = None,
-            copyright_date: Optional[str] = None,
-            copyright_name: Optional[str] = None,
-            license_name: Optional[str] = None,
-            license_description: Optional[str] = None,
-            title: Optional[str] = None,
-            author: Optional[str] = None,
-            version: Optional[Version] = Version()
-    ):
-        ConfigurationModelBase.__init__(self)
-        self._template_path: Optional[str] = template_path
-        self._name: Optional[str] = name
-        self._description: Optional[str] = description
-        self._long_description: Optional[str] = long_description
-        self._copyright_date: Optional[str] = copyright_date
-        self._copyright_name: Optional[str] = copyright_name
-        self._license_name: Optional[str] = license_name
-        self._license_description: Optional[str] = license_description
-        self._title: Optional[str] = title
-        self._author: Optional[str] = author
-
-        self._version: Optional[Version] = version
-        
-        self._file_content: Optional[str] = None
-
-    @property
-    def template_path(self) -> Optional[str]:
-        return self._template_path
-
-    @property
-    def name(self) -> Optional[str]:
-        return self._name
-
-    @property
-    def description(self) -> Optional[str]:
-        return self._description
-
-    @property
-    def long_description(self) -> Optional[str]:
-        return self._long_description
-
-    @property
-    def copyright_date(self) -> Optional[str]:
-        return self._copyright_date
-
-    @property
-    def copyright_name(self) -> Optional[str]:
-        return self._copyright_name
-
-    @property
-    def license_name(self) -> Optional[str]:
-        return self._license_name
-
-    @property
-    def license_description(self) -> Optional[str]:
-        return self._license_description
-
-    @property
-    def title(self) -> Optional[str]:
-        return self._title
-
-    @property
-    def author(self) -> Optional[str]:
-        return self._author
-
-    @property
-    def version(self) -> Optional[Version]:
-        return self._version
-    
-    @property
-    def file_content(self) -> Optional[str]:
-        return self._file_content
-    
-    @file_content.setter
-    def file_content(self, file_content: Optional[str]):
-        self._file_content = file_content
-
-    def from_dict(self, settings: dict):
-        self._template_path = settings[TemplateEnum.TemplatePath.value]
-        self._name = settings[TemplateEnum.Name.value]
-        self._description = settings[TemplateEnum.Description.value]
-        self._long_description = settings[TemplateEnum.LongDescription.value]
-        self._copyright_date = settings[TemplateEnum.CopyrightDate.value]
-        self._copyright_name = settings[TemplateEnum.CopyrightName.value]
-        self._license_name = settings[TemplateEnum.LicenseName.value]
-        self._license_description = settings[TemplateEnum.LicenseDescription.value]
-        self._title = settings[TemplateEnum.Title.value]
-        self._author = settings[TemplateEnum.Author.value]
-        self._version.from_dict(settings[TemplateEnum.Version.value])
-
-    def to_dict(self) -> dict:
-        version: Optional[dict] = None
-        if self._version is not None:
-            version = self._version.to_dict()
-
-        return {
-            TemplateEnum.TemplatePath.value: self._template_path,
-            TemplateEnum.Name.value: self._name,
-            TemplateEnum.Description.value: self._description,
-            TemplateEnum.LongDescription.value: self._long_description,
-            TemplateEnum.CopyrightDate.value: self._copyright_date,
-            TemplateEnum.CopyrightName.value: self._copyright_name,
-            TemplateEnum.LicenseName.value: self._license_name,
-            TemplateEnum.LicenseDescription.value: self._license_description,
-            TemplateEnum.Title.value: self._title,
-            TemplateEnum.Author.value: self._author,
-            TemplateEnum.Version.value: version
-        }
diff --git a/src_old/sh_edraft/publish/model/template_enum.py b/src_old/sh_edraft/publish/model/template_enum.py
deleted file mode 100644
index f628c4ce..00000000
--- a/src_old/sh_edraft/publish/model/template_enum.py
+++ /dev/null
@@ -1,16 +0,0 @@
-from enum import Enum
-
-
-class TemplateEnum(Enum):
-
-    TemplatePath = 'TemplatePath'
-    Name = 'Name'
-    Description = 'Description'
-    LongDescription = 'LongDescription'
-    CopyrightDate = 'CopyrightDate'
-    CopyrightName = 'CopyrightName'
-    LicenseName = 'LicenseName'
-    LicenseDescription = 'LicenseDescription'
-    Title = 'Title'
-    Author = 'Author'
-    Version = 'Version'
diff --git a/src_old/sh_edraft/publish/publisher.py b/src_old/sh_edraft/publish/publisher.py
deleted file mode 100644
index 2ddd2b15..00000000
--- a/src_old/sh_edraft/publish/publisher.py
+++ /dev/null
@@ -1,279 +0,0 @@
-import os
-import shutil
-from string import Template as stringTemplate
-
-from setuptools import sandbox
-
-from sh_edraft.logging.base.logger_base import LoggerBase
-from sh_edraft.publish.base.publisher_base import PublisherBase
-from sh_edraft.publish.model.publish_settings_model import PublishSettings
-from sh_edraft.publish.model.template import Template
-
-
-class Publisher(PublisherBase):
-
-    def __init__(self, logger: LoggerBase, publish_settings: PublishSettings):
-        PublisherBase.__init__(self)
-
-        self._logger: LoggerBase = logger
-        self._publish_settings: PublishSettings = publish_settings
-
-        self._included_files: list[str] = []
-
-    @property
-    def source_path(self) -> str:
-        return self._publish_settings.source_path
-
-    @property
-    def dist_path(self):
-        return self._publish_settings.dist_path
-
-    def _get_template_output(self, t: Template, name: str, imports: str) -> str:
-        self._logger.trace(__name__, f'Started {__name__}._get_template_output')
-        try:
-            if t.file_content == '':
-                raise Exception(f'Template is empty: {t.template_path}')
-
-            self._logger.trace(__name__, f'Stopped {__name__}._get_template_output')
-            return stringTemplate(t.file_content).substitute(
-                Name=name,
-                Description=t.description,
-                LongDescription=t.long_description,
-                CopyrightDate=t.copyright_date,
-                CopyrightName=t.copyright_name,
-                LicenseName=t.license_name,
-                LicenseDescription=t.license_description,
-                Title=t.title if t.title is not None and t.title != '' else name,
-                Author=t.author,
-                Version=t.version.to_str(),
-                Major=t.version.major,
-                Minor=t.version.minor,
-                Micro=t.version.micro,
-                Imports=imports
-            )
-        except Exception as e:
-            self._logger.fatal(__name__, f'Cannot read Template: {t.template_path}', e)
-            self._logger.trace(__name__, f'Stopped {__name__}._get_template_output')
-
-    def _read_source_path(self):
-        self._logger.trace(__name__, f'Started {__name__}._read_source_path')
-        included_files = self._publish_settings.included_files
-        for included in included_files:
-            if os.path.isdir(included):
-                self._publish_settings.included_files.remove(included)
-
-                for r, d, f in os.walk(included):
-                    for file in f:
-                        rel_path = os.path.relpath(r)
-                        if not rel_path.startswith('.'):
-                            rel_path = f'./{rel_path}'
-
-                        file_path = os.path.join(self._publish_settings.source_path, r, file)
-                        if os.path.isfile(file_path):
-                            self._included_files.append(file_path)
-                        elif os.path.isfile(os.path.join(rel_path, file)):
-                            self._included_files.append(os.path.join(rel_path, file))
-                        else:
-                            self._logger.fatal(__name__, f'File not found: {file}')
-
-            elif os.path.isfile(included):
-                self._included_files.append(included)
-            else:
-                self._logger.fatal(__name__, f'File not found: {included}')
-
-        for r, d, f in os.walk(self._publish_settings.source_path):
-            for file in f:
-                is_file_excluded = False
-                if os.path.join(r, file) in self._publish_settings.excluded_files:
-                    is_file_excluded = True
-                else:
-                    for excluded in self._publish_settings.excluded_files:
-                        if os.path.join(r, file).__contains__(excluded):
-                            is_file_excluded = True
-
-                if not is_file_excluded and file.endswith('.py') or file in self._publish_settings.included_files:
-                    self._included_files.append(os.path.join(r, file))
-
-        self._logger.trace(__name__, f'Stopped {__name__}._read_source_path')
-
-    def _read_templates(self):
-        self._logger.trace(__name__, f'Started {__name__}._read_templates')
-        for t in self._publish_settings.templates:
-            output_template: str = ''
-            if not os.path.isfile(t.template_path):
-                self._logger.fatal(__name__, f'Template not found: {t.template_path}')
-
-            with open(t.template_path) as template:
-                t.file_content = template.read()
-                template.close()
-                if t.file_content == '':
-                    self._logger.fatal(__name__, f'Template is empty: {t.template_path}')
-
-        self._logger.trace(__name__, f'Stopped {__name__}._read_templates')
-
-    def _create_dist_path(self):
-        self._logger.trace(__name__, f'Started {__name__}._create_dist_path')
-        if os.path.isdir(self._publish_settings.dist_path):
-            try:
-                shutil.rmtree(self._publish_settings.dist_path)
-                self._logger.info(__name__, f'Deleted {self._publish_settings.dist_path}')
-            except Exception as e:
-                self._logger.fatal(__name__, f'Cannot delete old dist directory', e)
-
-        if not os.path.isdir(self._publish_settings.dist_path):
-            try:
-                os.makedirs(self._publish_settings.dist_path)
-                self._logger.debug(__name__, f'Created directories: {self._publish_settings.dist_path}')
-                self._logger.info(__name__, f'Created dist directory')
-            except Exception as e:
-                self._logger.fatal(__name__, f'Cannot create dist directory', e)
-
-        self._logger.trace(__name__, f'Stopped {__name__}._create_dist_path')
-
-    @staticmethod
-    def _get_template_name_from_dirs(file: str) -> str:
-        dirs = os.path.dirname(file).split('/')
-        for d in dirs:
-            if d.__contains__('.'):
-                dirs.remove(d)
-
-        if len(dirs) == 0:
-            return os.path.basename(file)
-        else:
-            return '.'.join(dirs)
-
-    def _write_templates(self):
-        self._logger.trace(__name__, f'Started {__name__}._write_templates')
-        for template in self._publish_settings.templates:
-            for file in self._included_files:
-                if os.path.basename(file) == '__init__.py' and file not in self._publish_settings.excluded_files:
-                    template_name = template.name
-                    if template.name == 'all' or template.name == '':
-                        template_name = self._get_template_name_from_dirs(file)
-                    else:
-                        name = self._get_template_name_from_dirs(file)
-
-                        if name.__contains__('.'):
-                            if template.name != name.split('.')[len(name.split('.')) - 1]:
-                                continue
-
-                        else:
-                            if template.name != name:
-                                continue
-
-                    try:
-                        module_file_lines: list[str] = []
-                        module_py_lines: list[str] = []
-                        imports = ''
-                        with open(file, 'r') as py_file:
-                            module_file_lines = py_file.readlines()
-                            py_file.close()
-
-                        if len(module_file_lines) == 0:
-                            with open(file, 'w+') as py_file:
-                                py_file.write(self._get_template_output(template, template_name, '# imports:'))
-                                py_file.close()
-                                self._logger.debug(__name__, f'Written to {file}')
-                        else:
-                            is_started = False
-                            for line in module_file_lines:
-                                if line.__contains__('# imports'):
-                                    is_started = True
-
-                                if (line.__contains__('from') or line.__contains__('import')) and is_started:
-                                    module_py_lines.append(line.replace('\n', ''))
-
-                            if len(module_py_lines) > 0:
-                                imports = '\n'.join(module_py_lines)
-
-                            with open(file, 'w+') as py_file:
-                                py_file.write(self._get_template_output(template, template_name, imports))
-                                py_file.close()
-                                self._logger.debug(__name__, f'Written to {file}')
-
-                    except Exception as e:
-                        self._logger.error(__name__, f'Cannot write to file: {file}', e)
-
-        self._logger.info(__name__, f'Written to all included modules')
-        self._logger.trace(__name__, f'Stopped {__name__}._write_templates')
-
-    def _copy_all_included_files(self):
-        self._logger.trace(__name__, f'Started {__name__}._copy_all_included_files')
-        dist_path = self._publish_settings.dist_path
-        if self._publish_settings.dist_path.endswith('/'):
-            dist_path = dist_path[:len(dist_path) - 1]
-
-        for file in self._included_files:
-            is_file_excluded = False
-            if file in self._publish_settings.excluded_files:
-                is_file_excluded = True
-            else:
-                for excluded in self._publish_settings.excluded_files:
-                    if file.__contains__(excluded):
-                        is_file_excluded = True
-
-            if not is_file_excluded:
-                output_file = ''
-
-                if file.startswith('..'):
-                    output_file = file.replace('..', '')
-                elif file.startswith('.'):
-                    output_file = file.replace('.', '', 1)
-
-                if output_file.__contains__('..'):
-                    output_file = os.path.join(dist_path, os.path.basename(file))
-                else:
-                    output_file = f'{dist_path}{output_file}'
-
-                output_path = os.path.dirname(output_file)
-
-                try:
-                    if not os.path.isdir(output_path):
-                        os.makedirs(output_path, exist_ok=True)
-                except Exception as e:
-                    self._logger.error(__name__, f'Cannot create directories: {output_path}', e)
-
-                try:
-                    shutil.copy(file, output_file)
-                except Exception as e:
-                    self._logger.error(__name__, f'Cannot copy file: {file} to {output_path}', e)
-
-                self._logger.debug(__name__, f'Copied {file} to {output_path}')
-
-        self._logger.info(__name__, f'Copied all included files')
-        self._logger.trace(__name__, f'Stopped {__name__}._copy_all_included_files')
-
-    def include(self, path: str):
-        self._logger.trace(__name__, f'Started {__name__}.include')
-        self._publish_settings.included_files.append(path)
-        self._logger.trace(__name__, f'Stopped {__name__}.include')
-
-    def exclude(self, path: str):
-        self._logger.trace(__name__, f'Started {__name__}.exclude')
-        self._publish_settings.excluded_files.append(path)
-        self._logger.trace(__name__, f'Stopped {__name__}.exclude')
-
-    def create(self):
-        self._logger.trace(__name__, f'Started {__name__}.create')
-        if not self._publish_settings.dist_path.endswith('/'):
-            self._publish_settings.dist_path += '/'
-
-        self._read_source_path()
-        self._read_templates()
-        self._create_dist_path()
-        self._logger.trace(__name__, f'Stopped {__name__}.create')
-
-    def build(self):
-        self._logger.trace(__name__, f'Started {__name__}.build')
-        self._write_templates()
-        self._copy_all_included_files()
-        self._logger.trace(__name__, f'Stopped {__name__}.build')
-
-    def publish(self):
-        self._logger.trace(__name__, f'Started {__name__}.publish')
-        setup_py = os.path.join(self._publish_settings.dist_path, 'setup.py')
-        if not os.path.isfile(setup_py):
-            self._logger.fatal(__name__, f'setup.py not found in {self._publish_settings.dist_path}')
-
-        sandbox.run_setup(os.path.abspath(setup_py), ['sdist', 'bdist_wheel'])
-        self._logger.trace(__name__, f'Stopped {__name__}.publish')
diff --git a/src_old/sh_edraft/service/__init__.py b/src_old/sh_edraft/service/__init__.py
deleted file mode 100644
index 7d487f52..00000000
--- a/src_old/sh_edraft/service/__init__.py
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.service 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.service'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/service/base/__init__.py b/src_old/sh_edraft/service/base/__init__.py
deleted file mode 100644
index 73148fb0..00000000
--- a/src_old/sh_edraft/service/base/__init__.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.service.base 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.service.base'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-from .service_base import ServiceBase
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/service/base/service_base.py b/src_old/sh_edraft/service/base/service_base.py
deleted file mode 100644
index e135c2a9..00000000
--- a/src_old/sh_edraft/service/base/service_base.py
+++ /dev/null
@@ -1,10 +0,0 @@
-from abc import ABC, abstractmethod
-
-
-class ServiceBase(ABC):
-
-    @abstractmethod
-    def __init__(self): pass
-
-    @abstractmethod
-    def create(self): pass
diff --git a/src_old/sh_edraft/service/providing/__init__.py b/src_old/sh_edraft/service/providing/__init__.py
deleted file mode 100644
index a532dc9d..00000000
--- a/src_old/sh_edraft/service/providing/__init__.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.service.providing 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.service.providing'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.10'
-
-from collections import namedtuple
-
-# imports:
-from .service_provider import ServiceProvider
-from .service_provider import ServiceProviderBase
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=10)
diff --git a/src_old/sh_edraft/service/providing/base/__init__.py b/src_old/sh_edraft/service/providing/base/__init__.py
deleted file mode 100644
index 740e8631..00000000
--- a/src_old/sh_edraft/service/providing/base/__init__.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.service.providing.base 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.service.providing.base'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-from .service_provider_base import ServiceProviderBase
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/service/providing/base/service_provider_base.py b/src_old/sh_edraft/service/providing/base/service_provider_base.py
deleted file mode 100644
index 28c986f0..00000000
--- a/src_old/sh_edraft/service/providing/base/service_provider_base.py
+++ /dev/null
@@ -1,33 +0,0 @@
-from abc import abstractmethod, ABC
-from collections import Callable
-from typing import Type
-
-from sh_edraft.database.context.base.database_context_base import DatabaseContextBase
-from sh_edraft.service.base.service_base import ServiceBase
-
-
-class ServiceProviderBase(ABC):
-
-    @abstractmethod
-    def __init__(self): pass
-
-    @abstractmethod
-    def add_db_context(self, db_context: Type[DatabaseContextBase]): pass
-
-    @abstractmethod
-    def get_db_context(self) -> Callable[DatabaseContextBase]: pass
-
-    @abstractmethod
-    def add_transient(self, service_type: Type[ServiceBase], service: Type[ServiceBase]): pass
-
-    @abstractmethod
-    def add_scoped(self, service_type: Type[ServiceBase], service: Type[ServiceBase]): pass
-
-    @abstractmethod
-    def add_singleton(self, service_type: Type[ServiceBase], service: Callable[ServiceBase]): pass
-
-    @abstractmethod
-    def get_service(self, instance_type: Type[ServiceBase]) -> Callable[ServiceBase]: pass
-
-    @abstractmethod
-    def remove_service(self, instance_type: type): pass
diff --git a/src_old/sh_edraft/service/providing/model/__init__.py b/src_old/sh_edraft/service/providing/model/__init__.py
deleted file mode 100644
index 779edb8d..00000000
--- a/src_old/sh_edraft/service/providing/model/__init__.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.service.providing.model 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.service.providing.model'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-from .provide_state import ProvideState
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/service/providing/model/provide_state.py b/src_old/sh_edraft/service/providing/model/provide_state.py
deleted file mode 100644
index 52d0af05..00000000
--- a/src_old/sh_edraft/service/providing/model/provide_state.py
+++ /dev/null
@@ -1,18 +0,0 @@
-from typing import Type
-
-from sh_edraft.service.base.service_base import ServiceBase
-
-
-class ProvideState:
-
-    def __init__(self, service: Type[ServiceBase] = None, args: tuple = None):
-        self._service: Type[ServiceBase] = service
-        self._args: tuple = args
-
-    @property
-    def service(self):
-        return self._service
-
-    @property
-    def args(self) -> tuple:
-        return self._args
diff --git a/src_old/sh_edraft/service/providing/service_provider.py b/src_old/sh_edraft/service/providing/service_provider.py
deleted file mode 100644
index 2ba39e4c..00000000
--- a/src_old/sh_edraft/service/providing/service_provider.py
+++ /dev/null
@@ -1,95 +0,0 @@
-from collections import Callable
-from inspect import signature, Parameter
-from typing import Type, Optional
-
-from sh_edraft.configuration.base.configuration_model_base import ConfigurationModelBase
-from sh_edraft.database.context.base.database_context_base import DatabaseContextBase
-from sh_edraft.environment.base import EnvironmentBase
-from sh_edraft.hosting.base.application_runtime_base import ApplicationRuntimeBase
-from sh_edraft.service.providing.base.service_provider_base import ServiceProviderBase
-from sh_edraft.service.base.service_base import ServiceBase
-
-
-class ServiceProvider(ServiceProviderBase):
-
-    def __init__(self, app_runtime: ApplicationRuntimeBase):
-        ServiceProviderBase.__init__(self)
-        self._app_runtime: ApplicationRuntimeBase = app_runtime
-        self._database_context: Optional[DatabaseContextBase] = None
-
-        self._transient_services: dict[Type[ServiceBase], Type[ServiceBase]] = {}
-        self._scoped_services: dict[Type[ServiceBase], Type[ServiceBase]] = {}
-        self._singleton_services: dict[Type[ServiceBase], ServiceBase] = {}
-
-    def create(self): pass
-
-    def _create_instance(self, service: Callable[ServiceBase]) -> ServiceBase:
-        sig = signature(service.__init__)
-        params = []
-        for param in sig.parameters.items():
-            parameter = param[1]
-            if parameter.name != 'self' and parameter.annotation != Parameter.empty:
-                if issubclass(parameter.annotation, ApplicationRuntimeBase):
-                    params.append(self._app_runtime)
-
-                elif issubclass(parameter.annotation, EnvironmentBase):
-                    params.append(self._app_runtime.configuration.environment)
-
-                elif issubclass(parameter.annotation, DatabaseContextBase):
-                    params.append(self._database_context)
-
-                elif issubclass(parameter.annotation, ServiceBase):
-                    params.append(self.get_service(parameter.annotation))
-
-                elif issubclass(parameter.annotation, ConfigurationModelBase):
-                    params.append(self._app_runtime.configuration.get_configuration(parameter.annotation))
-
-        return service(*params)
-
-    def add_db_context(self, db_context: Type[DatabaseContextBase]):
-        self._database_context = self._create_instance(db_context)
-
-    def get_db_context(self) -> Callable[DatabaseContextBase]:
-        return self._database_context
-
-    def add_transient(self, service_type: Type[ServiceBase], service: Type[ServiceBase]):
-        self._transient_services[service_type] = service
-
-    def add_scoped(self, service_type: Type[ServiceBase], service: Type[ServiceBase]):
-        self._scoped_services[service_type] = service
-
-    def add_singleton(self, service_type: Type[ServiceBase], service: Callable[ServiceBase]):
-        for known_service in self._singleton_services:
-            if type(known_service) == service_type:
-                raise Exception(f'Service with type {service_type} already exists')
-
-        self._singleton_services[service_type] = self._create_instance(service)
-
-    def get_service(self, instance_type: Type[ServiceBase]) -> Callable[ServiceBase]:
-        for service in self._transient_services:
-            if service == instance_type and isinstance(self._transient_services[service], type(instance_type)):
-                return self._create_instance(self._transient_services[service])
-
-        for service in self._scoped_services:
-            if service == instance_type and isinstance(self._scoped_services[service], type(instance_type)):
-                return self._create_instance(self._scoped_services[service])
-
-        for service in self._singleton_services:
-            if service == instance_type and isinstance(self._singleton_services[service], instance_type):
-                return self._singleton_services[service]
-
-    def remove_service(self, instance_type: Type[ServiceBase]):
-        for service in self._transient_services:
-            if service == instance_type and isinstance(self._transient_services[service], type(instance_type)):
-                del self._transient_services[service]
-                return
-
-        for service in self._scoped_services:
-            if service == instance_type and isinstance(self._scoped_services[service], type(instance_type)):
-                del self._scoped_services[service]
-                return
-
-        for service in self._singleton_services:
-            if service == instance_type and isinstance(self._singleton_services[service], instance_type):
-                del self._singleton_services[service]
-                return
diff --git a/src_old/sh_edraft/time/__init__.py b/src_old/sh_edraft/time/__init__.py
deleted file mode 100644
index d8460af8..00000000
--- a/src_old/sh_edraft/time/__init__.py
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.time 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.time'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/time/model/__init__.py b/src_old/sh_edraft/time/model/__init__.py
deleted file mode 100644
index 1056120c..00000000
--- a/src_old/sh_edraft/time/model/__init__.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.time.model 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.time.model'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-from .time_format_settings import TimeFormatSettings
-from .time_format_settings_names import TimeFormatSettingsNames
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/time/model/time_format_settings.py b/src_old/sh_edraft/time/model/time_format_settings.py
deleted file mode 100644
index e4be7511..00000000
--- a/src_old/sh_edraft/time/model/time_format_settings.py
+++ /dev/null
@@ -1,61 +0,0 @@
-import traceback
-from typing import Optional
-
-from sh_edraft.configuration.base.configuration_model_base import ConfigurationModelBase
-from sh_edraft.time.model.time_format_settings_names import TimeFormatSettingsNames
-from sh_edraft.console.console import Console
-from sh_edraft.console.model.foreground_color import ForegroundColor
-
-
-class TimeFormatSettings(ConfigurationModelBase):
-
-    def __init__(self):
-        ConfigurationModelBase.__init__(self)
-        self._date_format: Optional[str] = None
-        self._time_format: Optional[str] = None
-        self._date_time_format: Optional[str] = None
-        self._date_time_log_format: Optional[str] = None
-
-    @property
-    def date_format(self) -> str:
-        return self._date_format
-
-    @date_format.setter
-    def date_format(self, date_format: str) -> None:
-        self._date_format = date_format
-
-    @property
-    def time_format(self) -> str:
-        return self._time_format
-
-    @time_format.setter
-    def time_format(self, time_format: str):
-        self._time_format = time_format
-
-    @property
-    def date_time_format(self) -> str:
-        return self._date_time_format
-
-    @date_time_format.setter
-    def date_time_format(self, date_time_format: str) -> None:
-        self._date_time_format = date_time_format
-
-    @property
-    def date_time_log_format(self):
-        return self._date_time_log_format
-
-    @date_time_log_format.setter
-    def date_time_log_format(self, date_time_now_format: str) -> None:
-        self._date_time_log_format = date_time_now_format
-
-    def from_dict(self, settings: dict):
-        try:
-            self._date_format = settings[TimeFormatSettingsNames.date_format.value]
-            self._time_format = settings[TimeFormatSettingsNames.time_format.value]
-            self._date_time_format = settings[TimeFormatSettingsNames.date_time_format.value]
-            self._date_time_log_format = settings[TimeFormatSettingsNames.date_time_log_format.value]
-        except Exception as e:
-            Console.set_foreground_color(ForegroundColor.red)
-            Console.write_line(f'[ ERROR ] [ {__name__} ]: Reading error in {self.__name__} settings')
-            Console.write_line(f'[ EXCEPTION ] [ {__name__} ]: {e} -> {traceback.format_exc()}')
-            Console.set_foreground_color(ForegroundColor.default)
diff --git a/src_old/sh_edraft/time/model/time_format_settings_names.py b/src_old/sh_edraft/time/model/time_format_settings_names.py
deleted file mode 100644
index 3858de10..00000000
--- a/src_old/sh_edraft/time/model/time_format_settings_names.py
+++ /dev/null
@@ -1,9 +0,0 @@
-from enum import Enum
-
-
-class TimeFormatSettingsNames(Enum):
-
-    date_format = 'DateFormat'
-    time_format = 'TimeFormat'
-    date_time_format = 'DateTimeFormat'
-    date_time_log_format = 'DateTimeLogFormat'
diff --git a/src_old/sh_edraft/utils/__init__.py b/src_old/sh_edraft/utils/__init__.py
deleted file mode 100644
index ab011b6e..00000000
--- a/src_old/sh_edraft/utils/__init__.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-sh_edraft.utils 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'sh_edraft.utils'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-from .credential_manager import CredentialManager
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/sh_edraft/utils/credential_manager.py b/src_old/sh_edraft/utils/credential_manager.py
deleted file mode 100644
index 7f9977d1..00000000
--- a/src_old/sh_edraft/utils/credential_manager.py
+++ /dev/null
@@ -1,17 +0,0 @@
-import base64
-
-
-class CredentialManager:
-
-    @staticmethod
-    def encrypt(string: str) -> str:
-        return base64.b64encode(string.encode('utf-8')).decode('utf-8')
-
-    @staticmethod
-    def decrypt(string: str) -> str:
-        return base64.b64decode(string).decode('utf-8')
-
-    @staticmethod
-    def build_string(string: str, credentials: str):
-        return string.replace('$credentials', CredentialManager.decrypt(credentials))
-
diff --git a/src_old/tests/__init__.py b/src_old/tests/__init__.py
deleted file mode 100644
index 924bb32a..00000000
--- a/src_old/tests/__init__.py
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-tests 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'tests'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/tests/appsettings.edrafts-lapi.json b/src_old/tests/appsettings.edrafts-lapi.json
deleted file mode 100644
index 9af6f6c0..00000000
--- a/src_old/tests/appsettings.edrafts-lapi.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-  "TimeFormatSettings": {
-    "DateFormat": "%Y-%m-%d",
-    "TimeFormat": "%H:%M:%S",
-    "DateTimeFormat": "%Y-%m-%d %H:%M:%S.%f",
-    "DateTimeLogFormat": "%Y-%m-%d_%H-%M-%S"
-  },
-  "LoggingSettings": {
-    "Path": "logs/",
-    "Filename": "log_$start_time.log",
-    "ConsoleLogLevel": "TRACE",
-    "FileLogLevel": "TRACE"
-  },
-  "EMailClientSettings": {
-    "Host": "mail.sh-edraft.de",
-    "Port": "587",
-    "UserName": "dev-srv@sh-edraft.de",
-    "Credentials": "RmBOQX1eNFYiYjgsSid3fV1nelc2WA=="
-  }
-}
\ No newline at end of file
diff --git a/src_old/tests/appsettings.edrafts-pc.json b/src_old/tests/appsettings.edrafts-pc.json
deleted file mode 100644
index 9af6f6c0..00000000
--- a/src_old/tests/appsettings.edrafts-pc.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-  "TimeFormatSettings": {
-    "DateFormat": "%Y-%m-%d",
-    "TimeFormat": "%H:%M:%S",
-    "DateTimeFormat": "%Y-%m-%d %H:%M:%S.%f",
-    "DateTimeLogFormat": "%Y-%m-%d_%H-%M-%S"
-  },
-  "LoggingSettings": {
-    "Path": "logs/",
-    "Filename": "log_$start_time.log",
-    "ConsoleLogLevel": "TRACE",
-    "FileLogLevel": "TRACE"
-  },
-  "EMailClientSettings": {
-    "Host": "mail.sh-edraft.de",
-    "Port": "587",
-    "UserName": "dev-srv@sh-edraft.de",
-    "Credentials": "RmBOQX1eNFYiYjgsSid3fV1nelc2WA=="
-  }
-}
\ No newline at end of file
diff --git a/src_old/tests/appsettings.json b/src_old/tests/appsettings.json
deleted file mode 100644
index fd8ddf6c..00000000
--- a/src_old/tests/appsettings.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "TimeFormatSettings": {
-    "DateFormat": "%Y-%m-%d",
-    "TimeFormat": "%H:%M:%S",
-    "DateTimeFormat": "%Y-%m-%d %H:%M:%S.%f",
-    "DateTimeLogFormat": "%Y-%m-%d_%H-%M-%S"
-  },
-
-  "LoggingSettings": {
-    "Path": "logs/",
-    "Filename": "log_$start_time.log",
-    "ConsoleLogLevel": "ERROR",
-    "FileLogLevel": "WARN"
-  }
-}
\ No newline at end of file
diff --git a/src_old/tests/appsettings.testing.json b/src_old/tests/appsettings.testing.json
deleted file mode 100644
index d134912e..00000000
--- a/src_old/tests/appsettings.testing.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
-  "LoggingSettings": {
-    "Path": "logs/",
-    "Filename": "log_$start_time.log",
-    "ConsoleLogLevel": "TRACE",
-    "FileLogLevel": "TRACE"
-  },
-
-  "DatabaseSettings": {
-    "ConnectionString": "mysql+mysqlconnector://sh_cpl:$credentials@localhost/sh_cpl",
-    "Credentials": "MHZhc0Y2bjhKc1VUMWV0Qw==",
-    "Encoding": "utf8mb4"
-  }
-}
\ No newline at end of file
diff --git a/src_old/tests/build.json b/src_old/tests/build.json
deleted file mode 100644
index 3921c95f..00000000
--- a/src_old/tests/build.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{
-  "TimeFormatSettings": {
-    "DateFormat": "%Y-%m-%d",
-    "TimeFormat": "%H:%M:%S",
-    "DateTimeFormat": "%Y-%m-%d %H:%M:%S.%f",
-    "DateTimeLogFormat": "%Y-%m-%d_%H-%M-%S"
-  },
-  "LoggingSettings": {
-    "Path": "../../build_test/logs/",
-    "Filename": "log_$start_time.log",
-    "ConsoleLogLevel": "INFO",
-    "FileLogLevel": "TRACE"
-  },
-  "PublishSettings": {
-    "SourcePath": "./",
-    "DistPath": "../../build_test/dist",
-    "Templates": [
-      {
-        "TemplatePath": "../../publish_templates/all_template.txt",
-        "Name": "all",
-        "Description": "",
-        "LongDescription": "",
-        "CopyrightDate": "2020",
-        "CopyrightName": "sh-edraft.de",
-        "LicenseName": "MIT",
-        "LicenseDescription": ", see LICENSE for more details.",
-        "Title": "",
-        "Author": "Sven Heidemann",
-        "Version": {
-          "Major": 2020,
-          "Minor": 12,
-          "Micro": 10
-        }
-      },
-      {
-        "TemplatePath": "../../publish_templates/all_template.txt",
-        "Name": "sh_edraft",
-        "Description": "common python library",
-        "LongDescription": "Library to share common classes and models used at sh-edraft.de",
-        "CopyrightDate": "2020",
-        "CopyrightName": "sh-edraft.de",
-        "LicenseName": "MIT",
-        "LicenseDescription": ", see LICENSE for more details.",
-        "Title": "",
-        "Author": "Sven Heidemann",
-        "Version": {
-          "Major": 2020,
-          "Minor": 12,
-          "Micro": 10
-        }
-      }
-    ],
-    "IncludedFiles": [
-    ],
-    "ExcludedFiles": [
-    ],
-    "TemplateEnding": "_template.txt"
-  }
-}
diff --git a/src_old/tests/publish_test/__init__.py b/src_old/tests/publish_test/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/src_old/tests/publish_test/publisher_test.py b/src_old/tests/publish_test/publisher_test.py
deleted file mode 100644
index 06f95519..00000000
--- a/src_old/tests/publish_test/publisher_test.py
+++ /dev/null
@@ -1,52 +0,0 @@
-import os
-import unittest
-
-from sh_edraft.console import Console
-from sh_edraft.hosting import ApplicationHost
-from sh_edraft.logging import Logger
-from sh_edraft.logging.base import LoggerBase
-from sh_edraft.publish import Publisher
-from sh_edraft.publish.base import PublisherBase
-from sh_edraft.publish.model import PublishSettings
-
-
-class PublisherTest(unittest.TestCase):
-
-    def setUp(self):
-        Console.disable()
-        self._app_host = ApplicationHost()
-        self._configuration = self._app_host.configuration
-        self._services = self._app_host.services
-
-        self._configuration.add_environment_variables('CPL_')
-        self._configuration.add_argument_variables()
-        self._configuration.add_json_file(f'build.json')
-
-        self._services.add_singleton(LoggerBase, Logger)
-        self._services.add_singleton(PublisherBase, Publisher)
-        self._publisher: Publisher = self._services.get_service(PublisherBase)
-
-    def test_include(self):
-        value = './test.py'
-        self._publisher.include(value)
-        self.assertTrue(value in self._publisher._publish_settings.included_files)
-
-    def test_exclude(self):
-        value = './test.py'
-        self._publisher.exclude(value)
-        self.assertTrue(value in self._publisher._publish_settings.excluded_files)
-
-    def test_create(self):
-        self._publisher.create()
-        self.assertTrue(os.path.isdir(self._configuration.get_configuration(PublishSettings).dist_path))
-
-    def test_build(self):
-        self._publisher.create()
-        self._publisher.build()
-        self.assertTrue(os.path.isdir(self._configuration.get_configuration(PublishSettings).dist_path))
-
-    def test_publish(self):
-        self._publisher.create()
-        self._publisher.build()
-        self._publisher.publish()
-        self.assertTrue(os.path.isdir(self._configuration.get_configuration(PublishSettings).dist_path))
diff --git a/src_old/tests/service_test/__init__.py b/src_old/tests/service_test/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/src_old/tests/service_test/provider_test.py b/src_old/tests/service_test/provider_test.py
deleted file mode 100644
index 96fef8eb..00000000
--- a/src_old/tests/service_test/provider_test.py
+++ /dev/null
@@ -1,79 +0,0 @@
-import unittest
-
-from sh_edraft.console import Console
-from sh_edraft.database.context import DatabaseContext
-from sh_edraft.hosting import ApplicationHost
-from sh_edraft.logging import Logger
-from sh_edraft.logging.base import LoggerBase
-
-
-class ProviderTest(unittest.TestCase):
-
-    def setUp(self):
-        Console.disable()
-        self._app_host = ApplicationHost()
-        self._configuration = self._app_host.configuration
-        self._services = self._app_host.services
-
-        self._configuration.add_environment_variables('CPL_')
-        self._configuration.add_argument_variables()
-        self._configuration.add_json_file(f'appsettings.json')
-        self._configuration.add_json_file(f'appsettings.{self._configuration.environment.environment_name}.json')
-        self._configuration.add_json_file(f'appsettings.{self._configuration.environment.host_name}.json', optional=True)
-
-    def test_get_db_context(self):
-        self._services.add_db_context(DatabaseContext)
-        db: DatabaseContext = self._services.get_db_context()
-
-        self.assertIsNotNone(db)
-
-    def test_get_service_singleton(self):
-        self._services.add_singleton(LoggerBase, Logger)
-        logger = self._services.get_service(LoggerBase)
-
-        self.assertIsNotNone(logger)
-
-    def test_get_service_scoped(self):
-        self._services.add_scoped(LoggerBase, Logger)
-        logger = self._services.get_service(LoggerBase)
-
-        self.assertIsNotNone(logger)
-
-    def test_get_service_transient(self):
-        self._services.add_transient(LoggerBase, Logger)
-        logger = self._services.get_service(LoggerBase)
-
-        self.assertIsNotNone(logger)
-
-    def test_remove_service_singleton(self):
-        self._services.add_singleton(LoggerBase, Logger)
-        logger = self._services.get_service(LoggerBase)
-
-        self.assertIsNotNone(logger)
-
-        self._services.remove_service(LoggerBase)
-        logger = self._services.get_service(LoggerBase)
-
-        self.assertIsNone(logger)
-
-    def test_remove_service_scoped(self):
-        self._services.add_scoped(LoggerBase, Logger)
-        logger = self._services.get_service(LoggerBase)
-
-        self.assertIsNotNone(logger)
-
-        self._services.remove_service(LoggerBase)
-        logger = self._services.get_service(LoggerBase)
-
-        self.assertIsNone(logger)
-
-    def test_remove_service_transient(self):
-        self._services.add_transient(LoggerBase, Logger)
-        logger = self._services.get_service(LoggerBase)
-
-        self.assertIsNotNone(logger)
-
-        self._services.remove_service(LoggerBase)
-        logger = self._services.get_service(LoggerBase)
-
-        self.assertIsNone(logger)
diff --git a/src_old/tests/setup.py b/src_old/tests/setup.py
deleted file mode 100644
index b9da5bf5..00000000
--- a/src_old/tests/setup.py
+++ /dev/null
@@ -1,24 +0,0 @@
-import setuptools
-
-setuptools.setup(
-    name='sh_edraft_unittests',
-    version='2020.0.1',
-    packages=setuptools.find_packages(exclude=["tests*"]),
-    url='https://www.sh-edraft.de',
-    license='MIT',
-    author='Sven Heidemann',
-    author_email='edraft.sh@gmail.com',
-    include_package_data=True,
-    description='sh-edraft python common lib unittest',
-    python_requires='>=3.8',
-    install_requires=[
-        'discord.py',
-        'flask',
-        'mysql-connector',
-        'SQLAlchemy',
-        'termcolor',
-        'pyfiglet',
-        'tabulate',
-        'smtplib'
-    ]
-)
diff --git a/src_old/tests/time_test/__init__.py b/src_old/tests/time_test/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/src_old/tests/time_test/time_format_settings_test.py b/src_old/tests/time_test/time_format_settings_test.py
deleted file mode 100644
index 9bc5347a..00000000
--- a/src_old/tests/time_test/time_format_settings_test.py
+++ /dev/null
@@ -1,26 +0,0 @@
-import unittest
-
-from sh_edraft.time.model import TimeFormatSettingsNames, TimeFormatSettings
-
-
-class TimeFormatSettingsTest(unittest.TestCase):
-
-    def setUp(self): pass
-
-    def test_from_dict(self):
-        test_dict = {
-            TimeFormatSettingsNames.date_format.value: '%H:%M:%S',
-            TimeFormatSettingsNames.time_format.value: '%Y-%m-%d',
-            TimeFormatSettingsNames.date_time_format.value: '%Y-%m-%d %H:%M:%S.%f',
-            TimeFormatSettingsNames.date_time_log_format.value: '%Y-%m-%d_%H-%M-%S'
-        }
-
-        settings = TimeFormatSettings()
-        settings.from_dict(test_dict)
-
-        self.assertIsNotNone(settings)
-
-        self.assertEqual(test_dict[TimeFormatSettingsNames.date_format.value], settings.date_format)
-        self.assertEqual(test_dict[TimeFormatSettingsNames.time_format.value], settings.time_format)
-        self.assertEqual(test_dict[TimeFormatSettingsNames.date_time_format.value], settings.date_time_format)
-        self.assertEqual(test_dict[TimeFormatSettingsNames.date_time_log_format.value], settings.date_time_log_format)
diff --git a/src_old/tests/utils_test/__init__.py b/src_old/tests/utils_test/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/src_old/tests/utils_test/credential_manager_test.py b/src_old/tests/utils_test/credential_manager_test.py
deleted file mode 100644
index 204f1283..00000000
--- a/src_old/tests/utils_test/credential_manager_test.py
+++ /dev/null
@@ -1,37 +0,0 @@
-import base64
-import unittest
-
-from sh_edraft.utils import CredentialManager
-
-
-class CredentialManagerTest(unittest.TestCase):
-
-    def setUp(self): pass
-
-    def test_encode(self):
-        test_string = 'Hello World'
-        expected_test_result = base64.b64encode(test_string.encode('utf-8')).decode('utf-8')
-
-        test_result = CredentialManager.encrypt(test_string)
-
-        self.assertIsNotNone(test_result)
-        self.assertEqual(expected_test_result, test_result)
-
-    def test_decode(self):
-        test_string = 'SGVsbG8gV29ybGQ='
-        expected_test_result = base64.b64decode(test_string).decode('utf-8')
-
-        test_result = CredentialManager.decrypt(test_string)
-
-        self.assertIsNotNone(test_result)
-        self.assertEqual(expected_test_result, test_result)
-
-    def test_build_string(self):
-        test_string = 'String is $credentials'
-        test_credentials = 'SGVsbG8gV29ybGQ='
-        expected_test_result = test_string.replace('$credentials', base64.b64decode(test_credentials).decode('utf-8'))
-
-        test_result = CredentialManager.build_string(test_string, test_credentials)
-
-        self.assertIsNotNone(test_result)
-        self.assertEqual(expected_test_result, test_result)
diff --git a/src_old/tests_dev/__init__.py b/src_old/tests_dev/__init__.py
deleted file mode 100644
index caf789c0..00000000
--- a/src_old/tests_dev/__init__.py
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-tests_dev 
-~~~~~~~~~~~~~~~~~~~
-
-
-
-:copyright: (c) 2020 sh-edraft.de
-:license: MIT, see LICENSE for more details.
-
-"""
-
-__title__ = 'tests_dev'
-__author__ = 'Sven Heidemann'
-__license__ = 'MIT'
-__copyright__ = 'Copyright (c) 2020 sh-edraft.de'
-__version__ = '2020.12.9'
-
-from collections import namedtuple
-
-# imports:
-
-VersionInfo = namedtuple('VersionInfo', 'major minor micro')
-version_info = VersionInfo(major=2020, minor=12, micro=9)
diff --git a/src_old/tests_dev/app.py b/src_old/tests_dev/app.py
deleted file mode 100644
index ed8adc61..00000000
--- a/src_old/tests_dev/app.py
+++ /dev/null
@@ -1,2 +0,0 @@
-class App:
-    pass
diff --git a/src_old/tests_dev/appsettings.development.json b/src_old/tests_dev/appsettings.development.json
deleted file mode 100644
index d134912e..00000000
--- a/src_old/tests_dev/appsettings.development.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
-  "LoggingSettings": {
-    "Path": "logs/",
-    "Filename": "log_$start_time.log",
-    "ConsoleLogLevel": "TRACE",
-    "FileLogLevel": "TRACE"
-  },
-
-  "DatabaseSettings": {
-    "ConnectionString": "mysql+mysqlconnector://sh_cpl:$credentials@localhost/sh_cpl",
-    "Credentials": "MHZhc0Y2bjhKc1VUMWV0Qw==",
-    "Encoding": "utf8mb4"
-  }
-}
\ No newline at end of file
diff --git a/src_old/tests_dev/appsettings.edrafts-lapi.json b/src_old/tests_dev/appsettings.edrafts-lapi.json
deleted file mode 100644
index 0b2e194a..00000000
--- a/src_old/tests_dev/appsettings.edrafts-lapi.json
+++ /dev/null
@@ -1,63 +0,0 @@
-{
-  "TimeFormatSettings": {
-    "DateFormat": "%Y-%m-%d",
-    "TimeFormat": "%H:%M:%S",
-    "DateTimeFormat": "%Y-%m-%d %H:%M:%S.%f",
-    "DateTimeLogFormat": "%Y-%m-%d_%H-%M-%S"
-  },
-  "LoggingSettings": {
-    "Path": "logs/",
-    "Filename": "log_$start_time.log",
-    "ConsoleLogLevel": "TRACE",
-    "FileLogLevel": "TRACE"
-  },
-  "EMailClientSettings": {
-    "Host": "mail.sh-edraft.de",
-    "Port": "587",
-    "UserName": "dev-srv@sh-edraft.de",
-    "Credentials": "RmBOQX1eNFYiYjgsSid3fV1nelc2WA=="
-  },
-  "PublishSettings": {
-    "SourcePath": "../",
-    "DistPath": "../../dist",
-    "Templates": [
-      {
-        "TemplatePath": "../../publish_templates/all_template.txt",
-        "Name": "all",
-        "Description": "",
-        "LongDescription": "",
-        "CopyrightDate": "2020",
-        "CopyrightName": "sh-edraft.de",
-        "LicenseName": "MIT",
-        "LicenseDescription": ", see LICENSE for more details.",
-        "Title": "",
-        "Author": "Sven Heidemann",
-        "Version": {
-          "Major": 2020,
-          "Minor": 12,
-          "Micro": 9
-        }
-      },
-      {
-        "TemplatePath": "../../publish_templates/all_template.txt",
-        "Name": "sh_edraft",
-        "Description": "common python library",
-        "LongDescription": "Library to share common classes and models used at sh-edraft.de",
-        "CopyrightDate": "2020",
-        "CopyrightName": "sh-edraft.de",
-        "LicenseName": "MIT",
-        "LicenseDescription": ", see LICENSE for more details.",
-        "Title": "",
-        "Author": "Sven Heidemann",
-        "Version": {
-          "Major": 2020,
-          "Minor": 12,
-          "Micro": 9
-        }
-      }
-    ],
-    "IncludedFiles": [],
-    "ExcludedFiles": [],
-    "TemplateEnding": "_template.txt"
-  }
-}
\ No newline at end of file
diff --git a/src_old/tests_dev/appsettings.edrafts-pc.json b/src_old/tests_dev/appsettings.edrafts-pc.json
deleted file mode 100644
index 0b2e194a..00000000
--- a/src_old/tests_dev/appsettings.edrafts-pc.json
+++ /dev/null
@@ -1,63 +0,0 @@
-{
-  "TimeFormatSettings": {
-    "DateFormat": "%Y-%m-%d",
-    "TimeFormat": "%H:%M:%S",
-    "DateTimeFormat": "%Y-%m-%d %H:%M:%S.%f",
-    "DateTimeLogFormat": "%Y-%m-%d_%H-%M-%S"
-  },
-  "LoggingSettings": {
-    "Path": "logs/",
-    "Filename": "log_$start_time.log",
-    "ConsoleLogLevel": "TRACE",
-    "FileLogLevel": "TRACE"
-  },
-  "EMailClientSettings": {
-    "Host": "mail.sh-edraft.de",
-    "Port": "587",
-    "UserName": "dev-srv@sh-edraft.de",
-    "Credentials": "RmBOQX1eNFYiYjgsSid3fV1nelc2WA=="
-  },
-  "PublishSettings": {
-    "SourcePath": "../",
-    "DistPath": "../../dist",
-    "Templates": [
-      {
-        "TemplatePath": "../../publish_templates/all_template.txt",
-        "Name": "all",
-        "Description": "",
-        "LongDescription": "",
-        "CopyrightDate": "2020",
-        "CopyrightName": "sh-edraft.de",
-        "LicenseName": "MIT",
-        "LicenseDescription": ", see LICENSE for more details.",
-        "Title": "",
-        "Author": "Sven Heidemann",
-        "Version": {
-          "Major": 2020,
-          "Minor": 12,
-          "Micro": 9
-        }
-      },
-      {
-        "TemplatePath": "../../publish_templates/all_template.txt",
-        "Name": "sh_edraft",
-        "Description": "common python library",
-        "LongDescription": "Library to share common classes and models used at sh-edraft.de",
-        "CopyrightDate": "2020",
-        "CopyrightName": "sh-edraft.de",
-        "LicenseName": "MIT",
-        "LicenseDescription": ", see LICENSE for more details.",
-        "Title": "",
-        "Author": "Sven Heidemann",
-        "Version": {
-          "Major": 2020,
-          "Minor": 12,
-          "Micro": 9
-        }
-      }
-    ],
-    "IncludedFiles": [],
-    "ExcludedFiles": [],
-    "TemplateEnding": "_template.txt"
-  }
-}
\ No newline at end of file
diff --git a/src_old/tests_dev/appsettings.json b/src_old/tests_dev/appsettings.json
deleted file mode 100644
index fd8ddf6c..00000000
--- a/src_old/tests_dev/appsettings.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "TimeFormatSettings": {
-    "DateFormat": "%Y-%m-%d",
-    "TimeFormat": "%H:%M:%S",
-    "DateTimeFormat": "%Y-%m-%d %H:%M:%S.%f",
-    "DateTimeLogFormat": "%Y-%m-%d_%H-%M-%S"
-  },
-
-  "LoggingSettings": {
-    "Path": "logs/",
-    "Filename": "log_$start_time.log",
-    "ConsoleLogLevel": "ERROR",
-    "FileLogLevel": "WARN"
-  }
-}
\ No newline at end of file
diff --git a/src_old/tests_dev/main.py b/src_old/tests_dev/main.py
deleted file mode 100644
index cfb45c60..00000000
--- a/src_old/tests_dev/main.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from tests_dev.program import Program
-
-if __name__ == '__main__':
-    program = Program()
-    program.create_application_host()
-    program.create_configuration()
-    program.create_services()
-    program.main()
diff --git a/src_old/tests_dev/program.py b/src_old/tests_dev/program.py
deleted file mode 100644
index e08eadbe..00000000
--- a/src_old/tests_dev/program.py
+++ /dev/null
@@ -1,87 +0,0 @@
-from typing import Optional
-
-from sh_edraft.configuration.base import ConfigurationBase
-from sh_edraft.console import Console
-from sh_edraft.database.context import DatabaseContext
-from sh_edraft.database.model import DatabaseSettings
-from sh_edraft.hosting import ApplicationHost
-from sh_edraft.hosting.base import ApplicationBase
-from sh_edraft.logging import Logger
-from sh_edraft.logging.base import LoggerBase
-from sh_edraft.mailing.base import EMailClientBase
-from sh_edraft.mailing import EMailClient
-from sh_edraft.mailing.model import EMail
-from sh_edraft.service.providing.base import ServiceProviderBase
-from sh_edraft.utils import CredentialManager
-
-from tests_dev.db.user_repo import UserRepo
-from tests_dev.db.user_repo_base import UserRepoBase
-
-
-class Program(ApplicationBase):
-
-    def __init__(self):
-        ApplicationBase.__init__(self)
-
-        self._app_host: Optional[ApplicationHost] = None
-        self._services: Optional[ServiceProviderBase] = None
-        self._configuration: Optional[ConfigurationBase] = None
-        self._logger: Optional[LoggerBase] = None
-        self._mailer: Optional[EMailClientBase] = None
-
-    def create_application_host(self):
-        self._app_host = ApplicationHost()
-        self._configuration = self._app_host.configuration
-        self._services = self._app_host.services
-
-    def create_configuration(self):
-        self._configuration.add_environment_variables('PYTHON_')
-        self._configuration.add_environment_variables('CPL_')
-        self._configuration.add_argument_variables()
-        self._configuration.add_json_file(f'appsettings.json')
-        self._configuration.add_json_file(f'appsettings.{self._configuration.environment.environment_name}.json')
-        self._configuration.add_json_file(f'appsettings.{self._configuration.environment.host_name}.json', optional=True)
-
-    def create_services(self):
-        # Create and connect to database
-        db_settings: DatabaseSettings = self._configuration.get_configuration(DatabaseSettings)
-        self._services.add_db_context(DatabaseContext)
-        db: DatabaseContext = self._services.get_db_context()
-        db.connect(CredentialManager.build_string(db_settings.connection_string, db_settings.credentials))
-
-        self._services.add_scoped(UserRepoBase, UserRepo)
-
-        # Add and create logger
-        self._services.add_singleton(LoggerBase, Logger)
-        self._logger = self._services.get_service(LoggerBase)
-
-        self._services.add_singleton(EMailClientBase, EMailClient)
-        self._mailer = self._services.get_service(EMailClientBase)
-
-    def test_send_mail(self):
-        mail = EMail()
-        mail.add_header('Mime-Version: 1.0')
-        mail.add_header('Content-Type: text/plain; charset=utf-8')
-        mail.add_header('Content-Transfer-Encoding: quoted-printable')
-        mail.add_receiver('edraft.sh@gmail.com')
-        mail.add_receiver('edraft@sh-edraft.de')
-        mail.subject = f'Test - {self._configuration.environment.host_name}'
-        mail.body = 'Dies ist ein Test :D'
-        self._mailer.send_mail(mail)
-
-    def test_console(self):
-        self._logger.debug(__name__, 'Started console test')
-        Console.write_line('Hello World')
-        Console.write('\nName: ')
-        Console.write_line('Hello', Console.read_line())
-        Console.clear()
-        Console.write_at(5, 5, 'at 5, 5')
-        Console.write_at(10, 10, 'at 10, 10')
-
-    def main(self):
-        self._logger.header(f'{self._configuration.environment.application_name}:')
-        self._logger.debug(__name__, f'Host: {self._configuration.environment.host_name}')
-        self._logger.debug(__name__, f'Environment: {self._configuration.environment.environment_name}')
-        self._logger.debug(__name__, f'Customer: {self._configuration.environment.customer}')
-        self._services.get_service(UserRepoBase).add_test_user()
-        self.test_console()