             get_snapshots
                 project_id : opts.project_id
                 cb         : (err, snapshots) ->
-                    # randomize so not all in same DC0...
-                    v = ([snaps[0], Math.random(), host] for host, snaps of snapshots when snaps?.length >=1)
-                    v.sort()
+                    v = ([snaps[0], h] for h, snaps of snapshots when snaps?.length >=1)
+                    v.sort()   
                     v.reverse()
-                    v = (x[2] for x in v when x[2] != host)
+                    v = (x[1] for x in v when x[1] != host) 
                     if host?
                         v = [host].concat(v)
                     dbg("v = #{misc.to_json(v)}")

                else
                    return 0
            work = work.slice(opts.start, opts.end)
            async.mapLimit(work, opts.limit, f, cb)
    ], (err) -> opts.cb?(err))


        exclude : []
        only  : undefined      # if given, *ONLY* migrate projects in this list.
        reverse : false
        sort_by_time : true    # if true, stort by time (with newest first)
        loop  : 0              # if >=1; call it again with same inputs once it finishes
        cb    : undefined      # cb(err, {project_id:errors when migrating that project})

