Gof from wiki : start learn Visitor pattern