this data structure needs to be concurrency safe