co-promise for when you want co but need to return a promise