and so it begins?
input moved to controller.

This makes more sense, but controller now depends on terminal.
Consider a more abstract version of the controller class.