Fix many-to-one reference update

can we do something about the number of arguments to this function. Ideally it should be <=4, which is a bit tricky in this case but we could at least return a thennable from this function and get rid of the last one