please doublecheck the semantics of using a an enum as a map key.  Should (can) `hashCode()` be implemented?