new interface: AggregateBuilder