I coded it up as a module and then reverted it because I still thought class inheritance best modeled the relationship and it was easier to grok if we were to differentiate the messages in the future through subclasses rather than modules. What do you think?