reduce visibility of DeferredPromiseImpl