         else
             return null
 
-    add_user_to_project: (opts) =>
-        opts = defaults opts,
-            project_id : required
-            account_id : required
-            group      : required  # see PROJECT_GROUPS above
-            cb         : required  # cb(err)
-
-
-    remove_user_from_project: (opts) =>
-        opts = defaults opts,
-            project_id : required
-            account_id : required
-            group      : required  # see PROJECT_GROUPS above
-            cb         : required  # cb(err)
+
 
     # cb(err, true if project is public)
     project_is_public: (opts) =>

                opts.cb?(err)
            else
                v = misc.dict(([r.id, {first_name:r.first_name, last_name:r.last_name}] for r in x))
                opts.cb(err, v)

    # TODO: change to get_usernames... both here and in CLIENT code.

# TODO: client api -- get rid of any reference to consistency and objectify


async = require('async')
_ = require('underscore')

winston = require('winston')
winston.remove(winston.transports.Console)
winston.add(winston.transports.Console, {level: 'debug', timestamp:true, colorize:true})

{defaults} = misc = require('misc')
required = defaults.required

