diff --git a/bgp/bgpio/src/main/java/org/onosproject/bgpio/types/attr/BgpAttrNodeIsIsAreaId.java b/bgp/bgpio/src/main/java/org/onosproject/bgpio/types/attr/BgpAttrNodeIsIsAreaId.java
index 6e9f9ce..b23d646 100755
--- a/bgp/bgpio/src/main/java/org/onosproject/bgpio/types/attr/BgpAttrNodeIsIsAreaId.java
+++ b/bgp/bgpio/src/main/java/org/onosproject/bgpio/types/attr/BgpAttrNodeIsIsAreaId.java
@@ -18,9 +18,9 @@
 import java.util.Arrays;
 
 import org.jboss.netty.buffer.ChannelBuffer;
-import org.onosproject.bgpio.exceptions.BGPParseException;
-import org.onosproject.bgpio.types.BGPErrorType;
-import org.onosproject.bgpio.types.BGPValueType;
+import org.onosproject.bgpio.exceptions.BgpParseException;
+import org.onosproject.bgpio.types.BgpErrorType;
+import org.onosproject.bgpio.types.BgpValueType;
 import org.onosproject.bgpio.util.Validation;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -30,7 +30,7 @@
 /**
  * Implements BGP attribute ISIS Area Identifier.
  */
-public class BgpAttrNodeIsIsAreaId implements BGPValueType {
+public class BgpAttrNodeIsIsAreaId implements BgpValueType {
 
     protected static final Logger log = LoggerFactory
             .getLogger(BgpAttrNodeIsIsAreaId.class);
@@ -64,17 +64,17 @@
      *
      * @param cb ChannelBuffer
      * @return object of BgpAttrNodeIsIsAreaId
-     * @throws BGPParseException while parsing BgpAttrNodeIsIsAreaId
+     * @throws BgpParseException while parsing BgpAttrNodeIsIsAreaId
      */
     public static BgpAttrNodeIsIsAreaId read(ChannelBuffer cb)
-            throws BGPParseException {
+            throws BgpParseException {
         byte[] isisAreaId;
 
         short lsAttrLength = cb.readShort();
 
         if (cb.readableBytes() < lsAttrLength) {
-            Validation.validateLen(BGPErrorType.UPDATE_MESSAGE_ERROR,
-                                   BGPErrorType.ATTRIBUTE_LENGTH_ERROR,
+            Validation.validateLen(BgpErrorType.UPDATE_MESSAGE_ERROR,
+                                   BgpErrorType.ATTRIBUTE_LENGTH_ERROR,
                                    lsAttrLength);
         }
 
