mediator pattern added