             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
+            cb          : undefined
         dbg = @dbg("_command(action:'#{opts.action}')")
 
         if opts.at_most_one

                    @_state      = undefined
                    @_state_time = new Date()
                    @_state_error = undefined
                else
                    @_state      = results[0].state
                    @_state_time = new Date(results[0].state_time)
                    @_state_error= results[0].state_error
                    @_mintime    = results[0].mintime
                    dbg("fetched project info from db: state=#{@_state}, state_time=#{@_state_time}, state_error=#{@_state_error}, mintime=#{@_mintime}s")
                    if not STATES[@_state]?.stable
                        dbg("updating non-stable state")

        dbg = @dbg("constructor")
        sqlite_db.select
            table   : 'projects'
            columns : ['state', 'state_time', 'state_error', 'mintime', 'network']
            where   : {project_id : @project_id}
            cb      : (err, results) =>
                if err
