             cb     : required     # cb(err, {state:?, time:?, error:?})
         dbg = @dbg("state")
         dbg()
-        opts.cb?("state -- not implemented")
+        opts.cb(undefined, {state:'running', time:new Date()})
 
     status: (opts) =>
         opts = defaults opts,
             cb     : required
         dbg = @dbg("status")
         dbg()
-        opts.cb?("status -- not implemented")
+        status =
+            "sage_server.pid"     : false
+            "secret_token"        : 'secret'  # TODO
+            "local_hub.port"      : LOCAL_HUB_PORT
+            "raw.port"            : RAW_PORT
+            "sage_server.port"    : false
+            "local_hub.pid"       : 5     # TODO
+            "console_server.pid"  : false
+            "console_server.port" : false
+        status.quotas = {}
+        status.host = status.ssh = 'host'
+        opts.cb(undefined, status)
 
     open: (opts) =>
         opts = defaults opts,
             cb   : required
         dbg = @dbg("open")
         dbg()
-        opts.cb?("open -- not implemented")
+        opts.cb()
 
     start: (opts) =>
         opts = defaults opts,

            cb     : required
        dbg = @dbg("stop")
        dbg()
        opts.cb?("stop -- not implemented")

    save: (opts) =>
        opts = defaults opts,

        opts.member_host =  opts.member_host > 0
        dbg = @dbg("set_member_host(member_host=#{opts.member_host})")
        dbg()
        opts.cb() # TODO

    set_quotas: (opts) =>
        opts = misc.copy_with(opts, ['disk_quota', 'cores', 'memory', 'cpu_shares', 'network',
                                     'mintime', 'member_host', 'cb'])
        dbg = @dbg("set_quotas")
        dbg()
        opts.cb() # TODO

    set_all_quotas: (opts) =>
        opts = defaults opts,
            cb : required
        dbg = @dbg("set_all_quotas")
        dbg()
        opts.cb() # TODO




