event -> dynamic construction of promise chain -> resolve