add Switch, correct but yet unoptimized