public function run(array $argv = null)
    {
        // If no $argv is provided then use the global PHP defined $argv.
        if (is_null($argv)) {
            global $argv;
        }

        // handle call
        $this->handle($argv);

        // exit cli with code 0 or even 1 for error
        $this->shutdown();
    }