protected function setUp()
    {
        $this->services['service']->register(array(
            'path' => function(Context $context){ return $context->app->path; },
            'config' => function(Context $context) { return clone $context->app->config; },
            'url' => function(Context $context){
                $urlFactory = $context->app->url;

                $baseUrl = $urlFactory->getBaseUrl();

                return $context->app->create('url.factory', array($context->route->getGroup(), $context->request ? : null, $baseUrl, $urlFactory->getFilters(), $urlFactory->getCallables()));
            },
            'redirect' => array(Redirect::class, array('self.response', 'self.url')),
            'form' => array(Form::class, array('self')),
            // thinking of deprecating the asset as service
            'asset' => function(Context $context){ return new AssetFactory($context->url, $context->app->path['public'], $context->config->get('asset', array()));}
        ));

        $this->setUpConfig();
    }