switched to microPromise