public static function create($className, $arguments = null, $constructor = 'getInstance', $reflection = null)
    {
        // instantiate
        if (is_null($arguments)) {
            return call_user_func($className.'::'.$constructor);
        } else {
            // arguments
            if (is_array($arguments)) {
                return call_user_func_array($className.'::'.$constructor, $arguments);
            } else {
                return call_user_func($className.'::'.$constructor, $arguments);
            }
        }
    }