I think we are addressing the wrong problem.
That `if` shouldn't be so huge in the first place.

It's very difficult to understand and to check for someone who hasn't written the code, which in turn is something very dangerous to have.

@cortesi Could you shed some light on this? I'd be happy to do some refactoring on it! ^_^