Refactor to really burn in the fact that only one thread can be in transaction mode. The current implementation is incomplete and also makes the no transactions in progress case really poor for bread and butter operations like entrySet keySet values. I need to come up with a better way to manage the no current transactions case