up to mediator design pattern