diff --git a/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver13/OFInstructionIdsVer13.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver13/OFInstructionIdsVer13.java
new file mode 100644
index 0000000..baeb782
--- /dev/null
+++ b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver13/OFInstructionIdsVer13.java
@@ -0,0 +1,106 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver13;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+
+public class OFInstructionIdsVer13 implements OFInstructionIds {
+    public final static OFInstructionIdsVer13 INSTANCE = new OFInstructionIdsVer13();
+
+
+
+
+    public OFInstructionIdApplyActions applyActions() {
+        return OFInstructionIdApplyActionsVer13.INSTANCE;
+    }
+
+    public OFInstructionIdBsnArpOffload bsnArpOffload() {
+        return OFInstructionIdBsnArpOffloadVer13.INSTANCE;
+    }
+
+    public OFInstructionIdBsnDeny bsnDeny() {
+        return OFInstructionIdBsnDenyVer13.INSTANCE;
+    }
+
+    public OFInstructionIdBsnDhcpOffload bsnDhcpOffload() {
+        return OFInstructionIdBsnDhcpOffloadVer13.INSTANCE;
+    }
+
+    public OFInstructionIdBsnDisableSplitHorizonCheck bsnDisableSplitHorizonCheck() {
+        return OFInstructionIdBsnDisableSplitHorizonCheckVer13.INSTANCE;
+    }
+
+    public OFInstructionIdBsnDisableSrcMacCheck bsnDisableSrcMacCheck() {
+        return OFInstructionIdBsnDisableSrcMacCheckVer13.INSTANCE;
+    }
+
+    public OFInstructionIdBsnDisableVlanCounters bsnDisableVlanCounters() {
+        return OFInstructionIdBsnDisableVlanCountersVer13.INSTANCE;
+    }
+
+    public OFInstructionIdBsnPacketOfDeath bsnPacketOfDeath() {
+        return OFInstructionIdBsnPacketOfDeathVer13.INSTANCE;
+    }
+
+    public OFInstructionIdBsnPermit bsnPermit() {
+        return OFInstructionIdBsnPermitVer13.INSTANCE;
+    }
+
+    public OFInstructionIdBsnPrioritizePdus bsnPrioritizePdus() {
+        return OFInstructionIdBsnPrioritizePdusVer13.INSTANCE;
+    }
+
+    public OFInstructionIdBsnRequireVlanXlate bsnRequireVlanXlate() {
+        return OFInstructionIdBsnRequireVlanXlateVer13.INSTANCE;
+    }
+
+    public OFInstructionIdClearActions clearActions() {
+        return OFInstructionIdClearActionsVer13.INSTANCE;
+    }
+
+    public OFInstructionIdGotoTable gotoTable() {
+        return OFInstructionIdGotoTableVer13.INSTANCE;
+    }
+
+    public OFInstructionIdMeter meter() {
+        return OFInstructionIdMeterVer13.INSTANCE;
+    }
+
+    public OFInstructionIdWriteActions writeActions() {
+        return OFInstructionIdWriteActionsVer13.INSTANCE;
+    }
+
+    public OFInstructionIdWriteMetadata writeMetadata() {
+        return OFInstructionIdWriteMetadataVer13.INSTANCE;
+    }
+
+    public OFMessageReader<OFInstructionId> getReader() {
+        return OFInstructionIdVer13.READER;
+    }
+
+
+    public OFVersion getVersion() {
+            return OFVersion.OF_13;
+    }
+}
