Added Switch abstraction