Refactored subcommands to be classes