add delegator pattern