Doug, with that approach we'd have _remove_empty_keys() return the new dictionary instead of modifying the old one, right?