wip-Development

i had to create a new PR. i think when i was updating my heroku account i pushed to the wrong remote so it looks like all of the 'previous' development branch was merged into master.
I can tell from the structure of the call that this doesn't use if-match with an etag. We should add that. Easiest is to create an object that represents the state and gets passed around, remembering the etag if fetched from the server