implement propose_switch!