diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangAugment.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangAugment.java
index 9ca828b8..374e2ab 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangAugment.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangAugment.java
@@ -76,7 +76,7 @@
  *                +--------------+---------+-------------+------------------+
  */
 /**
- * Data model node to maintain information defined in YANG augment.
+ * Representation of data model node to maintain information defined in YANG augment.
  */
 public class YangAugment extends YangNode
         implements YangLeavesHolder, YangCommonInfo, Parsable, CollisionDetector {
@@ -124,7 +124,7 @@
     }
 
     /**
-     * Get the augmented node.
+     * Returns the augmented node.
      *
      * @return the augmented node
      */
@@ -133,7 +133,7 @@
     }
 
     /**
-     * Set the augmented node.
+     * Sets the augmented node.
      *
      * @param nodeIdentifiers the augmented node
      */
@@ -142,7 +142,7 @@
     }
 
     /**
-     * Get the description.
+     * Returns the description.
      *
      * @return the description
      */
@@ -176,7 +176,7 @@
     }
 
     /**
-     * Get the list of leaves.
+     * Returns the list of leaves.
      *
      * @return the list of leaves
      */
@@ -186,7 +186,7 @@
     }
 
     /**
-     * Set the list of leaves.
+     * Sets the list of leaves.
      *
      * @param leafsList the list of leaf to set
      */
@@ -195,7 +195,7 @@
     }
 
     /**
-     * Add a leaf.
+     * Adds a leaf.
      *
      * @param leaf the leaf to be added
      */
@@ -209,7 +209,7 @@
     }
 
     /**
-     * Get the list of leaf-list.
+     * Returns the list of leaf-list.
      *
      * @return the list of leaf-list
      */
@@ -219,7 +219,7 @@
     }
 
     /**
-     * Set the list of leaf-list.
+     * Sets the list of leaf-list.
      *
      * @param listOfLeafList the list of leaf-list to set
      */
@@ -228,7 +228,7 @@
     }
 
     /**
-     * Add a leaf-list.
+     * Adds a leaf-list.
      *
      * @param leafList the leaf-list to be added
      */
@@ -242,7 +242,7 @@
     }
 
     /**
-     * Get the textual reference.
+     * Returns the textual reference.
      *
      * @return the reference
      */
@@ -252,7 +252,7 @@
     }
 
     /**
-     * Set the textual reference.
+     * Sets the textual reference.
      *
      * @param reference the reference to set
      */
@@ -262,7 +262,7 @@
     }
 
     /**
-     * Get the status.
+     * Returns the status.
      *
      * @return the status
      */
@@ -272,7 +272,7 @@
     }
 
     /**
-     * Set the status.
+     * Sets the status.
      *
      * @param status the status to set
      */
@@ -292,7 +292,7 @@
     }
 
     /**
-     * Validate the data on entering the corresponding parse tree node.
+     * Validates the data on entering the corresponding parse tree node.
      *
      * @throws DataModelException a violation of data model rules
      */
@@ -302,7 +302,7 @@
     }
 
     /**
-     * Validate the data on exiting the corresponding parse tree node.
+     * Validates the data on exiting the corresponding parse tree node.
      *
      * @throws DataModelException a violation of data model rules
      */
@@ -312,7 +312,7 @@
     }
 
     /**
-     * Get the target nodes name where the augmentation is being done.
+     * Returns the target nodes name where the augmentation is being done.
      *
      * @return target nodes name where the augmentation is being done
      */
@@ -322,14 +322,13 @@
     }
 
     /**
-     * Set the target nodes name where the augmentation is being done.
+     * Sets the target nodes name where the augmentation is being done.
      *
      * @param name target nodes name where the augmentation is being done
      */
     @Override
     public void setName(String name) {
         this.name = name;
-
     }
 
 }
