diff --git a/loxi_ir/ir.py b/loxi_ir/ir.py
index 82227fb..e2c4a34 100644
--- a/loxi_ir/ir.py
+++ b/loxi_ir/ir.py
@@ -183,7 +183,7 @@
         super(OFUnifiedClass, self).__init__(*a, **kw)
         self.version_classes = version_classes
 
-    def class_by_version(version):
+    def class_by_version(self, version):
         return self.version_classes[version]
 
 
diff --git a/loxi_ir/ir_offset.py b/loxi_ir/ir_offset.py
index 24589b2..0f27f5e 100644
--- a/loxi_ir/ir_offset.py
+++ b/loxi_ir/ir_offset.py
@@ -190,7 +190,3 @@
             raise Exception("Unknown type for {}.{}: {}".format(fe_class.name, fe_member.name, base_type))
 
     return (count * bytes), length_fixed
-
-def calculate_offsets_and_lengths(protocol):
-    for ir_class in protocol.classes:
-        offset_and_length_for_class(ir_class)
diff --git a/loxi_ir/unified.py b/loxi_ir/unified.py
index 7bcdd83..41b86dc 100644
--- a/loxi_ir/unified.py
+++ b/loxi_ir/unified.py
@@ -53,14 +53,14 @@
                         self.members[v_member.name] = v_member
                     else:
                         if not type(self.members[v_member.name]) == type(v_member):
-                            raise Exception("Error unifying ir class {} - adding version: member_type {} <-> {}".format(
-                                    self.name, v_class.protocol.version, unified_members[v_member.name], v_member))
+                            raise Exception("Error unifying ir class {} - adding version: {} - member_type {} <-> {}".format(
+                                    self.name, v_class.protocol.version, self.members[v_member.name], v_member))
 
             if not self.superclass_set:
                 self.superclass_name = v_class.superclass.name if v_class.superclass else None
             else:
                 if self.superclass_name != v_class.superclass_name:
-                    raise Exception("Error unifying ir class {} - superclass: param {} <-> {}".format(
+                    raise Exception("Error unifying ir class {} - adding version {} - superclass: param {} <-> {}".format(
                             self.name, v_class.protocol.version, self.superclass_name, v_class.superclass_name))
 
             for name, value in v_class.params.items():
@@ -68,7 +68,7 @@
                     self.params[name] = value
                 else:
                     if self.params[name] != value:
-                        raise Exception("Error unifying ir class {} - adding version: param {} <-> {}".format(
+                        raise Exception("Error unifying ir class {} - adding version: {} - param {} <-> {}".format(
                                 self.name, v_class.protocol.version, self.params[name], value))
 
             if v_class.virtual:
