added promisePipe and promiseWorker