public function makeView($view_name, MvcController $mvc_ctrl, BaseController $ctrl, ViewBag $data) 
    {
        if(!$mvc_ctrl) throw new \Exception('Mvc Controller not defined');
        if(!$ctrl) throw new \Exception('Base Controller not defined');
        if(!$view_name) throw new \Exception('View not defined');
        
        $mvc_ctrl_refl = new \ReflectionObject($mvc_ctrl);
        $view_class = $mvc_ctrl_refl->getNamespaceName() . '\\Views\\' . $view_name . 'View';       
        if(!class_exists($view_class)) throw new \Exception('View does not exist');
        
        return new $view_class($ctrl, $data);
    }