         credential.save (err)->
           return  if failed err, callback, credData
 
-          delegate.addCredential credential, as: "user"
           delegate.addCredential credential, as: "owner", (err)->
             return  if failed err, callback, credential, credData
 


    success: (client, options, callback)->

      {target, owner, user} = options

      setPermissionFor = (target, callback)=>

        method = (x)-> if x then 'assureCredential' else 'removeCredential'

        daisy queue = [
          =>
            if user?
              target[method(user)]  this, as: 'user', queue.next
            else
              queue.next()
        ,
          =>
            if owner?
              target[method(owner)] this, as: 'owner', queue.next
            else
              queue.next()
        ,
          -> callback null
        ]

      JName.fetchModels target, (err, result)=>


      instance        :
        delete        :
          (signature Function)
        shareWith     :
          (signature Object, Function)
        fetchUsers    :
          (signature Function)
        # update        :
        #   (signature Object, Function)

