 
     queue = [
 
-      ->
+      (next) ->
 
         reward = new JReward {
           amount         : campaign.perEventAmount

          originId, type, unit
        }

        reward.save (err) ->
          return callback err  if err
          queue.next()

      ->

        campaign.increaseGivenAmount (err) ->
          logError "Couldn't increase given amount:", err  if err?

          callback null

    ]

    daisy queue


  logError = (rest...) -> console.error '[Rewards]', rest...

      campaign = null

      queue = [

        (next) ->
          # TODO Add fetcher for active campaign ~ GG
          JRewardCampaign.isValid 'register', (err, res) ->
            return next err  if err
            return  unless res.isValid

            campaign = res.campaign
            next()

        (next) ->
          fetchReferrer account, (err, _referrer) ->
            return next err  if err
            return  unless _referrer
            referrer = _referrer
            next()

        (next) ->
          createRewards campaign, referrer, account, next

        (next) ->
          createRewards campaign, account, referrer, next

      ]

      async.series queue, (err) ->
        logError err  if err


  addEmailConfimedListener = ->
