A bi-map would be handy... This pattern is used in many places.