implement a lru map for cache