final semantic switch