This looks like a logically separate commit to me. I'll read through Aggregator.scala and try to understand how Preparer would interact with Aggregator and submit a separate issue (and hopefully pull request). Does that sound fair?