promise integration