core: mediator pattern