This part I'm not happy with. @magopian helped me write it but we couldn't figure out a way to do this without the `.update()`. I don't like that we are pushing dicts around like this.