Code cleanup (slightly), enum changed to class for usefulness, class methods that overwrite super class methods can now call this.()