public static function boot($filename = null, Injector $injector = null, $directory = null)
    {
        $directory = $directory === null ? getcwd() : $directory;

        $injector = $injector === null ? new Injector : $injector;

        $system = new Filesystem(new Local($directory));

        $injector->share($system);

        $console = new Symfony(self::$name, self::$version);

        $blueprint = new Blueprint($console, $injector);

        return self::paths($blueprint, $directory, $filename);
    }