improved switch