ElseIf visitor pattern

more info at : http://blog.inadram.com