use Semigroup in Aggregator