Moved association implementation details to its own class.
Extracted adapter statement building to class.
Made precompile asset list easier to read.
Reduce repetition and fix a couple of typos.