eliminating MessageLogController
refactoring InputController to be stateless