add lru cache solution