public virtual void InsertAt(int idx, AbstractStatement statement)
 {
     if (IsEditable)
     {
         if (idx != -1)
         {
             if (IsAllowed(statement))
             {
                 statement.RemoveFromParent();
                 PrivateAddStatement(idx, statement);
             }
         }
     }
 }
 public void AddStatement(AbstractStatement statement)
 {
     if (IsAllowed(statement))
     {
         statement.RemoveFromParent();
         PrivateAddStatement(Statements.Count, statement);
     }
 }