updating code to mostly return Q.Promises.  not done yet.