diff --git a/ast.py b/ast.py
index b4a32a000ed20c80cdf95eb6d3c951df0a055a32..60be3db9b2a543938c6b4f3d0ec88035a7bbcc4a 100644
--- a/ast.py
+++ b/ast.py
@@ -36,9 +36,6 @@ class Node(object):
             result.update(arg.atoms(argType))
         return result
 
-    def children(self):
-        yield None
-
 
 class KernelFunction(Node):
 
@@ -99,7 +96,7 @@ class KernelFunction(Node):
 
     @property
     def args(self):
-        return [self._body]
+        yield self._body
 
     @property
     def fieldsAccessed(self):
@@ -113,8 +110,6 @@ class KernelFunction(Node):
                                              l.isFieldStrideArgument, l.name),
                               reverse=True)
 
-    def children(self):
-        yield self.body
 
     def __str__(self):
         self._updateParameters()
@@ -182,9 +177,6 @@ class Block(Node):
             definedSymbols.update(a.symbolsDefined)
         return result - definedSymbols
 
-    def children(self):
-        return self._nodes
-
     def __str__(self):
         return ''.join('{!s}\n'.format(node) for node in self._nodes)
 
@@ -285,9 +277,6 @@ class LoopOverCoordinate(Node):
     def coordinateToLoopOver(self):
         return self._coordinateToLoopOver
 
-    def children(self):
-        yield self.body
-
     def __str__(self):
         return 'loop:{!s} in {!s}:{!s}:{!s}\n{!s}'.format(self.loopCounterName, self.start, self.stop, self.step,
                                                           textwrap.indent(str(self.body), '\t'))
diff --git a/backends/dot.py b/backends/dot.py
index 3578e525f9e18b262998eb6fc3daa97b8c925c7a..b8d99f75f454f041123646724370c4f494507350 100644
--- a/backends/dot.py
+++ b/backends/dot.py
@@ -21,10 +21,10 @@ class DotPrinter(Printer):
         self._print(loop.body)
 
     def _print_Block(self, block):
-        for node in block.children():
+        for node in block.args:
             self._print(node)
         parent = block.parent
-        for node in block.children():
+        for node in block.args:
             self.dot.edge(self._nodeToStrFunction(parent), self._nodeToStrFunction(node))
             #parent = node
 
diff --git a/backends/llvm.py b/backends/llvm.py
index e3cf473cbd98415ebb84986edd66d75f3eb8a3b3..fe11e77a46291a336e9c984ed741b9641de2c577 100644
--- a/backends/llvm.py
+++ b/backends/llvm.py
@@ -122,7 +122,7 @@ class LLVMPrinter(Printer):
         return fn
 
     def _print_Block(self, block):
-        for node in block.children():
+        for node in block.args:
             self._print(node)
 
     def _print_LoopOverCoordinate(self, loop):
diff --git a/transformations.py b/transformations.py
index 5f38bc384fb24b194ed924ba85c27be2574d1613..aea9eb56b5062163426c8139d545c33529ae50fb 100644
--- a/transformations.py
+++ b/transformations.py
@@ -515,4 +515,5 @@ def getLoopHierarchy(astNode):
         node = getNextParentOfType(node, ast.LoopOverCoordinate)
         if node:
             result.append(node.coordinateToLoopOver)
-    return reversed(result)
\ No newline at end of file
+    return reversed(result)
+