       @
 
     exec: (cb) =>
-      promise = Q.defer()
+      p = Q.defer()
       opts =
         method: 'get'
         uri: @_url

      apply_auth clever.auth, opts
      waterfall = [async.apply quest, opts].concat(@_post['exec'] or [])
      async.waterfall waterfall, (err, data) ->
        promise.reject err if err
        promise.resolve data
        cb?(err, data)
      return promise.promise
  class Update extends Writeback
    _method: 'patch'
  class Create extends Writeback

      opts.qs[key] = JSON.stringify val for key, val of opts.qs when _(val).isObject()
      waterfall = [async.apply quest, opts].concat(@_post.exec or [])
      async.waterfall waterfall, (err, data) ->
        p.reject err if err
        p.resolve data
        return cb?(err) if err
        cb?(err, data)
      return cb if _.isFunction(cb)
      p.promise

    stream: () => new QueryStream @

