         { delegate }            = client.connection
         permissionSet         = null
         defaultPermissionSet  = null
-        daisy queue = [
-          => @fetchPermissionSet (err, model) ->
-              if err then callback err
-              else
-                permissionSet = model
-                queue.next()
-          => @fetchDefaultPermissionSet (err, model) =>
-              if err then callback err
-              else if model?
+
+        queue = [
+
+          (next) =>
+            @fetchPermissionSet (err, model) ->
+              return next err  if err
+              permissionSet = model
+              next()
+
+          (next) =>
+            @fetchDefaultPermissionSet (err, model) =>
+              return next err  if err
+
+              if model?
                 console.log 'already had defaults'
                 defaultPermissionSet = model
                 permissionSet = model unless permissionSet
-                queue.next()
+                next()
               else
                 console.log 'needed defaults fixed'
                 fixDefaultPermissions_ this, permissionSet, (err, newModel) ->
                   defaultPermissionSet = newModel
-                  queue.next()
-          -> callback null, {
-              permissionsByModule
-              permissions         : permissionSet.permissions
-              defaultPermissions  : defaultPermissionSet.permissions
-            }
-        ]
-
+                  next()
+
+        ]
+
+        async.series queue, (err) ->
+          return callback err  if err
+          callback null, {
+            permissionsByModule
+            permissions         : permissionSet.permissions
+            defaultPermissions  : defaultPermissionSet.permissions
+          }
 
   fetchRolesByAccount: (account, callback) ->
 

        contents[event]       = contents.member


        next = -> queue.next()
        queue = admins.map (admin) => =>
          contents.recipient = admin
          @notify admin, event, contents, next


    membershipPolicy.approvalEnabled = no  if requestType is 'by-invite'

    queue.push(

      (next) ->
        membershipPolicy.save next

      (next) =>
        @addMembershipPolicy membershipPolicy, next

    )

    async.series queue, (err) ->
      return callback err  if err
      return callback null, membershipPolicy
      

  destroyMemebershipPolicy:(callback) ->
    @fetchMembershipPolicy (err, policy) ->
