add mediator implementation