diff --git a/py_gen/templates/_ofclass.py b/py_gen/templates/_ofclass.py
index 695cce6..6116c78 100644
--- a/py_gen/templates/_ofclass.py
+++ b/py_gen/templates/_ofclass.py
@@ -11,7 +11,12 @@
         if ${m.name} != None:
             self.${m.name} = ${m.name}
         else:
+:: if m.name == 'xid':
+:: # HACK for message xid
+            self.${m.name} = None
+:: else:
             self.${m.name} = ${py_gen.oftype.gen_init_expr(m.oftype, version=version)}
+:: #endif
 :: #endfor
         return
 
diff --git a/py_gen/templates/message.py b/py_gen/templates/message.py
index 39e9722..b781bc1 100644
--- a/py_gen/templates/message.py
+++ b/py_gen/templates/message.py
@@ -54,56 +54,7 @@
     xid = None
 
 :: for ofclass in ofclasses:
-:: from loxi_ir import *
-:: normal_members = [m for m in ofclass.members if type(m) == OFDataMember]
-:: type_members = [m for m in ofclass.members if type(m) == OFTypeMember]
-class ${ofclass.pyname}(Message):
-:: for m in type_members:
-    ${m.name} = ${m.value}
-:: #endfor
-
-    def __init__(self, ${', '.join(["%s=None" % m.name for m in normal_members])}):
-        self.xid = xid
-:: for m in [x for x in normal_members if x.name != 'xid']:
-        if ${m.name} != None:
-            self.${m.name} = ${m.name}
-        else:
-            self.${m.name} = ${py_gen.oftype.gen_init_expr(m.oftype, version=version)}
-:: #endfor
-
-    def pack(self):
-        packed = []
-:: include('_pack.py', ofclass=ofclass, version=version)
-        return ''.join(packed)
-
-    @staticmethod
-    def unpack(buf):
-        if len(buf) < 8: raise loxi.ProtocolError("buffer too short to contain an OpenFlow message")
-        obj = ${ofclass.pyname}()
-:: include('_unpack.py', ofclass=ofclass, version=version)
-        return obj
-
-    def __eq__(self, other):
-        if type(self) != type(other): return False
-        if self.version != other.version: return False
-        if self.type != other.type: return False
-:: for m in normal_members:
-        if self.${m.name} != other.${m.name}: return False
-:: #endfor
-        return True
-
-    def __ne__(self, other):
-        return not self.__eq__(other)
-
-    def __str__(self):
-        return self.show()
-
-    def show(self):
-        import loxi.pp
-        return loxi.pp.pp(self)
-
-    def pretty_print(self, q):
-:: include('_pretty_print.py', ofclass=ofclass)
+:: include('_ofclass.py', ofclass=ofclass, superclass="Message")
 
 :: #endfor
 
diff --git a/py_gen/tests/of10.py b/py_gen/tests/of10.py
index be93239..c4725e3 100644
--- a/py_gen/tests/of10.py
+++ b/py_gen/tests/of10.py
@@ -152,7 +152,7 @@
 
     def test_echo_request_invalid_length(self):
         buf = "\x01\x02\x00\x07\x12\x34\x56"
-        with self.assertRaisesRegexp(ofp.ProtocolError, "buffer too short"):
+        with self.assertRaisesRegexp(ofp.ProtocolError, "Buffer too short"):
             ofp.message.echo_request.unpack(buf)
 
     def test_echo_request_equality(self):
