basically re-wrote the update function so that it works, without flourishes. there is still a bug where some of the flow gets lost, though