Subcommands api refactored