5.0: no longer use experimental switch statement