Base class for aggregate states, that already has State Mutator support. It uses a convention based for applying events. Subclasses should have public or private methods using the following convention: void On[NameOfTheEventType]([NameOfTheEventType] ev) These methods are called by a state mutator in order to apply events that modify the current state