finished Chapter 19 - front-end framework