Implemented Mediator Pattern