mediator prototype