factored out preservation; merged rstep into mstep
proved progress