Lots of tidy up. Essentially moved all the minimisation logic to the minimise classes