add lru cache support