- Encapsulates business logic and application state.
- Renders the model & has only display logic.
- Sends user actions to the controller
- Allows controller to select a view.
- controls application behavior
- Maps user actions to model.
- selects view for response.
- usually one for each functionality.