Refactor commands into their own classes