starting with chapter 4: updating controllers