protected function loadExtension($ClassName)
    {

        try {
            $reflectionClass = new  \ReflectionClass($ClassName);
            if(!$reflectionClass->isInstantiable())
                throw new \OWeb\manage\exceptions\Extension("The Extension is still abstract");

            $extension = new $ClassName();

            if ($extension instanceof \OWeb\types\Extension) {
                $this->registerExtension($extension, $ClassName);

                return $extension;
            } else
                throw new \OWeb\manage\exceptions\Extension("The Extension isn't an instance of : \OWeb\\types\Extension");

        } catch (\Exception $ex) {
            throw new \OWeb\manage\exceptions\Extension("The extension couldn't be loaded.", 0, $ex);
        }
    }