Use When instead of FulfilledPromise and RejectedPromise