improve switcher