diff --git a/LineNodes.py b/LineNodes.py
index 0e3013b0eb2a1629e3cad93a5bb010b365cf6c44..cf12f40256f491410311c756e2fa6e655f91f130 100644
--- a/LineNodes.py
+++ b/LineNodes.py
@@ -1,6 +1,6 @@
 from AST import ASTNode, getParseTreeNodes, getTypeName
 from Environment import Env
-from WordNodes import ExprNode
+from WordNodes import makeNodeFromExpr
 
 # containing line level nodes: block, for/while/if, declaration
 
diff --git a/MemberNodes.py b/MemberNodes.py
index 445f8c631652f86ee870976bba807efed4eff167..6a212d78621132f0d1914d83a80347976a2c718c 100644
--- a/MemberNodes.py
+++ b/MemberNodes.py
@@ -1,6 +1,6 @@
 from AST import ASTNode, getParseTreeNodes, getTypeName
 from LineNodes import BlockNode
-from WordNodes import ExprNode
+from WordNodes import makeNodeFromExpr
 from Environment import Env
 from collections import OrderedDict
 
@@ -33,7 +33,7 @@ class FieldNode(ASTNode):
 
                 nameNodes = getParseTreeNodes(['variableInit'], node)
                 for n in nameNodes:
-                    self.fieldInit =  ExprNode(n)
+                    self.fieldInit =  makeNodeFromExpr(n)
 
         if self.fieldInit: self.children.append(self.fieldInit)
 
diff --git a/UnitNodes.py b/UnitNodes.py
new file mode 100644
index 0000000000000000000000000000000000000000..cac7848800bc92409dc55ee695fef8e94ac1fb44
--- /dev/null
+++ b/UnitNodes.py
@@ -0,0 +1,30 @@
+from AST import ASTNode, getParseTreeNodes, getTypeName
+from Environment import Env
+
+
+
+# literals
+class LiteralNode(ASTNode):
+    toLiType = dict({
+        'LITERALBOOL': 'bool',
+        'LITERALCHAR': 'char',
+        'LITERALSTRING': 'String',
+        'NULL': 'null',
+        'NUM': 'int',
+        'ZERO': 'int'
+    })
+    # always list all fields in the init method to show the class structure
+    def __init__(self, parseTree):
+        self.parseTree = parseTree
+        self.liType = toLiType.get(parseTree.children[0].name)  # type of the literal
+        self.value = parseTree.children[0].lex # the value
+        self.env = None
+        self.children = []
+
+        if self.liType == 'int':
+            self.value = int(self.value)
+        if self.liType == 'LITERALBOOL':
+            if self.value == 'false':
+                self.value = False
+            else:
+                self.value = True