updated with workerpool