         uri: "#{clever.url_base}#{@constructor.path}/#{@_properties.id}/properties"
         json: obj
         ca: certs
-      _(opts).extend(headers: additional_options.headers) if additional_options.headers
+      _(opts).extend(headers: options.headers) if options.headers
       apply_auth clever.auth, opts
       if _(obj).isFunction()
         cb = obj

      throw new Error "Could not get type from uri: #{uri}, #{JSON.stringify klasses, undefined, 2}" if not Klass
      Klass

    @find: (conditions, fields, options, cb) ->
      [conditions, fields, options, cb] = @_process_args conditions, fields, options, cb
      q = new Query "#{clever.url_base}#{@path}", conditions, options
      q.select fields
      q.post 'exec', (resp, body, cb_post) =>
        q.paging = body.paging

    http_opts.headers ?= {}
    _(http_opts.headers).extend Authorization: "Bearer #{auth.token}"

module.exports = (auth, url_base='https://api.clever.com', options={}) ->
  throw new Error 'Must provide auth' if not auth
  auth = {api_key: auth} if _.isString auth
  clever =
