rewrote switchover logic to be more general