adding mediator pattern