Also, you're adding a feature to the top level interface that is only relevant to a single class, by the looks of it.  That's a leaking abstraction.

Could this be a property of the key?