enum class should be abstract class