Q : fix unbox cascade promise, add emptyPromise