Second intermediate commit for hash aggregation, hash table and refactoring of the aggregation classes.