CommandFactory refactored into some kind of decorated chain of responsibility.