Promise pipe introduction
return sequence.reduce(function(doWork, funcArr){ return doWork.then(funcArr).catch(errorEnhancer); }, Promise.resolve(data));