#4: Adding mediator pattern