diff --git a/openflow_input/standard-1.4 b/openflow_input/standard-1.4
index db0854b..d7e38eb 100644
--- a/openflow_input/standard-1.4
+++ b/openflow_input/standard-1.4
@@ -751,8 +751,8 @@
     uint16_t miss_send_len;
 };
 
-struct ofp_table_mod_prop_header {
-    uint16_t type; /* One of OFPTMPT_*. */
+struct of_table_mod_prop {
+    uint16_t type == ?; /* One of OFPTMPT_*. */
     uint16_t length; /* Length in bytes of this property. */
 };
 
@@ -764,11 +764,11 @@
     uint8_t table_id;
     pad(3);
     uint32_t config;
-    list(of_table_mod_prop_header_t) properties;
+    list(of_table_mod_prop_t) properties;
 };
 
-struct ofp_port_desc_prop_header {
-    uint16_t type; /* One of OFPPDPT_*. */
+struct of_port_desc_prop {
+    uint16_t type == ?; /* One of OFPPDPT_*. */
     uint16_t length; /* Length in bytes of this property. */
 };
 
@@ -781,7 +781,7 @@
     of_port_name_t name;
     enum ofp_port_config config; /* Bitmap of OFPPC_* flags. */
     enum ofp_port_state state; /* Bitmap of OFPPS_* flags. */
-    list(of_port_desc_prop_header_t) properties;
+    list(of_port_desc_prop_t) properties;
 };
 
 struct of_features_request : of_header {
@@ -815,8 +815,8 @@
     of_port_desc_t desc;
 };
 
-struct of_port_mod_prop_header {
-    uint16_t type; /* One of OFPPMPT_*. */
+struct of_port_mod_prop {
+    uint16_t type == ?; /* One of OFPPMPT_*. */
     uint16_t length; /* Length in bytes of this property. */
 };
 
@@ -831,7 +831,7 @@
     pad(2);
     uint32_t config;
     uint32_t mask;
-    list(of_port_mod_prop_header_t) properties;
+    list(of_port_mod_prop_t) properties;
 };
 
 // FIXME Does this need to be v4?
@@ -846,7 +846,7 @@
 struct of_action_id {
     uint16_t type;
     uint16_t len;
-    list(uint8_t) exp_data;
+    of_octets_t exp_data;
 };
 
 struct of_action_output : of_action {
@@ -979,7 +979,7 @@
 struct of_instruction_goto_table : of_instruction {
     uint16_t type == 1;
     uint16_t len;
-    list(uint8_t) exp_data;
+    of_octets_t exp_data;
 };
 
 struct of_instruction_write_metadata : of_instruction {
@@ -1485,14 +1485,14 @@
 };
 
 /* Common header for all port stats properties. */
-struct ofp_port_stats_prop_header {
-    uint16_t         type;    /* One of OFPPSPT_*. */
+struct of_port_stats_prop {
+    uint16_t         type == ?; /* One of OFPPSPT_*. */
     uint16_t         length;  /* Length in bytes of this property. */
 };
 
 /* Ethernet port stats property. */
-struct ofp_port_stats_prop_ethernet {
-    uint16_t         type;    /* OFPPSPT_ETHERNET. */
+struct of_port_stats_prop_ethernet : of_port_stats_prop {
+    uint16_t         type == 0; /* OFPPSPT_ETHERNET. */
     uint16_t         length;  /* Length in bytes of this property. */
     pad(4);
 
@@ -1503,8 +1503,8 @@
 };
 
 /* Optical port stats property. */
-struct ofp_port_stats_prop_optical {
-    uint16_t         type;
+struct of_port_stats_prop_optical : of_port_stats_prop {
+    uint16_t         type == 1;
     uint16_t         length;
     pad(4);
 
@@ -1522,12 +1522,12 @@
 };
 
 /* Experimenter port stats property. */
-struct ofp_port_stats_prop_experimenter {
-    uint16_t         type; 
+struct of_port_stats_prop_experimenter : of_port_stats_prop {
+    uint16_t         type == 0xffff;
     uint16_t         length; 
-    uint32_t         experimenter;
+    uint32_t         experimenter == ?;
     uint32_t         exp_type;
-    list(uint32_t)         experimenter_data;
+    of_octets_t      experimenter_data;
 };
 
 struct of_port_stats_entry {
@@ -1544,11 +1544,11 @@
     uint64_t tx_errors;
     uint32_t duration_sec;
     uint32_t duration_nsec;
-    list(of_port_desc_prop_header_t) properties;
+    list(of_port_stats_prop_t) properties;
 };
 
-struct of_queue_stats_prop_header {
-    uint16_t         type;
+struct of_queue_stats_prop {
+    uint16_t         type == ?;
     uint16_t         length;
 };
 
@@ -1564,7 +1564,7 @@
     uint32_t duration_nsec;
                           
 
-    list(of_queue_stats_prop_header_t) properties;
+    list(of_queue_stats_prop_t) properties;
 };
 
 struct of_bucket_counter {
@@ -1842,7 +1842,7 @@
 struct of_table_feature_prop_experimenter : of_table_feature_prop {
     uint16_t         type == 65534;
     uint16_t         length;
-    uint32_t         experimenter;
+    uint32_t         experimenter == ?;
     uint32_t         subtype;
     of_octets_t      experimenter_data;
 };
@@ -1850,7 +1850,7 @@
 struct of_table_feature_prop_experimenter_miss : of_table_feature_prop {
     uint16_t         type == 65535;
     uint16_t         length;
-    uint32_t         experimenter;
+    uint32_t         experimenter == ?;
     uint32_t         subtype;
     of_octets_t      experimenter_data;
 };
