protected function boot()
    {
        try {
            Kernel::boot();
//            Kernel::debug();

            // the actual manifest
            if (true===file_exists(Kernel::getPath('app_manifest_filepath'))) {
                $manifest_data = FilesystemHelper::parseJson(Kernel::getPath('app_manifest_filepath'));
                if ($manifest_data) {
                    Kernel::setConfig($manifest_data, 'manifest');
                } else {
                    throw new \Exception(
                        sprintf('Can not parse app manifest "%s" JSON content!', Kernel::getPath('app_manifest_filepath', true))
                    );
                }
            } else {
                throw new \Exception(
                    sprintf('App manifest "%s" not found or is empty!', Kernel::getPath('app_manifest_filepath', true))
                );
            }

        } catch (\Exception $e) {
            // hard die for startup errors
            header('Content-Type: text/plain');
            echo PHP_EOL.'[WebDocBook startup error] : '.PHP_EOL;
            echo PHP_EOL."\t".$e->getMessage().PHP_EOL;
            echo PHP_EOL.'-------------------------'.PHP_EOL;
            echo 'For more info, see the documentation online at <http://webdocbook.com/>.'.PHP_EOL;
            exit(1);
        }
    }