split work initiator from work doer