This is an implementation of the Message Pattern described by Steve Bate