added promiseThenNext