sample app CHAPTER 3