This line just looks "icky", is the best way to describe it.  It does make me think that keys (and points) should respond to `#to_str` and accept strings in the constructor.