Add mediator pattern