Why not simply use a final switch here?