$doctrineParser->registerAnnotation('KJSencha\\Annotation\\Interval');
    $doctrineParser->registerAnnotation('KJSencha\\Annotation\\Formhandler');
    $doctrineParser->registerAnnotation('KJSencha\\Annotation\\Group');
    $annotationManager = new AnnotationManager();
    $annotationManager->attach($doctrineParser);
    return $annotationManager;
}, 'kjsencha.apibuilder' => function (ServiceLocatorInterface $sl) {
    /* @var $annotationManager AnnotationManager */
    $annotationManager = $sl->get('kjsencha.annotationmanager');
    /* @var $directManager DirectManager */
    $directManager = $sl->get('kjsencha.direct.manager');
    return new ApiBuilder($annotationManager, $directManager);
}, 'kjsencha.cache' => function (ServiceLocatorInterface $sl) {
    $config = $sl->get('Config');
    $storage = StorageFactory::factory($config['kjsencha']['cache']);
    return $storage;
}, 'kjsencha.bootstrap' => function (ServiceLocatorInterface $sl) {
    $config = $sl->get('Config');
    $bootstrap = new Bootstrap($config['kjsencha']['bootstrap']['default']);
    $bootstrap->addVariables(array('App' => array('basePath' => $sl->get('Request')->getBasePath())));
    /* @var $directApi \KJSencha\Direct\Remoting\Api\Api */
    $directApi = $sl->get('kjsencha.api');
    $bootstrap->setDirectApi($directApi);
    return $bootstrap;
}, 'kjsencha.direct.manager' => function (ServiceManager $sm) {
    $directManager = new DirectManager();
    $directManager->addPeeringServiceManager($sm);
    return $directManager;
}, 'kjsencha.echo' => function () {
    return new TestEchoService('Hello ');
}));