revise time_per_step and add tests