Model, view, controller (MVC) came about as an architecture focused on separation of concerns. The model holds the data for the main application objects. The view should contain only that logic to transform data into a user interface. Controllers respond to the main system events, often tied to application routes, that eventually lead to updated models and views.