Nit-pick: I usually prefer to have the bodies of case clauses pulled out into methods, unless they are very simple expressions. It makes it easier to get an overview of what cases are being switched to, and reduces the indentation of the code blocks that implement each case.