recommended to use aggregate_data = defaultdict(list)