code: public static Aggregation create(Eventloop eventloop, Executor executor, DefiningClassLoader classLoader,
  			AggregationChunkStorage aggregationChunkStorage, AggregationStructure structure) {
  		checkArgument(structure != null, "Cannot create Aggregation with AggregationStructure that is null");
  		return new Aggregation(eventloop, executor, classLoader, aggregationChunkStorage, structure, new AggregationState(structure));
  	}
docs: Instantiates an aggregation with the specified structure, that runs in a given event loop,
  uses the specified class loader for creating dynamic classes, saves data and metadata to given storages.
  Maximum size of chunk is 1,000,000 bytes.
  No more than 1,000,000 records stay in memory while sorting.
  Maximum duration of consolidation attempt is 30 minutes.
  Consolidated chunks become available for removal in 10 minutes from consolidation.
  
  @param eventloop               event loop, in which the aggregation is to run
  @param executor                executor, that is used for asynchronous work with files
  @param classLoader             class loader for defining dynamic classes
  @param aggregationChunkStorage storage for data chunks