Understanding the Mediator Design Pattern in C#