 
       queue = [
 
-        ->
+        (next) ->
 
           user.fetchOwnAccount (err, myAccount) ->
-            return logError err  if err
+            return next err  if err
             # if account not found then do nothing and return
-            return logError "Account couldn't found" unless myAccount
+            return next "Account couldn't found" unless myAccount
 
             me = myAccount
-            queue.next()
-
-        ->
+            next()
+
+        (next) ->
 
           if me.referralUsed
-            return logError 'User already get the referrer'
+            return next 'User already get the referrer'
 
           fetchReferrer me, (err, _referrer) ->
-            return logError err  if err
+            return next err  if err
             return  unless _referrer
             referrer = _referrer
-            queue.next()
-
-        ->
-
-          me.update { $set: { 'referralUsed': yes } }, (err) ->
-            return logError err if err
-            queue.next()
-
-        ->
-
-          confirmRewards referrer, me, (err) ->
-            return logError err if err
-            queue.next()
-
-        ->
-
-          confirmRewards me, referrer, (err) ->
-            return logError err if err
-            queue.next()
+            next()
+
+        (next) ->
+
+          me.update { $set: { 'referralUsed': yes } }, next
+
+        (next) ->
+
+          confirmRewards referrer, me, next
+
+        (next) ->
+
+          confirmRewards me, referrer, next
 
       ]
 
-      daisy queue
+      async.series queue, (err) ->
+        logError err  if err
 
 
   do ->

      campaign = null

      queue = [
        ->

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

            campaign = res.campaign
            queue.next()

        ->

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

        ->

          createRewards campaign, referrer, account, (err) ->
            return logError err  if err
            queue.next()

        ->

          createRewards campaign, account, referrer, (err) ->
            return logError err  if err
            queue.next()

      ]

      daisy queue


  addEmailConfimedListener = ->

                reward.providedBy = null
                reward._hasError  = new KodingError 'No user found'

              next()

        async.series queue, (err) ->
          callback null, { total, rewards }

  # Background Processes
  # --------------------
