diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangType.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangType.java
index 723319d..85db895 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangType.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangType.java
@@ -18,7 +18,7 @@
 
 import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
 import org.onosproject.yangutils.parser.Parsable;
-import org.onosproject.yangutils.parser.ParsableDataType;
+import org.onosproject.yangutils.utils.YangConstructType;
 
 /*
  * Reference:RFC 6020.
@@ -77,7 +77,7 @@
     /**
      * Get the name of data type.
      *
-     * @return the name of data type.
+     * @return the name of data type
      */
     public String getDataTypeName() {
         return dataTypeName;
@@ -95,7 +95,7 @@
     /**
      * Get the type of data.
      *
-     * @return the data type.
+     * @return the data type
      */
     public YangDataTypes getDataType() {
         return dataType;
@@ -104,7 +104,7 @@
     /**
      * Set the type of data.
      *
-     * @param dataType data type.
+     * @param dataType data type
      */
     public void setDataType(YangDataTypes dataType) {
         this.dataType = dataType;
@@ -113,7 +113,7 @@
     /**
      * Get the data type meta data.
      *
-     * @return the data type meta data.
+     * @return the data type meta data
      */
     public T getDataTypeExtendedInfo() {
         return dataTypeExtendedInfo;
@@ -131,17 +131,17 @@
     /**
      * Returns the type of the parsed data.
      *
-     * @return returns TYPE_DATA.
+     * @return returns TYPE_DATA
      */
     @Override
-    public ParsableDataType getParsableDataType() {
-        return ParsableDataType.TYPE_DATA;
+    public YangConstructType getYangConstructType() {
+        return YangConstructType.TYPE_DATA;
     }
 
     /**
      * Validate the data on entering the corresponding parse tree node.
      *
-     * @throws DataModelException a violation of data model rules.
+     * @throws DataModelException a violation of data model rules
      */
     @Override
     public void validateDataOnEntry() throws DataModelException {
@@ -152,7 +152,7 @@
     /**
      * Validate the data on exiting the corresponding parse tree node.
      *
-     * @throws DataModelException a violation of data model rules.
+     * @throws DataModelException a violation of data model rules
      */
     @Override
     public void validateDataOnExit() throws DataModelException {
