diff --git a/nodes.py b/nodes.py
index 56013992d78ca20f953ac78045154267d9b209ff_bm9kZXMucHk=..de75fb19b5354d57516eb26b8e4ba2b680fcae71_bm9kZXMucHk= 100644
--- a/nodes.py
+++ b/nodes.py
@@ -277,7 +277,9 @@
     def __init__(self, restriction=None):
         if restriction is not None:
             self.set_where(restriction)
-
+        else:
+            self.query = None
+            
     def copy(self, stmt):
         new = self.query.copy(stmt)
         return Exists(new)
@@ -285,7 +287,12 @@
     @property
     def children(self):
         return (self.query,)
-    
+
+    def append(self, node):
+        assert self.query is None
+        self.query = node
+        node.parent = self
+        
     def is_equivalent(self, other):
         raise NotImplementedError