Does this need to be a singleton? Seems like only one class should ever be calling the operations of a WorkQueue. And there should be no hard rule that an application can only have 1 work queue.