       return callback err  if err
       return callback { message: 'Access denied!' }  unless hasTarget
 
-      @checkUsage pack, (err, usage) =>
-        return callback err  if err
-
-        { quantities } = pack
-
-        op = $set: (Object.keys quantities)
-          .reduce( (memo, key) =>
-            memo["usage.#{ key }"] = (@usage[key] ? 0) + quantities[key]
-            memo
-          , {})
-
-        @update op, (err) =>
-          return callback err  if err
-
-          @createFulfillmentNonce pack, callback+      @debit pack, callback, multiplyFactor
+  
+  credit$: secure (client, pack, callback) ->
+    @debit$ client, pack, callback, -1

        'calculateRefund'
        'checkUsage'
        'debit'
      ]
    schema          :
      uuid          : String

    selector = { paymentMethodId: selector }  if 'string' is typeof selector
    @fetchAllSubscriptions selec, callback

  @fetchAllSubscriptions = (selector, callback) ->
    console.log { selector }
    JPayment.invalidateCacheAndLoad this, selector, {
      forceRefresh
      forceInterval
    }, callback

  @updateCache = (selector, callback)->
    JPayment.updateCache
