sample app for Chapter 3