changed @:enum abstracts to standard enums