My main thought is: are you sure you need to store different trackers for different threads?  A quick look at the class, I didn't find data mutation there.