Chapter 8 - Finish catalog display, add tests and caching