replaced map with google guava cache to restrict cache size