allow custom step size