public static function load($class_name = null, $safe = false)
    {
        if (empty($class_name)) {
            $class_name = self::getInternal('assets-config-class');
        }
    
        // init the registry
        if (empty(self::$__registry)) {
            self::$__registry = array_combine(self::$_requires,
                array_pad(array(), count(self::$_requires), null));
        }

        // init the configurator object
        if (empty(self::$__configurator) || $class_name!=get_class(self::$__configurator)) {
            if ($safe && !class_exists($class_name)) {
                $class_name = self::getInternal('assets-config-class');
            }

            if (class_exists($class_name)) {
                $interfaces = class_implements($class_name);
                $config_interface = self::getInternal('assets-config-interface');
                if (in_array($config_interface, $interfaces)) {
                    self::$__configurator = new $class_name;
                    $defaults = self::$__configurator->getDefaults();
                    if (self::_validateConfig($defaults)) {
                        self::$__registry = $defaults;
                    } else {
                        Error::thrower(
                            sprintf('Configuration class "%s" do not define all required values!',
                                $class_name),
                            '\Exception', __CLASS__, __METHOD__, __LINE__
                        );
                    }
                } else {
                    Error::thrower(
                        sprintf('Configuration class "%s" must implement interface "%s"!',
                            $class_name, $config_interface),
                        '\DomainException', __CLASS__, __METHOD__, __LINE__
                    );
                }
            } else {
                Error::thrower(
                    sprintf('Configuration class "%s" not found!', $class_name),
                    '\DomainException', __CLASS__, __METHOD__, __LINE__
                );
            }
        }
    }