Playing with visitor pattern