diff --git a/sdnr/wt/devicemanager-openroadm/installer/pom.xml b/sdnr/wt/devicemanager-openroadm/installer/pom.xml
index fb3131c..2750d60 100755
--- a/sdnr/wt/devicemanager-openroadm/installer/pom.xml
+++ b/sdnr/wt/devicemanager-openroadm/installer/pom.xml
@@ -20,7 +20,7 @@
   ~ ============LICENSE_END=======================================================
   ~
   -->
-
+  
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/sdnr/wt/devicemanager-openroadm/provider/pom.xml b/sdnr/wt/devicemanager-openroadm/provider/pom.xml
index 5eeae51..a8f2c91 100644
--- a/sdnr/wt/devicemanager-openroadm/provider/pom.xml
+++ b/sdnr/wt/devicemanager-openroadm/provider/pom.xml
@@ -65,6 +65,7 @@
             <version>1.9.10</version>
             <scope>test</scope>
         </dependency>
+
         <!-- end for testing -->
         <dependency>
             <groupId>${project.groupId}</groupId>
diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/DeviceManagerOpenroadmImpl.java b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/DeviceManagerOpenroadmImpl.java
index efda889..fc5aaba 100644
--- a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/DeviceManagerOpenroadmImpl.java
+++ b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/DeviceManagerOpenroadmImpl.java
@@ -81,13 +81,13 @@
     }
     // end of public methods
 
+    // private methods
     /**
      * Used to close all Services, that should support AutoCloseable Pattern
      *
      * @param toClose
      * @throws Exception
      */
-    // private methods
     private void close(AutoCloseable... toCloseList) {
         for (AutoCloseable element : toCloseList) {
             if (element != null) {
diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmDeviceChangeNotificationListener.java b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmDeviceChangeNotificationListener.java
index 32f8cb0..f055c59 100644
--- a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmDeviceChangeNotificationListener.java
+++ b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmDeviceChangeNotificationListener.java
@@ -78,9 +78,7 @@
                 sb.append(", ");
             }
             sb.append(edit);
-
             EventlogBuilder eventlogBuilder = new EventlogBuilder();
-
             InstanceIdentifier<?> target = edit.getTarget();
             if (target != null) {
                 eventlogBuilder.setObjectId(target.getPathArguments().toString());
@@ -91,13 +89,11 @@
                 eventlogBuilder.setAttributeName(target.getTargetType().getName());
             }
             eventlogBuilder.setNodeId(netconfAccessor.getNodeId().getValue());
-
             eventlogBuilder.setNewValue(String.valueOf(edit.getOperation()));
             eventlogBuilder.setTimestamp(notification.getChangeTime());
             eventlogBuilder.setCounter(counter);
             eventlogBuilder.setSourceType(SourceType.Netconf);
             databaseProvider.writeEventLog(eventlogBuilder.build());
-
             log.info("onDeviceConfigChange (2) {}", sb);
             counter++;
         }
@@ -107,7 +103,6 @@
     public void onCreateTechInfoNotification(CreateTechInfoNotification notification) {
         // TODO Auto-generated method stub
         log.info("onCreateTechInfoNotification(1){}", notification);
-
         EventlogBuilder eventlogBuilder = new EventlogBuilder();
         eventlogBuilder.setId(notification.getShelfId()).setAttributeName(notification.getShelfId())
                 .setObjectId(notification.getShelfId()).setNodeId(this.netconfAccessor.getNodeId().getValue())
@@ -115,7 +110,6 @@
         databaseProvider.writeEventLog(eventlogBuilder.build());
         log.info("Create-techInfo Notification written ");
         counter++;
-
     }
     // end of public methods
 
diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmInventoryInput.java b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmInventoryInput.java
index be79c7b..d67db8a 100644
--- a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmInventoryInput.java
+++ b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmInventoryInput.java
@@ -45,11 +45,6 @@
     private final NetconfAccessor accessor;
     // end of variables
 
-    /**
-     * @param netconfAccessor
-     * @param readDevice
-     */
-
     // constructors
     public OpenroadmInventoryInput(NetconfAccessor netconfAccessor, OrgOpenroadmDevice readDevice) {
         this.openRoadmDevice = readDevice;
diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElement.java b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElement.java
index 98e5e46..5fa4384 100644
--- a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElement.java
+++ b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElement.java
@@ -110,11 +110,6 @@
         readInterfaceData(device);
         // Writing initial alarms at the time of device registration
         initialAlarmReader.faultService();
-        // faultEventListener.initCurrentProblemStatus(this.netconfAccessor.getNodeId(),
-        // oScaFaultListener.writeFaultData(this.sequenceNumber));
-        // oScaFaultListener.writeAlarmLog(oScaFaultListener.writeFaultData(this.sequenceNumber));
-        // this.sequenceNumber = this.sequenceNumber + 1;
-
         pmDataEntity = this.openRoadmPmData.buildPmDataEntity(this.openRoadmPmData.getPmData(this.netconfAccessor));
         if (!pmDataEntity.isEmpty()) {
             this.databaseService.doWritePerformanceData(pmDataEntity);
