work on usage and subcommands