Created by: mattclarke
Work towards DM-1730
Broke up the large methods and, hopefully, produced an obvious 'flow'.