@jcredding why not make this whole thing a big `tap`?

```ruby
Worker.new(@queue).tap do |w|
  w.on_work       = proc{ |work_item| do_work(work_item) }
  w.on_waiting    = proc{ @workers_waiting.increment }
  w.on_continuing = proc{ @workers_waiting.decrement }
  w.on_shutdown   = proc{ |worker| despawn_worker(worker) }

  @workers << worker
  @spawned += 1

  w.start
end
```