private function dispatch($call)
    {

        $path = $call->getAction();
        $method = $call->getMethod();

        $matches = preg_split('/(?=[A-Z])/',$path);
        $route = strtolower(implode('/', $matches));
        $route .= "/".$method;

        $request = $this->app['request'];

        $files = $this->fixFiles($request->files->all());

        // create the route request
        $routeRequest = Request::create($route, 'POST', $call->getData(), $request->cookies->all(), $files, $request->server->all());

        if ('form' == $this->request->getCallType()) {
            $result = $this->app->handle($routeRequest, HttpKernelInterface::SUB_REQUEST);

            $response = $call->getResponse($result);
        } else {
            try{
                $result = $this->app->handle($routeRequest, HttpKernelInterface::SUB_REQUEST);

                $response = $call->getResponse($result);
            }catch(\Exception $e){
                $response = $call->getException($e);
            }            
        }

        return $response;
    }