 
           if @isNewRecord
             newObj.id = @getId() if @getId()?
-            db.run(c.r().insert(newObj)).then (reply) =>
+            db.run(c.r().insert(newObj, saveOpts)).then (reply) =>
               unless @id?
                 @id = reply?.generated_keys?[0]
 

          else
            @saveRelated().then =>
              if @getId()?
                db.run(c.r().get(@getId()).update(newObj)).then => @
              else
                reject new ModelError "undefined id"



    beforeSave: (cb) -> cb()

    save: (saveOpts = {}, cb) ->
      beforeSave = Promise.promisify @beforeSave, @

      if _.isFunction saveOpts
        cb = saveOpts
        saveOpts = {}

      promise = beforeSave().then =>
        # TODO: defaults, required
