caching with versions