[close #2] api refactor: subcommands