use switch() for subcommands (TODO use flag/flagset instead)