anchor.diff:  start_batch(timeout, #state{workers = 0,
                               batches = Batches,
                               orgs_per_batch = NumOrgs,
  -                            node_batch_size = NodeBatchSize}=State) ->
  -    case find_migration_candidates(NumOrgs) of
  -        {ok, none} ->
  +                            node_batch_size = NodeBatchSize,
  +                            orgs_to_migrate = Candidates}=State) ->
  +    case safe_split(NumOrgs, Candidates) of
  +        {[], _} ->
               error_logger:info_msg("no migration candidates~n"),
               log(info, "no migration candidates"),
  -            {next_state, ready, State#state{batches = 0}};
  -        {ok, Orgs} ->
  +            {next_state, ready, State#state{batches = 0, orgs_to_migrate = []}};
  +        {Orgs, OrgsRest} ->
               %% Tell darklaunch to put these orgs into read-only
               %% mode for nodes.
               ok = darklaunch_disable_node_writes([ Name || {_, Name} <- Orgs ]),
  
positive.code:                 Count ->
                      BatchesLeft = Batches - 1,
                      log(info, "~B workers ok, ~B batches to go", [Count, BatchesLeft]),
                      {next_state, running, State#state{workers=Count, batches = BatchesLeft}}
              end
      end.
      
  
negative.code:     log(info, "preloading nodes for ~B orgs", [Amt]),
      case preload_orgs(Amt, State) of
          {ok, State1} ->
              {Preloaded, Active, Complete} = {true, false, false},
              Candidates = case dets:match(all_orgs, ?ORG_SPEC(Preloaded, Active, Complete)) of
                               {error, Why} -> throw({error, Why});
                               Data ->
                                   [{Guid, Name} || [Guid, Name] <- Data]
                           end,
              Summary = summarize_orgs(),
              log(info, "preloading complete"),
              error_logger:info_msg("org summary after preloading: ~p~n", [Summary]),
              log(info, "~256P", [Summary, 10]),
              error_logger:info_msg("preloading complete~n"),
              {next_state, ready, State1#state{orgs_to_migrate = Candidates}};
          Error ->
              error_logger:error_msg("preloading failed~n"),
              {stop, Error, State}
      end.
  
  ready({start, NumBatches, OrgsPerBatch, NodeBatchSize}, _From,
        #state{workers = 0, batches = 0}=State) ->
      State1 = State#state{batches = NumBatches,
  