public static function Init ($forceDevelopmentMode = NULL) {
		if (static::$debugging !== NULL) return;

		if (self::$strictExceptionsMode === NULL) 
			self::initStrictExceptionsMode(self::$strictExceptionsMode);
		
		$app = static::$app ?: (static::$app = & \MvcCore\Application::GetInstance());
		static::$requestBegin = $app->GetRequest()->GetMicrotime();
		
		if (gettype($forceDevelopmentMode) == 'boolean') {
			static::$debugging = $forceDevelopmentMode;
		} else {
			$configClass = $app->GetConfigClass();
			static::$debugging = $configClass::IsDevelopment(TRUE) || $configClass::IsAlpha(TRUE);
		}

		// do not initialize log directory here every time, initialize log
		// directory only if there is necessary to log something - later.

		$selfClass = version_compare(PHP_VERSION, '5.5', '>') ? self::class : __CLASS__;
		static::$originalDebugClass = ltrim($app->GetDebugClass(), '\\') == $selfClass;
		static::initHandlers();
		$initGlobalShortHandsHandler = static::$InitGlobalShortHands;
		$initGlobalShortHandsHandler(static::$debugging);
	}