Add caching for map