[fixes #1265] don’t diverge the promise chain (we must wait for the upda...

...te to occur)

also some MISC refactoring

TODO:

- [ ] tests
- [ ] audit for other issues