snapshot method now schedules timer to snapshot at the end of the timestep preventing dup snapshots per timestep.