Refactoring Controller into Generator, Simulator, Messenger