Split command set class into incoming/outgoing classes with shared abstract parent class