There could have been other smells involved, like the key being held in some more global scope instead of being passed in via the call stack.