modify integration method to variable timestep