public function run($webroot) {
        $this->_webroot = $webroot;
        $this->getRequest()->set('webroot', $webroot);

        // Create symlinks
        $this->createLinks($webroot);

        // Dispatch request
        $this->emit('mvc.preRun', [$this]);

        $dispatcher = $this->getDispatcher();
        $dispatcher->setApplication($this);
        $dispatcher->setParams($this->getRouter()->current()->getParams());
        $dispatcher->setRequest($this->getRequest());
        $dispatcher->setResponse($this->getResponse());

        $response = $dispatcher->dispatch();

        $this->emit('mvc.postRun', [$this]);

        // Output response
        $this->getResponse()->body($response)->respond();

        $this->emit('mvc.onShutdown', [$this]);
        exit();
    }