public function widget($args, $instance)
    {
        $this->data['args'] = $args;
        $this->data['instance'] = $instance;

        if (method_exists($this, 'beforeViewController')) {
            $this->beforeViewController();
        }

        $this->viewController($args, $instance);

        if (method_exists($this, 'afterViewController')) {
            $this->afterViewController();
        }

        $blade = new Blade($this->viewPath, $this->cachePath);
        echo $blade->view()->make('widget.' . str_replace(array('widget.', '.blade.php'), '', $this->template), $this->data)->render();
    }