Model View Controller is the pervasive design pattern that rules iOS development. Often, however, we try to fit everything we write into either a model, a view, or a controller. This can lead to complicated controllers that do too much and are difficult to understand, test, and change. Ben explain how we can introduce our own objects, introduce new actors, and move logic to more appropriate places. By giving each object a job, we can reduce the problem of bloated view controllers and create more maintainable software.