improved aggregation method