using cachebuilder instead of concurrentmap