diff --git a/src/main/java/net/onrc/onos/api/newintent/AbstractIntent.java b/src/main/java/net/onrc/onos/api/newintent/AbstractIntent.java
index f2e3d8a..0058860 100644
--- a/src/main/java/net/onrc/onos/api/newintent/AbstractIntent.java
+++ b/src/main/java/net/onrc/onos/api/newintent/AbstractIntent.java
@@ -16,6 +16,13 @@
         this.id = id;
     }
 
+    /**
+     * Constructor for serializer.
+     */
+    protected AbstractIntent() {
+        this.id = null;
+    }
+
     @Override
     public IntentId getId() {
         return id;
diff --git a/src/main/java/net/onrc/onos/api/newintent/ConnectivityIntent.java b/src/main/java/net/onrc/onos/api/newintent/ConnectivityIntent.java
index ecb1d6b..cd03272 100644
--- a/src/main/java/net/onrc/onos/api/newintent/ConnectivityIntent.java
+++ b/src/main/java/net/onrc/onos/api/newintent/ConnectivityIntent.java
@@ -39,6 +39,15 @@
     }
 
     /**
+     * Constructor for serializer.
+     */
+    protected ConnectivityIntent() {
+        super();
+        this.match = null;
+        this.action = null;
+    }
+
+    /**
      * Returns the match specifying the type of traffic.
      *
      * @return traffic match
diff --git a/src/main/java/net/onrc/onos/api/newintent/IntentEvent.java b/src/main/java/net/onrc/onos/api/newintent/IntentEvent.java
index 670e87e..3dcf2a8 100644
--- a/src/main/java/net/onrc/onos/api/newintent/IntentEvent.java
+++ b/src/main/java/net/onrc/onos/api/newintent/IntentEvent.java
@@ -33,6 +33,16 @@
     }
 
     /**
+     * Constructor for serializer.
+     */
+    protected IntentEvent() {
+        this.intent = null;
+        this.state = null;
+        this.previous = null;
+        this.time = 0;
+    }
+
+    /**
      * Returns the state of the intent which caused the event.
      *
      * @return the state of the intent
diff --git a/src/main/java/net/onrc/onos/api/newintent/IntentId.java b/src/main/java/net/onrc/onos/api/newintent/IntentId.java
index b7cdb01..ebe1b45 100644
--- a/src/main/java/net/onrc/onos/api/newintent/IntentId.java
+++ b/src/main/java/net/onrc/onos/api/newintent/IntentId.java
@@ -27,6 +27,12 @@
         return new IntentId(id);
     }
 
+    /**
+     * Constructor for serializer.
+     */
+    protected IntentId() {
+        this.id = 0;
+    }
 
     /**
      * Constructs the ID corresponding to a given long value.
diff --git a/src/main/java/net/onrc/onos/api/newintent/MultiPointToSinglePointIntent.java b/src/main/java/net/onrc/onos/api/newintent/MultiPointToSinglePointIntent.java
index 99c1c02..610863a 100644
--- a/src/main/java/net/onrc/onos/api/newintent/MultiPointToSinglePointIntent.java
+++ b/src/main/java/net/onrc/onos/api/newintent/MultiPointToSinglePointIntent.java
@@ -44,6 +44,15 @@
     }
 
     /**
+     * Constructor for serializer.
+     */
+    protected MultiPointToSinglePointIntent() {
+        super();
+        this.ingressPorts = null;
+        this.egressPort = null;
+    }
+
+    /**
      * Returns the set of ports on which ingress traffic should be connected to the egress port.
      *
      * @return set of ingress ports
diff --git a/src/main/java/net/onrc/onos/api/newintent/OpticalConnectivityIntent.java b/src/main/java/net/onrc/onos/api/newintent/OpticalConnectivityIntent.java
index 174d8c0..9e5c3bc 100644
--- a/src/main/java/net/onrc/onos/api/newintent/OpticalConnectivityIntent.java
+++ b/src/main/java/net/onrc/onos/api/newintent/OpticalConnectivityIntent.java
@@ -30,6 +30,15 @@
     }
 
     /**
+     * Constructor for serializer.
+     */
+    protected OpticalConnectivityIntent() {
+        super();
+        this.srcSwitchPort = null;
+        this.dstSwitchPort = null;
+    }
+
+    /**
      * Gets source transponder port.
      *
      * @return The source transponder port.
diff --git a/src/main/java/net/onrc/onos/api/newintent/PacketConnectivityIntent.java b/src/main/java/net/onrc/onos/api/newintent/PacketConnectivityIntent.java
index e03166c..f4eecf9 100644
--- a/src/main/java/net/onrc/onos/api/newintent/PacketConnectivityIntent.java
+++ b/src/main/java/net/onrc/onos/api/newintent/PacketConnectivityIntent.java
@@ -55,6 +55,19 @@
     }
 
     /**
+     * Constructor for serializer.
+     */
+    protected PacketConnectivityIntent() {
+        super();
+        this.srcSwitchPorts = null;
+        this.match = null;
+        this.dstSwitchPorts = null;
+        this.canSetupOpticalFlow = false;
+        this.idleTimeoutValue = 0;
+        this.hardTimeoutValue = 0;
+    }
+
+    /**
      * Gets the set of source switch ports.
      *
      * @return the set of source switch ports.
diff --git a/src/main/java/net/onrc/onos/api/newintent/PathIntent.java b/src/main/java/net/onrc/onos/api/newintent/PathIntent.java
index db11f4c..5b9a42f 100644
--- a/src/main/java/net/onrc/onos/api/newintent/PathIntent.java
+++ b/src/main/java/net/onrc/onos/api/newintent/PathIntent.java
@@ -37,6 +37,11 @@
         this.path = ImmutableList.copyOf(checkNotNull(path));
     }
 
+    protected PathIntent() {
+        super();
+        this.path = null;
+    }
+
     /**
      * Returns the links which the traffic goes along.
      *
diff --git a/src/main/java/net/onrc/onos/api/newintent/PointToPointIntent.java b/src/main/java/net/onrc/onos/api/newintent/PointToPointIntent.java
index 9672690..d57f782 100644
--- a/src/main/java/net/onrc/onos/api/newintent/PointToPointIntent.java
+++ b/src/main/java/net/onrc/onos/api/newintent/PointToPointIntent.java
@@ -33,6 +33,14 @@
         this.egressPort = checkNotNull(egressPort);
     }
 
+    /**
+     * Constructor for serializer.
+     */
+    protected PointToPointIntent() {
+        super();
+        this.ingressPort = null;
+        this.egressPort = null;
+    }
 
     /**
      * Returns the port on which the ingress traffic should be connected to
diff --git a/src/main/java/net/onrc/onos/api/newintent/SinglePointToMultiPointIntent.java b/src/main/java/net/onrc/onos/api/newintent/SinglePointToMultiPointIntent.java
index e2ee22f..d46197f 100644
--- a/src/main/java/net/onrc/onos/api/newintent/SinglePointToMultiPointIntent.java
+++ b/src/main/java/net/onrc/onos/api/newintent/SinglePointToMultiPointIntent.java
@@ -44,6 +44,15 @@
     }
 
     /**
+     * Constructor for serializer.
+     */
+    protected SinglePointToMultiPointIntent() {
+        super();
+        this.ingressPort = null;
+        this.egressPorts = null;
+    }
+
+    /**
      * Returns the port on which the ingress traffic should be connected to the egress.
      *
      * @return ingress port
diff --git a/src/main/java/net/onrc/onos/core/newintent/PathFlowIntent.java b/src/main/java/net/onrc/onos/core/newintent/PathFlowIntent.java
index 39a1898..89d7760 100644
--- a/src/main/java/net/onrc/onos/core/newintent/PathFlowIntent.java
+++ b/src/main/java/net/onrc/onos/core/newintent/PathFlowIntent.java
@@ -23,13 +23,20 @@
     }
 
     /**
+     * Constructor for serializer.
+     */
+    protected PathFlowIntent() {
+        super();
+        this.flow = null;
+    }
+
+    /**
      * Returns {@link PacketPathFlow} object, which defines an explicit path.
      *
      * @return {@link PacketPathFlow path}
      */
     public PacketPathFlow getFlow() {
         return flow;
-
     }
 
     @Override
