provided Mediator pattern