End of part 10: Introduced caching, but didn't get too involved