New worker_allocation implementation.  Less hacky than the old one ;)