I want all thread-safety logic to be encapsulated in this class. I'm being defensive, as I don't see a need for opening-up the lock to code outside of this class.