break out command handlers into their own classes