You might consider not using a parent class here, and instead using a module, or just using the same interface for your commands -- premature abstraction being the root of all meta-evil, I'd opt for the latter as more ruby-ish.