Maps user actions to model updates
notifies view
Renders model
Requests model updates
Sends user events to controller
Encapsulates application state
Notifies view of state changes
by shiny