 
   @set
     indexes:
-      uuid         : 'unique'
-    sharedMethods  :
-      static       : [
+      uuid            : 'unique'
+    sharedMethods     :
+      static          : [
         # TODO: this is a really big WTF, and needs to be removed:
-        'all', 'one', 'some',
-        'getToken', 'charge', 'getCharges'
+        'all'
+        'one'
+        'some'
+        'charge'
+        'fetchToken'
+        'fetchCharges'
       ]
-      instance     : ['cancel']
-    schema         :
-      uuid         : String
-      userCode     : String
-      amount       : Number
-      status       : String
-      lastUpdate   : Number
+      instance        : [
+        'cancel'
+      ]
+    schema            :
+      uuid            : String
+      paymentMethodId : String
+      amount          : Number
+      status          : String
+      lastUpdate      : Number
 
-  @getCharges = secure (client, callback)->
-    {delegate} = client.connection
-    selector = userCode : "user_#{delegate._id}"
-
-    JPayment.invalidateCacheAndLoad this, selector, {forceRefresh, forceInterval}, callback
+  @fetchCharges = secure (client, callback)->
+    callback { message: 'Not implemented!' }
 
   @updateCache = (selector, callback)->
     JPayment.updateCache

        charge.save stackCb
    , callback

  @getToken = secure (client, data, callback)->
    {delegate} = client.connection
    JPaymentToken.createToken client,
      planCode: "charge_#{data.planCode}_#{data.amount}"
    , callback

  @charge = secure (client, data, callback)->
    { connection: { delegate } } = client
    JPaymentMethod = require './method'

    { paymentMethodId, description, feeAmount } = data

    JPaymentMethod.one { paymentMethodId }, (err, method) ->
      return callback err  if err
      delegate.hasTarget method, 'payment method', (err, hasTarget) ->
        return callback err  if err
        return callback { message: 'Access denied!' }  unless hasTarget

        recurly.createTransaction paymentMethodId,
          amount  : feeAmount
          desc    : description
        , callback
    # {delegate} = client.connection
    # userCode = "user_#{delegate._id}"


    #       console.log 'transaction created', arguments
    #       callback err, unless err then pay

  cancel: secure ({ connection:{ client } }, callback)->
    recurly.deleteTransaction @paymentMethodId, {@uuid, @amount},
      (err, charge) =>
        return callback err  if err

        @status = charge.status
        @save (err)-> callback err, this
