add switchMode function