             cb         : required    # cb(err, {group:[{account_id:?,first_name:?,last_name:?}], ...})
         if not @_validate_opts(opts) then return
         groups = undefined
-        names  = undefined
         async.series([
             (cb) =>
                 # get account_id's of all users of the project
                 @get_project_data
                     project_id : opts.project_id
-                    columns    : opts.groups
-                    cb         : (err, _groups) =>
+                    columns    : ['users']
+                    cb         : (err, x) =>
                         if err
                             cb(err)
                         else
-                            groups = _groups
-                            for i in [0...groups.length]
-                                if not groups[i]?
-                                    groups[i] = []
+                            users = x.users
+                            groups = {}
+                            for account_id, x of users
+                                g = groups[x.group]
+                                if not g?
+                                    groups[x.group] = [account_id]
+                                else
+                                    g.push(account_id)
                             cb()
             (cb) =>
                 # get names of users
                 @account_ids_to_usernames
                     account_ids : _.flatten((v for k,v of groups))
-                    cb          : (err, _names) =>
-                        names = _names
+                    cb          : (err, names) =>
+                        for group, v of groups
+                            for i in [0...v.length]
+                                account_id = v[i]
+                                x = names[account_id]
+                                v[i] = {account_id:account_id, first_name:x.first_name, last_name:x.last_name}
                         cb(err)
-        ], (err) =>
-            if err
-                opts.cb(err)
-            else
-                for group, v of groups
-                    for i in [0...v.length]
-                        account_id = v[i]
-                        x = names[account_id]
-                        v[i] = {account_id:account_id, first_name:x.first_name, last_name:x.last_name}
-                opts.cb(false, groups)
-        )
+        ], (err) => opts.cb(err, groups))
 
     # Set last_edited for this project to right now, and possibly update its size.
     # It is safe and efficient to call this function very frequently since it will

            account_id : required
            filename   : required
            cb         : undefined
        if not @_validate_uuids(opts) then return
        entry =
            project_id : opts.project_id
            account_id : opts.account_id

            value      : required
            ttl        : required
            cb         : required
        if not @_validate_opts(opts) then return
        @table('remember_me').insert(id:opts.hash, value:opts.value, expires:expire_time(opts.ttl), account_id:opts.account_id).run(opts.cb)

    # Invalidate all outstanding remember me cookies for the given account by
