replaced SavingPromise and CancelingPromise with handler arrays