diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/protocol/match/MatchField.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/protocol/match/MatchField.java
index 65bb22d..11a5705 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/protocol/match/MatchField.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/protocol/match/MatchField.java
@@ -22,14 +22,13 @@
 import org.projectfloodlight.openflow.types.OFVlanVidMatch;
 import org.projectfloodlight.openflow.types.TransportPort;
 import org.projectfloodlight.openflow.types.U16;
-import org.projectfloodlight.openflow.types.U64;
 import org.projectfloodlight.openflow.types.U32;
+import org.projectfloodlight.openflow.types.U64;
 import org.projectfloodlight.openflow.types.U8;
 import org.projectfloodlight.openflow.types.UDF;
 import org.projectfloodlight.openflow.types.VRF;
 import org.projectfloodlight.openflow.types.VlanPcp;
 
-@SuppressWarnings("unchecked")
 public class MatchField<F extends OFValueType<F>> {
     private final String name;
     public final MatchFields id;
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/DatapathId.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/DatapathId.java
index 85b0b37..a43e5d6 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/DatapathId.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/DatapathId.java
@@ -1,11 +1,8 @@
 package org.projectfloodlight.openflow.types;
 
 import org.projectfloodlight.openflow.annotations.Immutable;
-import org.projectfloodlight.openflow.types.DatapathId;
-import org.projectfloodlight.openflow.types.MacAddress;
 import org.projectfloodlight.openflow.util.HexString;
 
-import com.google.common.base.Preconditions;
 import com.google.common.hash.PrimitiveSink;
 import com.google.common.primitives.Bytes;
 import com.google.common.primitives.Longs;
@@ -39,9 +36,9 @@
     public static DatapathId of(byte[] bytes) {
         return new DatapathId(Longs.fromByteArray(bytes));
     }
-    
+
     /**
-     * Creates a {@link DatapathId} from an {@link MacAddress}. This factory 
+     * Creates a {@link DatapathId} from an {@link MacAddress}. This factory
      * method assumes that the {@link DatapathId} is composed of two zero bytes
      * appended by the {@link MacAddress}'s 6 bytes.
      * @param mac the {@link MacAddress} to create the {@link DatapathId} from
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/OFBooleanValue.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/OFBooleanValue.java
index e276092..a667db6 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/OFBooleanValue.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/OFBooleanValue.java
@@ -18,8 +18,6 @@
 package org.projectfloodlight.openflow.types;
 
 import org.jboss.netty.buffer.ChannelBuffer;
-import org.projectfloodlight.openflow.exceptions.OFParseError;
-import org.projectfloodlight.openflow.protocol.OFMessageReader;
 import org.projectfloodlight.openflow.protocol.Writeable;
 
 import com.google.common.hash.PrimitiveSink;
@@ -81,13 +79,6 @@
         bb.writeByte(getInt());
     }
 
-    private static class Reader implements OFMessageReader<OFBooleanValue> {
-        @Override
-        public OFBooleanValue readFrom(ChannelBuffer bb) throws OFParseError {
-            return of(bb.readByte() != 0);
-        }
-    }
-
     @Override
     public int getLength() {
         return 1;
