Added required fields, tested, changed some names made required more precise
Merged toms changes with mine
Made a few tidy ups in terms of code and usability, final commit for SEP