/// <summary>
 /// Will gather all children from this TreeElement
 /// </summary>
 /// <typeparam name="T">a generic TreeElement child class</typeparam>
 /// <param name="element">the root element for the parsing</param>
 /// <returns>an array of TreeElement as T type</returns>
 public static T[] GetChildren <T>(this TreeElement element) where T : TreeElement => GetChildren <T>(element, d => true);
 public void AddChild(TreeElement child)
 {
     child?.ReParent(this);
 }
 /// <summary>
 /// Find helper to search an element within provided TreeElement hierarchy based on its Id
 /// </summary>
 /// <typeparam name="T">a generic TreeElement child class</typeparam>
 /// <param name="element">the root element for the search</param>
 /// <param name="id"></param>
 /// <returns></returns>
 public static T Find <T>(this TreeElement element, int id) where T : TreeElement => Find <T>(element, d => d.Id == id);