Use ConcurrentDictionary, remove many locks