ENUM_FROM_STRING macro to keep things tidy and scalable