Implement a bit of caching