Realized that locking was not necessarily needed so abstracted out as a decorator for the versioning version of the consumer.  Will separate out the versioning as well later.