implemented switches