It feels strange to me to have this parsing validation happening in the aggregator constructor. Could it be moved to the parsing phase?