logic which interprets inputs from the user, informing the model and/or view(s) to change as appropriate