refeactor ENUM class