This has been an exciting chapter that helped us understand the primary purpose of controllers, which is data representation. We learned how controllers are defined based on the defined application routes. We also learned how to use object and array controllers to represent models. Lastly, we learned how to set up dependencies between controllers, which might handle different concerns of the application. At this point of the book, we really should be ready to start thinking of ways to architect Ember.js applications. The next chapter will cover the view layer, for which a good amount of knowledge in the use of controllers will be required.