 
     start: (opts) =>
         opts = defaults opts,
+            target : undefined
             cb     : undefined
         dbg = (m) -> winston.debug("GlobalProject.start(#{@project_id}): #{m}")
         dbg()
         state     = undefined
         project   = undefined
         server_id = undefined
-        target    = undefined
+        target    = opts.target
+        dbg("target = #{target}")
 
         async.series([
             (cb) =>
+                if target?
+                    cb(); return
                 @get_location_pref (err, result) =>
                     if not err and result?
                         dbg("setting prefered start target to #{result[0]}")

                                        cb()

                else if running_on.length == 1
                    dbg("done -- nothing further to do -- project already running on one host")
                    cb()
                else
                    dbg("project running on more than one host -- repair by killing all but first; this will force any clients to move to the correct host when their connections get dropped")

                if err
                    opts.cb?(err)
                else if not server_id?
                    opts.cb?() # not running anywhere -- nothing to stop
                else
                    @project
                        server_id : server_id
                        cb        : (err, project) =>
                            if err
                                opts.cb?(err)
                            else
                                project.stop
                                    force : opts.force
                                    cb    : opts.cb

    # change the location preference for the next start, and attempts to stop
    # if running somewhere now.
