       instance        :
         delete        :
           (signature Function)
-        share         :
+        shareWith     :
           (signature Object, Function)
-        # withold       :
-        #   (signature Object, Function)
+        fetchUsers    :
+          (signature Function)
         # update        :
         #   (signature Object, Function)
 

      options ?= { limit : 10 }

      {delegate} = client.connection
      delegate.fetchCredentials as: "user",
        targetOptions : {
          selector, options
        }, callback


  # .share can be used like this:
  #
  # JCredentialInstance.share { user: yes, owner: no, target: "gokmen"}, cb

  share: permit

    advanced: [
      { permission: 'update credential', validateWith: Validators.own }

          return callback new KodingError "Target not found."

        { models } = result
        [ target ] = models

        if target instanceof JUser
          target.fetchOwnAccount (err, account)=>
