I have a factory pattern implemented for handling several messages which derive from the class MessageBase (e.g. StartMessage, etc).
To handle these messages, I have diff