Refactor decoupled timestep