diff --git a/src/main/java/net/floodlightcontroller/core/web/serializers/OFFlowStatsEntryModSerializer.java b/src/main/java/net/floodlightcontroller/core/web/serializers/OFFlowStatsEntryModSerializer.java
index 2cce2d8..f1936c2 100644
--- a/src/main/java/net/floodlightcontroller/core/web/serializers/OFFlowStatsEntryModSerializer.java
+++ b/src/main/java/net/floodlightcontroller/core/web/serializers/OFFlowStatsEntryModSerializer.java
@@ -1,6 +1,8 @@
 package net.floodlightcontroller.core.web.serializers;
 
 import java.io.IOException;
+import java.util.Iterator;
+import java.util.Set;
 
 import net.floodlightcontroller.core.web.OFFlowStatsEntryMod;
 
@@ -8,6 +10,13 @@
 import org.codehaus.jackson.JsonGenerator;
 import org.codehaus.jackson.map.SerializerProvider;
 import org.codehaus.jackson.map.ser.std.SerializerBase;
+import org.projectfloodlight.openflow.protocol.OFFlowModFlags;
+import org.projectfloodlight.openflow.protocol.OFFlowStatsEntry;
+import org.projectfloodlight.openflow.protocol.OFMatchV3;
+import org.projectfloodlight.openflow.protocol.OFOxmList;
+import org.projectfloodlight.openflow.protocol.match.MatchFields;
+import org.projectfloodlight.openflow.protocol.oxm.OFOxm;
+import org.projectfloodlight.openflow.protocol.oxm.OFOxmIpv4DstMasked;
 
 public class OFFlowStatsEntryModSerializer extends SerializerBase<OFFlowStatsEntryMod> {
     
@@ -19,7 +28,38 @@
     public void serialize(OFFlowStatsEntryMod FlowStatsEntryMod, JsonGenerator jGen,
             SerializerProvider sp) throws IOException,
             JsonGenerationException {
+        OFFlowStatsEntry flowStatsEntry = FlowStatsEntryMod.getFlowStatsEntry();
+        OFOxmList matches = ((OFMatchV3)flowStatsEntry.getMatch()).getOxmList();
+        Set<OFFlowModFlags> flags = flowStatsEntry.getFlags();
+        jGen.writeStartObject();
         
+        jGen.writeNumberField("byteCount", flowStatsEntry.getByteCount().getValue());
+        jGen.writeNumberField("cookie", flowStatsEntry.getCookie().getValue());
+        jGen.writeNumberField("durationNsec", flowStatsEntry.getDurationNsec());
+        jGen.writeNumberField("durationSec", flowStatsEntry.getDurationSec());
+        jGen.writeArrayFieldStart("flags");
+        for (OFFlowModFlags flag: flags){
+            jGen.writeNullField(flag.name());;
+        }
+        jGen.writeEndArray();
+        jGen.writeNumberField("hardTimeout", flowStatsEntry.getHardTimeout());
+        jGen.writeNumberField("idleTimeout", flowStatsEntry.getIdleTimeout());
+        jGen.writeArrayFieldStart("match");
+        //jGen.writeStartObject();
+        Iterator<OFOxm<?>> match= matches.iterator();
+        while(match.hasNext()){
+            OFOxm<?> matchGeneric = match.next();
+            if (matchGeneric.getMatchField().id == MatchFields.IPV4_DST){
+                
+                //jGen.writeObjectField("networkDestination", ((OFOxmIpv4DstVer13) matchGeneric).getValue());
+            }
+            
+            
+        }
+        jGen.writeEndArray();
+
+        jGen.writeEndObject();
     }
+    
 
 }
