convert Deferreds to Promises