diff --git a/app/src/test/java/org/opencord/olt/impl/OltFlowTest.java b/app/src/test/java/org/opencord/olt/impl/OltFlowTest.java
index f259e6f..25bc87a 100644
--- a/app/src/test/java/org/opencord/olt/impl/OltFlowTest.java
+++ b/app/src/test/java/org/opencord/olt/impl/OltFlowTest.java
@@ -48,7 +48,6 @@
 import org.onosproject.net.flowobjective.Objective;
 import org.onosproject.net.meter.MeterId;
 import org.onosproject.net.meter.MeterKey;
-import org.opencord.olt.internalapi.DeviceBandwidthProfile;
 import org.opencord.sadis.BandwidthProfileInformation;
 import org.opencord.sadis.UniTagInformation;
 
@@ -206,22 +205,29 @@
         }
 
         @Override
-        public void addToPendingMeters(DeviceBandwidthProfile deviceBandwidthProfile) {
+        public void addToPendingMeters(DeviceId deviceId, BandwidthProfileInformation bwpInfo) {
 
         }
 
         @Override
-        public void removeFromPendingMeters(DeviceBandwidthProfile deviceBandwidthProfile) {
+        public void removeFromPendingMeters(DeviceId deviceId, BandwidthProfileInformation bwpInfo) {
+
         }
 
         @Override
-        public boolean isMeterPending(DeviceBandwidthProfile deviceBandwidthProfile) {
+        public boolean isMeterPending(DeviceId deviceId, BandwidthProfileInformation bwpInfo) {
             return false;
         }
 
+
         @Override
         public void clearMeters(DeviceId deviceId) {
         }
+
+        @Override
+        public void clearDeviceState(DeviceId deviceId) {
+
+        }
     }
 
     private class MockOltFlowObjectiveService implements org.onosproject.net.flowobjective.FlowObjectiveService {
