finished chapter 2 demo app