add a switch function