change caches to ConcurrentHashMap