Seems to me that this is so much like a dictionary that it would have been better to just use a dictionary...