public static function widget($config=[])
    {
        // Cache considering (Lost resetting pattern)
        // if (!self::$_instance) {
        //     $widget = get_called_class();
        //     self::$_instance = new $widget;
        // }
        
        // Create an instance for each call
        $widgetClass = get_called_class();
        self::$_instance = new $widgetClass;

        // Configuration for each call
        foreach ($config as $property => $value) {
            
            self::$_instance->$property = $value;
        }
        
        return self::$_instance->run();
    }