http://techiworks.com/mediator-pattern/