Strongly typed enumerations
Merge branch 'StronglyTypedEnums'