public void VisitComposite(IComposite <T> composite)
 {
     composite.Children.ForEach(child => child.AcceptComposite(this));
     composite.Accept(this);
 }