We spent all this time rewriting this to use an object-oriented API. Why on earth are we still using dicts? I don't understand.