/// <summary>
 /// Remove object from composition
 /// </summary>
 /// <param name="c">Composite object</param>
 public abstract void Remove(ComponentBase c);
 /// <summary>
 /// Add object to composition
 /// </summary>
 /// <param name="c">Another composite object</param>
 public abstract void Add(ComponentBase c);
 /// <summary>
 /// Remove object from composition
 /// </summary>
 /// <param name="c">Composite object</param>
 public override void Remove(ComponentBase component)
 {
     children.Remove(component);
 }
 /// <summary>
 /// Add object to composition
 /// </summary>
 /// <param name="c">Another composite object</param>
 public override void Add(ComponentBase component)
 {
     children.Add(component);
 }
 /// <summary>
 /// Remove object from composition
 /// </summary>
 /// <param name="c">Composite object</param>
 public override void Remove(ComponentBase component)
 {
     children.Remove(component);
 }
 /// <summary>
 /// Add object to composition
 /// </summary>
 /// <param name="c">Another composite object</param>
 public override void Add(ComponentBase component)
 {
     children.Add(component);
 }