This allows iterating over the output channel without having to start another Goroutine outside of the worker pool. This also removes the need for calling Wait().