public function __callProtectedMethod($name, $arguments = [])
    {
        try {
            $method = $this->__reflection()->getMethod($name);
        }
        catch(\Exception $e) {
            return next::caller();
        }

        $method->setAccessible(true);
        $result =  $method->invokeArgs($this, $arguments);
        $method->setAccessible(false);

        return $result;
    }