data and state of the application. Views provide the GUI components to the user, either presenting data or allowing the user to interact with the model data. Controllers provide the glue between the model and view components in the form of application logic. [image from wikipedia]