Also this doesn't need to be a ConcurrentMap if the GuardedBy tags are correct and this is always accessed while holding the lock.