diff --git a/TypeNodes.py b/TypeNodes.py
index dd70d57a76e30d53674b09f673baa24dd3310239..17fc44af3ed30d532346be2aa4f07fde897d97d6 100644
--- a/TypeNodes.py
+++ b/TypeNodes.py
@@ -40,7 +40,7 @@ class ClassInterNode(ASTNode):
         # 9. A class or interface must not contain (declare or inherit) two methods with the same signature but different return types
         # 11. A nonstatic method must not replace a static method
         # 13. A protected method must not replace a public method
-        return self.getContains([])
+        self.contains = self.getContains([])
 
     def getContains(self, hierarchy):
         # check if not acyclic
@@ -176,17 +176,15 @@ class ClassNode(ClassInterNode):
                 raise Exception("ERROR: Class '{}' declares 2 constructors with the same parameter types".format(self.name))
             unique.append(key)
 
-        # centralized point for overlapping class & interface logic
-        contains = super().checkHierarchy()
+        # centralized point for overlapping class & interface logic. Also sets self.contains
+        super().checkHierarchy()
 
         # 10. A class that contains (declares or inherits) any abstract methods must be abstract.
-        for con in contains:
+        for con in self.contains:
             if 'abstract' in con.mods and (not('abstract' in self.mods)):
                 raise Exception("ERROR: Non-abstract Class '{}' contains an abstract method".format(self.name))
             if (not con.body) and (not ('native' in con.mods)) and (not ('abstract' in self.mods)) and (not (con in self.constructors)):
                 raise Exception("ERROR: Non-abstract Class '{}' contains an abstract method {}".format(self.name, con.name))
-        
-        self.contains = contains
 
     # hierarchy: string[]
     def getContains(self, hierarchy):
@@ -290,8 +288,8 @@ class InterNode(ClassInterNode):
                     raise Exception("ERROR: Interface '{}' extends duplicate interfaces '{}'".format(self.name, inter.name))
                 unique.append(inter.name)
 
-        # centralized point for overlapping class & interface logic
-        self.contains = super().checkHierarchy()
+        # centralized point for overlapping class & interface logic. Also sets self.contains
+        super().checkHierarchy()
 
     # hierarchy: string[]
     def getContains(self, hierarchy):