subcommands parse their own arguments