change structure & add laws for enums
Merge pull request #1 from jdegoes/ready/sane-enums

change structure & add laws for enums