Index: branches/main/admin/interface/version.php
===================================================================
--- branches/main/admin/interface/version.php	(revision 22)
+++ branches/main/admin/interface/version.php	(revision 23)
@@ -48,7 +48,7 @@
 if (!defined('VERSION_LOADED')) {
     $sInfo = '
         VERSION  = "2.10.1-dev"
-        REVISION = "22"
+        REVISION = "23"
         SP       = ""
     ';
     foreach (parse_ini_string($sInfo) as $item=>$value) {
Index: branches/main/framework/CoreAutoloader.php
===================================================================
--- branches/main/framework/CoreAutoloader.php	(revision 22)
+++ branches/main/framework/CoreAutoloader.php	(revision 23)
@@ -17,13 +17,13 @@
  * You should have received a copy of the GNU General Public License 2
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
-/**
+/*
  * Description of Autoloader
  *
  * @package      Core
  * @copyright    Manuela v.d.Decken <manuela@isteam.de>
  * @author       Manuela v.d.Decken <manuela@isteam.de>
- * @license      GNU General Public License 3.0
+ * @license      GNU General Public License 2.0
  * @version      0.0.1
  * @revision     $Id$
  * @since        File available since 05.07.2017
@@ -43,35 +43,37 @@
 class CoreAutoloader
 {
 
-    private static $sInstallPath = '';
+    private static $sInstallPath = null;
     private static $aPatterns = [];
     private static $aReplacements = [];
 
-    private static $aTransNs = [
-        'vendor/jscalendar' => 'include/jscalendar',
-        'vendor'            => 'include',
-        'bin/interfaces'    => 'framework',
-        'bin/db'            => 'framework/db',
-        'bin'               => 'framework',
-        'addon'             => 'modules',
-        'acp'               => 'admin',
-    ];
+    private static $aTransNs = [];
 /**
  * add new Namespace->Directory relation or overwrite existing
- * @param string $sNamespace
- * @param string $sDirectory
+ * @param mixed $sNamespace
+ * @param string $sDirectory (default: '')
  */
-    public static function addNamespace($sNamespace, $sDirectory)
+    public static function addNamespace($mNamespace, $sDirectory = '')
     {
-        $sNamespace = \trim(\str_replace('\\', '/', $sNamespace), '/');
-        $sDirectory = \trim(\str_replace('\\', '/', $sDirectory), '/');
-        self::$aTransNs[$sNamespace] = $sDirectory;
-        \krsort(self::$aTransNs);
-        self::$aPatterns = self::$aReplacements = [];
-        foreach (self::$aTransNs as $sPattern => $sReplacement) {
-            self::$aPatterns[]     = '@^('.$sPattern.'/)@su';
-            self::$aReplacements[] = $sReplacement.'/';
+        if (\is_null(self::$sInstallPath)) {
+            throw new \RuntimeException('can not add namespaces before autoloader is registered!!');
         }
+        if (\is_string($mNamespace)) {
+            $mNamespace = [$mNamespace, $sDirectory];
+        }
+        if (\is_array($mNamespace)) {
+            foreach ($mNamespace as $sNamespace => $sDirectory) {
+                $sNamespace = \trim(\str_replace('\\', '/', $sNamespace), '/');
+                $sDirectory = \trim(\str_replace('\\', '/', $sDirectory), '/');
+                self::$aTransNs[$sNamespace] = $sDirectory;
+            }
+            \krsort(self::$aTransNs);
+            self::$aPatterns = self::$aReplacements = [];
+            foreach (self::$aTransNs as $sPattern => $sReplacement) {
+                self::$aPatterns[]     = '@^('.$sPattern.'/)@su';
+                self::$aReplacements[] = $sReplacement.'/';
+            }
+        }
     }
 
     public static function autoLoad($sClassName)
@@ -107,20 +109,19 @@
 /**
  * register this autoloader
  */
-    public static function doRegister(array $aAdditionalTranslations = null)
+    public static function doRegister($sPathPrefix)
     {
-        if (!is_null($aAdditionalTranslations)) {
-            foreach ($aAdditionalTranslations as $sKey=>$sValue) {
-                self::$aTransNs[$sKey] = $sValue;
+        self::$sInstallPath = \rtrim(\str_replace('\\', '/', $sPathPrefix), '/').'/';
+        if (\is_dir(self::$sInstallPath) && \is_readable(self::$sInstallPath)) {
+            \krsort(self::$aTransNs);
+            foreach (self::$aTransNs as $sPattern => $sReplacement) {
+                self::$aPatterns[]     = '@^('.$sPattern.'/)@su';
+                self::$aReplacements[] = $sReplacement.'/';
             }
+            \spl_autoload_register([__CLASS__, 'autoLoad']);
+        } else {
+            throw new \RuntimeException('invalid PathPrefix given!!');
         }
-        \krsort(self::$aTransNs);
-        self::$sInstallPath = \rtrim(\str_replace('\\', '/', \dirname(__DIR__)), '/').'/';
-        foreach (self::$aTransNs as $sPattern => $sReplacement) {
-            self::$aPatterns[]     = '@^('.$sPattern.'/)@su';
-            self::$aReplacements[] = $sReplacement.'/';
-        }
-        \spl_autoload_register([__CLASS__, 'autoLoad']);
     }
 
 /**
Index: branches/main/framework/initialize.php
===================================================================
--- branches/main/framework/initialize.php	(revision 22)
+++ branches/main/framework/initialize.php	(revision 23)
@@ -1,20 +1,33 @@
 <?php
-/**
+
+/*
+ * Copyright (C) 2017 Manuela v.d.Decken <manuela@isteam.de>
  *
- * @category        framework
- * @package         initialize
- * @author          WebsiteBaker Project
- * @copyright       Ryan Djurovich
- * @copyright       WebsiteBaker Org. e.V.
- * @link            http://websitebaker.org/
- * @license         http://www.gnu.org/licenses/gpl.html
- * @platform        WebsiteBaker 2.8.3
- * @requirements    PHP 5.3.6 and higher
- * @version         $Id$
- * @filesource      $HeadURL$
- * @lastmodified    $Date$
+ * DO NOT ALTER OR REMOVE COPYRIGHT OR THIS HEADER
  *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License 2 for more details.
+ *
+ * You should have received a copy of the GNU General Public License 2
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
+/**
+ * @package      Core
+ * @copyright    Ryan Djurovich
+ * @author       Ryan Djurovich
+ * @author       Manuela v.d.Decken <manuela@isteam.de>
+ * @license      GNU General Public License 2.0
+ * @version      1.0.1
+ * @revision     $Id$
+ * @deprecated   no / since 0000/00/00
+ * @description  xxx
+ */
 // $aPhpFunctions = get_defined_functions();
 /**
  * sanitize $_SERVER['HTTP_REFERER']
@@ -274,7 +287,17 @@
     if (!class_exists('\bin\CoreAutoloader')) {
         include __DIR__.'/CoreAutoloader.php';
     }
-    \bin\CoreAutoloader::doRegister();
+    \bin\CoreAutoloader::doRegister(dirname(__DIR__));
+    \bin\CoreAutoloader::addNamespace([ // add several needed namespaces
+        'bin'                => 'framework',
+        'addon'              => 'modules',
+        'vendor'             => 'include',
+        'vendor\\jscalendar' => 'include/jscalendar',
+        'bin\\db'            => 'framework/db',
+        'bin\\security'      => 'framework',
+        'bin\\interfaces'    => 'framework',
+    ]);
+
     // *** initialize Exception handling
     if(!function_exists('globalExceptionHandler')) {
         include(__DIR__.'/globalExceptionHandler.php');
@@ -305,9 +328,14 @@
 // ---------------------------
 // get Database connection data from configuration
     defined('ADMIN_DIRECTORY') ? '' : define('ADMIN_DIRECTORY', 'admin');
-    if (!preg_match('/xx[a-z0-9_][a-z0-9_\-\.]+/i', 'xx'.ADMIN_DIRECTORY)) {
-        throw new RuntimeException('Invalid admin-directory: ' . ADMIN_DIRECTORY);
+    if (
+        !(preg_match('/xx[a-z0-9_][a-z0-9_\-\.]+/i', 'xx'.ADMIN_DIRECTORY) &&
+         is_dir(dirname(__DIR__).'/'.ADMIN_DIRECTORY))
+    ) {
+        throw new RuntimeException('Invalid admin-directory set: ' . ADMIN_DIRECTORY);
     }
+// add Namespace 'acp' to Autoloader
+    \bin\CoreAutoloader::addNamespace('acp', ADMIN_DIRECTORY);
     defined('ADMIN_URL') ? '' : define('ADMIN_URL', WB_URL.'/'.ADMIN_DIRECTORY);
     defined('ADMIN_PATH') ? '' : define('ADMIN_PATH', WB_PATH.'/'.ADMIN_DIRECTORY);
     if ( !defined('WB_REL')){
@@ -318,8 +346,6 @@
         define('DOCUMENT_ROOT', preg_replace('/'.preg_quote(str_replace('\\', '/', WB_REL), '/').'$/', '', str_replace('\\', '/', WB_PATH)));
         $_SERVER['DOCUMENT_ROOT'] = DOCUMENT_ROOT;
     }
-// add Namespace 'acp' to Autoloader
-    \bin\CoreAutoloader::addNamespace('acp', ADMIN_DIRECTORY);
 
     if (class_exists('database')) {
         // sanitize $_SERVER['HTTP_REFERER']
