Lots of fixes; Enums still need doing