anchor.diff:  working(timeout, #state {max_worker_count = MW,
                            live_worker_count = LW,
                            worker = #migration_worker{next_object_generator = Next,
  -                                                    supervisor = SupMod,
                                                       callback_module = Mod}}
                            = State) when LW < MW ->
   
  
positive.code: migrate_user_password_storage(all, NumWorkers) ->
      migrate_user_password_storage(-1, NumWorkers);
  migrate_user_password_storage(NumUsers, NumWorkers) ->
      Worker = #migration_worker{supervisor = mover_transient_worker_sup,
                                 processor_fun = fun mover_user_hash_converter:convert_user/1,
                                 callback_module = mover_user_hash_converter_callback},
      gen_fsm:sync_send_event(?SERVER, {start, NumUsers, NumWorkers, Worker}).
  
negative.code:             %% Stop and wait for workers to end.
              {next_state, halting, State#state {objects_remaining = 0}, 0};
          [Object] ->
              start_worker(Object, State);
          Object ->
              start_worker(Object, State)
      end.
  
  working({start, _, _, _, _}, _From, State) ->
      {reply, {error, busy_now}, halting, State}.
  
  
  start_worker(Object, #state{live_worker_count = LW,
                                       objects_remaining = OR,
                                       acct_info = AcctInfo,
                                       worker = #migration_worker{processor_fun = Fun,
                                                                  callback_module = Mod}} = State) ->
      InitialState = call_if_exported(Mod,migration_start_worker_args,[Object, AcctInfo, Fun],  fun default_worker_args/3),
      case apply(Mod:supervisor(), start_worker, [Mod | InitialState]) of
  