break out all commands into separate classes