demo app from chapter 2 of tutorial