Is there a way to do this as a (separate) enum, perhaps with a specialized Value class?