Fixes #116 

Re-submittal of fix for #116
I included ownerName primarily for the equals and hashCode overrides. Essentially the ownerName is the enum name. This way two EnumValues that are otherwise equivalent but belong to different enums will not evaluate to being the same.