diff --git a/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/PcepFactories.java b/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/PcepFactories.java
index 150de92..1d34aa0 100644
--- a/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/PcepFactories.java
+++ b/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/PcepFactories.java
@@ -78,7 +78,7 @@
                 factory = org.onosproject.pcepio.protocol.ver1.PcepFactoryVer1.INSTANCE;
                 break;
             default:
-                throw new IllegalArgumentException("Unknown Packet version: " + packetVersion);
+                throw new PcepParseException("Unknown Packet version: " + packetVersion);
             }
             return factory.getReader().readFrom(bb);
         }
diff --git a/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepFactoryVer1.java b/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepFactoryVer1.java
index 9ad5f9f..55da289 100644
--- a/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepFactoryVer1.java
+++ b/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepFactoryVer1.java
@@ -27,8 +27,15 @@
 import org.onosproject.pcepio.protocol.PcepErrorMsg;
 import org.onosproject.pcepio.protocol.PcepErrorObject;
 import org.onosproject.pcepio.protocol.PcepFactory;
+import org.onosproject.pcepio.protocol.PcepFecObjectIPv4Adjacency;
 import org.onosproject.pcepio.protocol.PcepInitiateMsg;
+import org.onosproject.pcepio.protocol.PcepIroObject;
 import org.onosproject.pcepio.protocol.PcepKeepaliveMsg;
+import org.onosproject.pcepio.protocol.PcepLabelObject;
+import org.onosproject.pcepio.protocol.PcepLabelRangeObject;
+import org.onosproject.pcepio.protocol.PcepLabelRangeResvMsg;
+import org.onosproject.pcepio.protocol.PcepLabelUpdate;
+import org.onosproject.pcepio.protocol.PcepLabelUpdateMsg;
 import org.onosproject.pcepio.protocol.PcepLspObject;
 import org.onosproject.pcepio.protocol.PcepLspaObject;
 import org.onosproject.pcepio.protocol.PcepMessage;
@@ -37,7 +44,10 @@
 import org.onosproject.pcepio.protocol.PcepMsgPath;
 import org.onosproject.pcepio.protocol.PcepOpenMsg;
 import org.onosproject.pcepio.protocol.PcepOpenObject;
+import org.onosproject.pcepio.protocol.PcepReportMsg;
+import org.onosproject.pcepio.protocol.PcepRroObject;
 import org.onosproject.pcepio.protocol.PcepSrpObject;
+import org.onosproject.pcepio.protocol.PcepStateReport;
 import org.onosproject.pcepio.protocol.PcepUpdateMsg;
 import org.onosproject.pcepio.protocol.PcepUpdateRequest;
 import org.onosproject.pcepio.protocol.PcepVersion;
@@ -72,9 +82,8 @@
     }
 
     @Override
-    public org.onosproject.pcepio.protocol.PcepReportMsg.Builder buildReportMsg() {
-        // TODO Auto-generated method stub
-        return null;
+    public PcepReportMsg.Builder buildReportMsg() {
+        return new PcepReportMsgVer1.Builder();
     }
 
     @Override
@@ -113,9 +122,8 @@
     }
 
     @Override
-    public org.onosproject.pcepio.protocol.PcepRroObject.Builder buildRroObject() {
-        // TODO Auto-generated method stub
-        return null;
+    public PcepRroObject.Builder buildRroObject() {
+        return new PcepRroObjectVer1.Builder();
     }
 
     @Override
@@ -124,9 +132,8 @@
     }
 
     @Override
-    public org.onosproject.pcepio.protocol.PcepIroObject.Builder buildIroObject() {
-        // TODO Auto-generated method stub
-        return null;
+    public PcepIroObject.Builder buildIroObject() {
+        return new PcepIroObjectVer1.Builder();
     }
 
     @Override
@@ -145,9 +152,8 @@
     }
 
     @Override
-    public org.onosproject.pcepio.protocol.PcepStateReport.Builder buildPcepStateReport() {
-        // TODO Auto-generated method stub
-        return null;
+    public PcepStateReport.Builder buildPcepStateReport() {
+        return new PcepStateReportVer1.Builder();
     }
 
     @Override
@@ -166,21 +172,18 @@
     }
 
     @Override
