let do_next_step () =
    Synchro.next_step tr
(*       future_configurations.(pred future_depth) pop_configurations.(pred pop_depth); *)
      pof_configurations.(pred pof_depth) past_configurations.(pred past_depth);
    (* rotates the configurations *)
(*     let new_config = pop_configurations.(pred pop_depth) in *)
(*     Array.blit pop_configurations 0 pop_configurations 1 (pred pop_depth); *)
(*     pop_configurations.(0) <- future_configurations.(0); *)
(*     Array.blit future_configurations 1 future_configurations 0 (pred future_depth); *)
(*     future_configurations.(pred future_depth) <- new_config *)
    let new_config = past_configurations.(pred past_depth) in
    Array.blit past_configurations 0 past_configurations 1 (pred past_depth);
    past_configurations.(0) <- pof_configurations.(0);
    Array.blit pof_configurations 1 pof_configurations 0 (pred pof_depth);
    pof_configurations.(pred pof_depth) <- new_config