expanded switch statements