implement BaseAggregate