refactor delegations