public function execute() {
        $action = $this->action();
        if (!is_callable(array($this, $action))) {
            $errorMessage = 'The action <b>' .
                    $this->action .
                    '</b> is not defined for the module <b>' .
                    ucfirst($this->module) .
                    '</b>';
            throw new \RuntimeException($errorMessage, MvcErrors::ACTION_NOT_FOUND_FOR_CONTROLLER, null);
        }
        $logGuid = \Puzzlout\Framework\Utility\TimeLogger::StartLogInfo(
                $this->app(), 
                get_class($this) . "->" . ucfirst($action));
        $viewModelObject = $this->$action();
        \Puzzlout\Framework\Utility\TimeLogger::EndLog($this->app(), $logGuid);
        return $viewModelObject;
    }