caching and unit tests