now with worker factory that can indicate when it is done