made clearer - larger switch statement