protected static function buildComponent(string $className)
    {
        if (!isset(self::$components[$className])) {
            self::$components[$className] = Container::buildObject("\\Osf\\View\\Component\\" . $className);
            if (!(self::$components[$className] instanceof Component\AbstractComponent)) {
                throw new ArchException('Component [' . $className . '] must be an AbstractComponent');
            }
        }
        return self::$components[$className];
    }