protected function _buildNewPackage($package_name)
    {
        $package = isset($this->assets_db[$package_name]) ? $this->assets_db[$package_name] : null;
        if (!empty($package)) {
            $cls_name = Config::get('assets-package-class');
            if (@class_exists($cls_name)) {
                $interfaces = class_implements($cls_name);
                $config_interface = Config::getInternal('assets-package-interface');
                if (in_array($config_interface, $interfaces)) {
                    $package_object = $cls_name::createFromAssetsLoader($this);
                    $package_object->loadFromArray($package);
                    return $package_object;
                } else {
                    throw new \DomainException(
                        sprintf('Package class "%s" must implement interface "%s"!',
                            $cls_name, $config_interface)
                    );
                }
            } else {
                throw new \DomainException(
                    sprintf('Package class "%s" not found!', $cls_name)
                );
            }
        } else {
            throw new \InvalidArgumentException(
                sprintf('Unknown package "%s"!', $package_name)
            );
        }
        return null;
    }