Add support for multiple worker threads, and creating and destroying them dynamically. Add a nice interface too: async.ensure.atLeast(3).atMost(5)