     if run_time >= @minimum_execution_time do
       {num_iterations, run_time / num_iterations}
     else
-      new_context =
-        %ScenarioContext{
-          scenario_context | num_iterations: num_iterations * @times_multiplier
-        }
-        |> update_benchmarking_function(scenario)
+      new_context = update_num_iterations(scenario_context,
+                                          scenario,
+                                          num_iterations * @times_multiplier)
       try_n_times(scenario, new_context)
     end
   end

      determine_n_times(scenario, scenario_context, fast_warning)
    new_context =
      %ScenarioContext{scenario_context | current_time: current_time(),
                                          end_time: end_time,
                                          num_iterations: num_iterations}
      |> update_benchmarking_function(scenario) # accomodate iterations

    updated_scenario = %Scenario{scenario | run_times: [initial_run_time]}
    do_benchmark(updated_scenario, new_context)

      {1, run_time}
    else
      if fast_warning, do: printer.fast_warning()
      new_context = update_num_iterations(scenario_context,
                                          scenario,
                                          @times_multiplier)
      try_n_times(scenario, new_context)
    end
  end
