Lots of enum stuff... tests not yet completed