factor out PromiseRDD to PromiseRDDFunctions.scala