Fleshed out enum module

Makes enums a lot richer.