modeling enums working correctly (functional)