 
     _handle_change: (x) =>
         console.log('handle ', x)
-        project_id = x.obj.project_id
+        project_id = x.new_val.project_id
         if x.action == 'delete'
+            if not @_users[project_id]?
+                # no users
+                return
             for account_id of @_users[project_id]
                 @_remove_user_from_project(account_id, project_id)
             return

        opts = defaults opts,
            account_id : required
        if @_accounts[opts.account_id]?
            for project_id of @_projects[opts.account_id]
                @_remove_user_from_project(opts.account_id, project_id)
            delete @_accounts[opts.account_id]
        return

    # return *set* of projects that this user is a collaborator on
    projects: (account_id) =>

        dbg("select=#{misc.to_json(select)}")
        if misc.len(select) == 0
            cb('there must be at least one column selected')
            return
        tgname = trigger_name(table, select, watch)
        trigger_exists = undefined