-    public org.onosproject.pcepio.protocol.PcepLabelUpdateMsg.Builder buildPcepLabelUpdateMsg() {
-        // TODO Auto-generated method stub
-        return null;
+    public PcepLabelUpdateMsg.Builder buildPcepLabelUpdateMsg() {
+        return new PcepLabelUpdateMsgVer1.Builder();
     }
 
     @Override
-    public org.onosproject.pcepio.protocol.PcepLabelUpdate.Builder buildPcepLabelUpdateObject() {
-        // TODO Auto-generated method stub
-        return null;
+    public PcepLabelUpdate.Builder buildPcepLabelUpdateObject() {
+        return new PcepLabelUpdateVer1.Builder();
     }
 
     @Override
-    public org.onosproject.pcepio.protocol.PcepLabelObject.Builder buildLabelObject() {
-        // TODO Auto-generated method stub
-        return null;
+    public PcepLabelObject.Builder buildLabelObject() {
+        return new PcepLabelObjectVer1.Builder();
     }
 
     @Override
@@ -194,9 +197,8 @@
     }
 
     @Override
-    public org.onosproject.pcepio.protocol.PcepFecObjectIPv4Adjacency.Builder buildFecIpv4Adjacency() {
-        // TODO Auto-generated method stub
-        return null;
+    public PcepFecObjectIPv4Adjacency.Builder buildFecIpv4Adjacency() {
+        return new PcepFecObjectIPv4AdjacencyVer1.Builder();
     }
 
     @Override
@@ -210,15 +212,13 @@
     }
 
     @Override
-    public org.onosproject.pcepio.protocol.PcepLabelRangeObject.Builder buildPcepLabelRangeObject() {
-        // TODO Auto-generated method stub
-        return null;
+    public PcepLabelRangeObject.Builder buildPcepLabelRangeObject() {
+        return new PcepLabelRangeObjectVer1.Builder();
     }
 
     @Override
-    public org.onosproject.pcepio.protocol.PcepLabelRangeResvMsg.Builder buildPcepLabelRangeResvMsg() {
-        // TODO Auto-generated method stub
-        return null;
+    public PcepLabelRangeResvMsg.Builder buildPcepLabelRangeResvMsg() {
+        return new PcepLabelRangeResvMsgVer1.Builder();
     }
 
 }
diff --git a/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepMessageVer1.java b/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepMessageVer1.java
index a7c2901..2dd3363 100644
--- a/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepMessageVer1.java
+++ b/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepMessageVer1.java
@@ -42,6 +42,7 @@
     static final byte CLOSE_MSG_TYPE = 0x7;
     static final byte ERROR_MSG_TYPE = 0x6;
     static final byte LABEL_UPDATE_MSG_TYPE = 0xD;
+    static final byte LABEL_RANGE_RESV_MSG_TYPE = 0xF;
     public static final int SHIFT_FLAG = 5;
     static final int MINIMUM_COMMON_HEADER_LENGTH = 4;
 
@@ -86,7 +87,7 @@
                     log.debug("REPORT MESSAGE is received");
                     // message type value 10 means it is Report message
                     // return
-                    // TODO: Read Report message from channel buffer.
+                    return PcepReportMsgVer1.READER.readFrom(cb.readBytes(length));
                 case UPDATE_MSG_TYPE:
                     log.debug("UPDATE MESSAGE is received");
                     //message type value 11 means it is Update message
@@ -103,12 +104,17 @@
                     log.debug("TE REPORT MESSAGE is received");
                     // message type value 14 means it is TE REPORT message
                     // return
-                    // TODO: Read TE Report message from channel buffer.
+                    return PcepTEReportMsgVer1.READER.readFrom(cb.readBytes(length));
                 case LABEL_UPDATE_MSG_TYPE:
                     log.debug("LABEL UPDATE MESSAGE is received");
                     // message type value 13 means it is LABEL UPDATE message
                     // return
-                    // TODO: Read Label update message from channel buffer.
+                    return PcepLabelUpdateMsgVer1.READER.readFrom(cb.readBytes(length));
+                case LABEL_RANGE_RESV_MSG_TYPE:
+                    log.debug("LABEL RANGE RESERVE MESSAGE is received");
+                    // message type value 15 means it is LABEL RANGE RESERVE message
+                    // return
+                    return PcepLabelRangeResvMsgVer1.READER.readFrom(cb.readBytes(length));
                 default:
                     throw new PcepParseException("ERROR: UNKNOWN MESSAGE is received. Msg Type: " + type);
                 }
