As we discussed, this could have problems in a multi-threaded environment. It would make more sense to have a service-like thing that you tell
* service.startUsing(IdSet)
* service.stopUsing(IdSet)