handle client mode changes