Split code into smaller chunks. ucm readier bug fixed.

__init__ now just loads in a series of related parts. Also spotted a problem with reading in ucm files where it was assuming padding bytes that were not there.
Added another test

Plots to null