Switch to strongly typed enums to ensure that what's been passed is a valid value