Share logic with DefaultPromise