fix switcher and refine some things