fix ConcurrentModificationException by using ConcurrentHashMap