             tags      : @tags
           }
 
-          sub.save (err)->
+          subscription.save (err)->
             return callback err  if err
 
-            callback null, sub
+            callback null, subscription
 
   subscribe$: secure (client, paymentMethodId, data, callback) ->
     { connection:{ delegate } } = client

    options ?= {}
    options.multiple ?= no

    JPaymentSubscription.fetchAllSubscriptions {
      paymentMethodId
      @planCode
      $or       : [
        {status : 'active'}
        {status : 'canceled'}
      ]
    }, (err, [sub]) =>
      return callback err  if err

      if sub?
        return callback 'Already subscribed.'  unless options.multiple

        quantity = sub.quantity + 1

        update = {
          @planCode
          quantity
          uuid: sub.uuid
        }

        recurly.updateSubscription paymentMethodId, update, (err) =>
          return callback err  if err
          sub.update $set: { quantity }, (err)->
            if err
            then callback err
            else callback null, sub

      else
        recurly.createSubscription paymentMethodId, { @planCode }, (err, result) =>

          { planCode, uuid, quantity, status, activatedAt, expiresAt, renewAt,
            feeAmount } = result

          subscription = new JPaymentSubscription {
            planCode
            uuid
            quantity
