Shouldn't this line be deferred.reject? Either way, might better to wrap everything in `new Promise((resolve, reject)->...)` and use resolve and reject, since that's what we're doing everywhere else?