protected function proxy($method, $args)
    {

        // logic before executing the method
        //
        $this->beforeProxy($method, $args);
        
        // executing the domain method
        $result = call_user_func_array(array($this, $method), $args);


        // logic after executin the method
        //
        $this->afterProxy($method, $args, $result);

        // return the result of domain method
        return $result;
    }