diff --git a/src/main/java/net/onrc/onos/core/newintent/SingleDstTreeFlowIntent.java b/src/main/java/net/onrc/onos/core/newintent/SingleDstTreeFlowIntent.java
index 498eb0a..3c7a365 100644
--- a/src/main/java/net/onrc/onos/core/newintent/SingleDstTreeFlowIntent.java
+++ b/src/main/java/net/onrc/onos/core/newintent/SingleDstTreeFlowIntent.java
@@ -29,6 +29,14 @@
     }
 
     /**
+     * Constructor for serializer.
+     */
+    protected SingleDstTreeFlowIntent() {
+        super();
+        this.tree = null;
+    }
+
+    /**
      * Returns the tree.
      *
      * @return tree
diff --git a/src/main/java/net/onrc/onos/core/newintent/SingleSrcTreeFlowIntent.java b/src/main/java/net/onrc/onos/core/newintent/SingleSrcTreeFlowIntent.java
index a203605..6bbbde0 100644
--- a/src/main/java/net/onrc/onos/core/newintent/SingleSrcTreeFlowIntent.java
+++ b/src/main/java/net/onrc/onos/core/newintent/SingleSrcTreeFlowIntent.java
@@ -29,6 +29,14 @@
     }
 
     /**
+     * Constructor for serializer.
+     */
+    protected SingleSrcTreeFlowIntent() {
+        super();
+        this.tree = null;
+    }
+
+    /**
      * Returns the tree.
      *
      * @return tree
diff --git a/src/main/java/net/onrc/onos/core/util/serializers/KryoFactory.java b/src/main/java/net/onrc/onos/core/util/serializers/KryoFactory.java
index 18e0767..5253483 100644
--- a/src/main/java/net/onrc/onos/core/util/serializers/KryoFactory.java
+++ b/src/main/java/net/onrc/onos/core/util/serializers/KryoFactory.java
@@ -12,6 +12,15 @@
 import net.floodlightcontroller.core.IFloodlightProviderService.Role;
 import net.floodlightcontroller.util.MACAddress;
 import net.onrc.onos.api.batchoperation.BatchOperationEntry;
+import net.onrc.onos.api.newintent.AbstractIntent;
+import net.onrc.onos.api.newintent.ConnectivityIntent;
+import net.onrc.onos.api.newintent.IntentEvent;
+import net.onrc.onos.api.newintent.IntentId;
+import net.onrc.onos.api.newintent.MultiPointToSinglePointIntent;
+import net.onrc.onos.api.newintent.OpticalConnectivityIntent;
+import net.onrc.onos.api.newintent.PacketConnectivityIntent;
+import net.onrc.onos.api.newintent.PointToPointIntent;
+import net.onrc.onos.api.newintent.SinglePointToMultiPointIntent;
 import net.onrc.onos.apps.proxyarp.ArpCacheNotification;
 import net.onrc.onos.apps.proxyarp.ArpReplyNotification;
 import net.onrc.onos.core.hostmanager.Host;
@@ -24,6 +33,9 @@
 import net.onrc.onos.core.intent.PathIntent;
 import net.onrc.onos.core.intent.ShortestPathIntent;
 import net.onrc.onos.core.intent.runtime.IntentStateList;
+import net.onrc.onos.core.newintent.PathFlowIntent;
+import net.onrc.onos.core.newintent.SingleDstTreeFlowIntent;
+import net.onrc.onos.core.newintent.SingleSrcTreeFlowIntent;
 import net.onrc.onos.core.packetservice.BroadcastPacketOutNotification;
 import net.onrc.onos.core.packetservice.PacketOutNotification;
 import net.onrc.onos.core.packetservice.SinglePacketOutNotification;
@@ -195,6 +207,19 @@
 
         // New intent-related classes
         kryo.register(BatchOperationEntry.class);
+        kryo.register(IntentId.class);
+        kryo.register(IntentEvent.class);
+        kryo.register(AbstractIntent.class);
+        kryo.register(ConnectivityIntent.class);
+        kryo.register(PointToPointIntent.class);
+        kryo.register(MultiPointToSinglePointIntent.class);
+        kryo.register(SinglePointToMultiPointIntent.class);
+        kryo.register(net.onrc.onos.api.newintent.PathIntent.class);
+        kryo.register(PathFlowIntent.class);
+        kryo.register(SingleSrcTreeFlowIntent.class);
+        kryo.register(SingleDstTreeFlowIntent.class);
+        kryo.register(PacketConnectivityIntent.class);
+        kryo.register(OpticalConnectivityIntent.class);
 
         // Host-related classes
         kryo.register(HashSet.class);
