custom cache function. default local lru cache still available