Nice article about using Commands and Handlers. The initial problem was an incorrect approach to handle conditional logic at the very high level. There is no doubt a different approach is needed to handle it. The main problem I see with if's and switch's is when you put too much logic inside the if/else body, make them hard to follow/test as an individual unit.