I actually piled `switch` and `case` in together here. Can easily separate them too.