public void AddChild(QueryNode child)
 {
     child.Parent = this;
     children.Add(child);
 }
 public void InsertChild(int index, QueryNode child)
 {
     child.Parent = this;
     children.Insert(index, child);
 }
 public void RemoveChild(QueryNode child)
 {
     child.Parent = null;
     children.Remove(child);
 }
 public int IndexOfChild(QueryNode child)
 {
     return children.IndexOf(child);
 }