Build the query through an assembler class, rather than an assemble method on each segment to allow for better conversion to different database engines, and better handling of objects.