added base AggregateRoot to support Event Sourcing