Visitor Design Pattern

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