diff --git a/pom.xml b/pom.xml
index 8db26dd..477f913 100644
--- a/pom.xml
+++ b/pom.xml
@@ -38,7 +38,7 @@
         <onos.app.url>http://opencord.org</onos.app.url>
         <onos.app.readme>Integration with Kafka event bus</onos.app.readme>
         <aaa.api.version>2.4.0</aaa.api.version>
-        <olt.api.version>4.5.0</olt.api.version>
+        <olt.api.version>5.0.0-SNAPSHOT</olt.api.version>
         <dhcpl2relay.api.version>2.5.0</dhcpl2relay.api.version>
         <bng.api.version>2.1.0</bng.api.version>
         <sadis.api.version>5.4.0</sadis.api.version>
diff --git a/src/test/java/org/opencord/kafka/integrations/AccessDeviceKafkaIntegrationTest.java b/src/test/java/org/opencord/kafka/integrations/AccessDeviceKafkaIntegrationTest.java
index ce8244c..254ba61 100644
--- a/src/test/java/org/opencord/kafka/integrations/AccessDeviceKafkaIntegrationTest.java
+++ b/src/test/java/org/opencord/kafka/integrations/AccessDeviceKafkaIntegrationTest.java
@@ -17,7 +17,6 @@
 package org.opencord.kafka.integrations;
 
 import com.fasterxml.jackson.databind.JsonNode;
-import com.google.common.collect.ImmutableMap;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -27,12 +26,8 @@
 import org.opencord.kafka.EventBusService;
 import org.opencord.olt.AccessDeviceListener;
 import org.opencord.olt.AccessDeviceService;
-import org.opencord.olt.AccessSubscriberId;
-import org.opencord.sadis.UniTagInformation;
 
 import java.util.List;
-import java.util.Optional;
-import java.util.Set;
 
 import static org.junit.Assert.assertEquals;
 
@@ -112,31 +107,26 @@
         }
 
         @Override
-        public boolean provisionSubscriber(AccessSubscriberId accessSubscriberId,
-                                           Optional<VlanId> optional, Optional<VlanId> optional1,
-                                           Optional<Integer> optional2) {
+        public boolean provisionSubscriber(ConnectPoint accessSubscriberId,
+                                           VlanId optional, VlanId optional1,
+                                           Integer optional2) {
             return false;
         }
 
         @Override
-        public boolean removeSubscriber(AccessSubscriberId accessSubscriberId,
-                                        Optional<VlanId> optional, Optional<VlanId> optional1,
-                                        Optional<Integer> optional2) {
+        public boolean removeSubscriber(ConnectPoint accessSubscriberId,
+                                        VlanId optional, VlanId optional1,
+                                        Integer optional2) {
             return false;
         }
 
         @Override
-        public List<DeviceId> fetchOlts() {
+        public List<DeviceId> getConnectedOlts() {
             return null;
         }
 
         @Override
-        public ImmutableMap<ConnectPoint, Set<UniTagInformation>> getProgSubs() {
-            return null;
-        }
-
-        @Override
-        public ImmutableMap<ConnectPoint, Set<UniTagInformation>> getFailedSubs() {
+        public ConnectPoint findSubscriberConnectPoint(String id) {
             return null;
         }
 
