Visitor Pattern Finished and Composite Pattern added