wrapped sealed class trait members in companion object class to make it
clearer what are the valid values for the sealed class / trait