public static function register( $type, $class_name )
    {
        if( !in_array($type, self::$registered_components) )
        {
            self::$registered_components[$type] = $class_name;
        }
        else throw new \RuntimeException("A component of type '$type' has already been registered.");
    }