refactored the aggregate builder methods into their own class