I see now that this is needed because of the self-initialized data hash. It's proven handy before but do you think that it forces us add these workarounds too much? Maybe it doesn't need to auto-initialize missing keys as hashes.