add switcher function