diff --git a/ExprPrimaryNodes.py b/ExprPrimaryNodes.py
index df1dfe5245dd8340ad6aeb3ba151a4bcc175a9bd..4cf2e64580a6378658d64d409c6891f59237d6e4 100644
--- a/ExprPrimaryNodes.py
+++ b/ExprPrimaryNodes.py
@@ -353,7 +353,7 @@ class ClassCreateNode(ASTNode):
 
     def codeGen(self):
         if hasattr(self, "code"):
-            return 
+            return
         self.code = ""
 
         # 1. Allocating space for the object in heap
@@ -385,7 +385,7 @@ class ClassCreateNode(ASTNode):
                      p(instruction="pop", arg1="eax", comment="eax now contains pointer to newly created object")
         self.code += ";End of object creation\n"
 
-        
+
 #################################################################################
 # condOrExpr
 class ExprNode(ASTNode):
@@ -492,7 +492,7 @@ class ExprNode(ASTNode):
         # ebx = left result
         # eax = right result
         # so, basically do "eax = ebx op eax"
-        
+
         # Binary operations:
         # Add, Subtract, Multiply
         if self.op in ['+', '-', '*']:
@@ -681,47 +681,43 @@ class FieldAccessNode(ASTNode):
     # result stored in eax (address)
     # NOTE: this is always called by codeGen, so self.code is already intialized to ""
     def addr(self):
+        result = ""
         fieldNode = self.ID.prefixLink
-        if fieldNode.__class__.__name__ == "VarDclNode":
-            fieldNode = self.ID.staticField
 
         if "static" in fieldNode.mods:
+            if fieldNode.__class__.__name__ == "VarDclNode":
+                fieldNode = self.ID.staticField
             label = fieldNode.typeName + "_" + fieldNode.name
-            self.code += "; Start of calculating address for static field: " + label + "\n" + \
-                         importHelper(fieldNode.typeName, self.typeName, "S_"+label) + \
-                         p(instruction="mov", arg1="eax", arg2="S_"+label, comment="getting address to static field") + \
-                         "; End of field access\n"
+            result += "; Start of calculating address for static field: " + label + "\n" + \
+                        importHelper(fieldNode.typeName, self.typeName, "S_"+label) + \
+                        p(instruction="mov", arg1="eax", arg2="dword S_"+label, comment="getting address to static field") + \
+                        "; End of field access\n"
 
         else:
-            self.code += "; Start of calculating address for non-static field\n"
+            result += "; Start of calculating address for non-static field\n"
             self.primary.codeGen()
-            self.code += self.primary.code
+            result += self.primary.code
             # Null check
             # At this point, eax stores the address of the object
-            self.code += p(instruction="call", arg1="H__Null_Check", comment="calling null check function")
+            result += p(instruction="call", arg1="H__Null_Check", comment="calling null check function")
             # Make eax store the address to the field we're accessing
-            self.code += p(instruction="add", arg1="eax", arg2=self.ID.prefixLink.offset, comment="calculating pointer to the field") 
-            self.code += "; End of calculating address for non-static field\n"
-
-    
-    def codeGen(self):
-        if hasattr(self, "code"):
-            return
-        
-        fieldNode = self.ID.prefixLink
-        label = fieldNode.typeName + "_" + fieldNode.name
-        self.code = "; Accessing a field :" + label + "\n"
-        # Evaluating the address of the field we're trying to access
-        self.addr()
-        self.code += p(instruction="mov", arg1="eax", arg2="[eax]") + \
-                     "; End of field access\n"
-
-            
-
-        
+            result += p(instruction="add", arg1="eax", arg2=self.ID.prefixLink.offset, comment="calculating pointer to the field")
+            result += "; End of calculating address for non-static field\n"
 
+        return result
 
 
+    def codeGen(self):
+      if hasattr(self, "code"):
+          return
+
+      fieldNode = self.ID.prefixLink
+      label = fieldNode.typeName + "_" + fieldNode.name
+      self.code = "; Accessing a field :" + label + "\n"
+      # Evaluating the address of the field we're trying to access
+      self.code += self.addr()
+      self.code += p(instruction="mov", arg1="eax", arg2="[eax]") + \
+                   "; End of field access\n"
 
 
 ###################################################################################