diff --git a/loxi_front_end/frontend.py b/loxi_front_end/frontend.py
index 7b96fe3..58409d1 100644
--- a/loxi_front_end/frontend.py
+++ b/loxi_front_end/frontend.py
@@ -51,16 +51,14 @@
     elif m_ast[0] == 'data':
         if m_ast[2] == 'length' or m_ast[2] == 'len': # Should be moved to parser
             return ir.OFLengthMember(name=m_ast[2], oftype=get_type(m_ast[1], ctx))
-        elif m_ast[2] == 'actions_len':
-            return ir.OFFieldLengthMember(name=m_ast[2], oftype=get_type(m_ast[1], ctx), field_name='actions')
-        if m_ast[2] == 'version': # Should be moved to parser
+        elif m_ast[2] == 'version': # Should be moved to parser
             return ir.OFVersionMember(name=m_ast[2], oftype=get_type(m_ast[1], ctx))
-        elif m_ast[2] == 'key_length':
-            return ir.OFFieldLengthMember(name=m_ast[2], oftype=get_type(m_ast[1], ctx), field_name='key')
         else:
             return ir.OFDataMember(name=m_ast[2], oftype=get_type(m_ast[1], ctx))
     elif m_ast[0] == 'discriminator':
         return ir.OFDiscriminatorMember(name=m_ast[2], oftype=get_type(m_ast[1], ctx))
+    elif m_ast[0] == 'field_length':
+        return ir.OFFieldLengthMember(name=m_ast[2], oftype=get_type(m_ast[1], ctx), field_name=m_ast[3])
     else:
         raise InputError("Dont know how to create member: %s" % m_ast[0])
 
