Added caching for location