diff --git a/CFGBoltzmann.py b/CFGBoltzmann.py
index 8dab0fdcfad01aaf9f2bf840c30ff97e270fae3c..b05fef5b07350573dd8166fdbd3c1e9375f4ed51 100644
--- a/CFGBoltzmann.py
+++ b/CFGBoltzmann.py
@@ -4,6 +4,26 @@ import random
 from enum import *
 
 
+
+class TreeNode:
+    def __init__(self, language_element, subnodes):
+        self.language_element = language_element
+        self.subnodes = subnodes
+
+    def __str__(self):
+        return str(self.language_element) + " " + str(self.subnodes)
+
+
+def walk_the_tree(tree, level = 1):
+    if tree == None:
+        return
+
+    print("    " * (level -1) + "|---" + str(tree.language_element) + " with " + str(len(tree.subnodes)) + " subnodes")
+    for subnode in tree.subnodes:
+        walk_the_tree(subnode, level + 1)
+
+
+
 CFG = collections.namedtuple("CFG", "nonterminals terminals rules start")
 # We define a context-free grammar as:
 # 1. A list of nonterminal symbols