                     v = @_command_cbs[opts.action]
                     delete @_command_cbs[opts.action]
                     for cb in v
-                        cb(err, result)
-                else
-                    opts.cb(err, result)
+                        cb?(err, result)
+                else
+                    opts.cb?(err, result)
 
     command: (opts) =>
         opts = defaults opts,

            args        : undefined
            at_most_one : false     # ignores subsequent args if set -- only use this for things where args don't matter
            timeout     : TIMEOUT
            cb          : required
        dbg = @dbg("_command(action:'#{opts.action}')")

        if opts.at_most_one

            else if mesg.action == 'mintime'
                p.set_mintime
                    mintime : mesg.args[0]
                    cb      : (err, r) ->
                        resp = r; cb(err)
            else if mesg.action == 'network'
                p.set_network
                    network : mesg.args.length == 0 # no arg = enable
                    cb      : (err, r) ->
                        resp = r; cb(err)
            else
