to do Complex switcher