refactor how we store keys, each key can be either a string, hash, or string, not all three