Factor out Worker