public function boot(Container $app)
    {
        $app->afterResolving(function (Factory $factory, $app) {

            $factory->addExtension('php', 'php', function () {
                return new PhpEngine();
            });

            $factory->addExtension('blade.php', 'blade', function () use ($app) {
                return new CompilerEngine($app->make(BladeCompiler::class));
            });

            $factory->addExtension('md', 'markdown', function () use ($app) {
                return new CompilerEngine($app->make(Markdown::class));
            });

        });

        $app->when(BladeCompiler::class)
            ->needs('$cachePath')
            ->give(vfsStream::setup('root/.blade')->url());
    }