into the controller is clearly defined • All the actions the controller can make are clearly defined • It's oblivious to the outside world • It doesn't access any application state through singletons
up and orchestrates transitions between multiple view controllers • Handles a logical portion of the application flow • Contains relevant state for that portion of the app