diff --git a/pom.xml b/pom.xml
index 28f6f08..448de88 100644
--- a/pom.xml
+++ b/pom.xml
@@ -63,6 +63,9 @@
 		            <Embed-Dependency>
 		              commons-net;inline=org/apache/commons/net/util/SubnetUtils*
 		            </Embed-Dependency>
+                <Export-Package>
+                  !org.apache.sling.discovery.oak
+                </Export-Package>
 		          </instructions>
 		        </configuration>
             </plugin>
@@ -145,7 +148,7 @@
 		<dependency>
 			<groupId>org.apache.sling</groupId>
 			<artifactId>org.apache.sling.discovery.base</artifactId>
-			<version>1.1.2</version>
+			<version>1.1.3-SNAPSHOT</version>
             <scope>provided</scope>
 		</dependency>
         <!-- besides including discovery.base' normal jar above, 
@@ -154,7 +157,7 @@
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.discovery.base</artifactId>
-            <version>1.1.2</version>
+            <version>1.1.3-SNAPSHOT</version>
             <scope>test</scope>
             <type>test-jar</type>
         </dependency>
@@ -199,12 +202,6 @@
             <scope>provided</scope>
 		</dependency>
         <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.launchpad.api</artifactId>
-		    <version>1.1.0</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
             <groupId>commons-io</groupId>
             <artifactId>commons-io</artifactId>
             <version>2.4</version>
diff --git a/src/main/java/org/apache/sling/discovery/oak/pinger/OakViewChecker.java b/src/main/java/org/apache/sling/discovery/oak/pinger/OakViewChecker.java
index b0ed843..3ba00bd 100644
--- a/src/main/java/org/apache/sling/discovery/oak/pinger/OakViewChecker.java
+++ b/src/main/java/org/apache/sling/discovery/oak/pinger/OakViewChecker.java
@@ -41,8 +41,6 @@
 import org.apache.sling.discovery.commons.providers.util.ResourceHelper;
 import org.apache.sling.discovery.oak.Config;
 import org.apache.sling.discovery.oak.OakDiscoveryService;
-import org.apache.sling.launchpad.api.StartupListener;
-import org.apache.sling.launchpad.api.StartupMode;
 import org.apache.sling.settings.SlingSettingsService;
 import org.osgi.service.http.HttpService;
 
@@ -57,7 +55,7 @@
  * discovery.base
  */
 @Component
-@Service(value = { OakViewChecker.class, StartupListener.class })
+@Service(value = OakViewChecker.class)
 @Reference(referenceInterface=HttpService.class,
            cardinality=ReferenceCardinality.OPTIONAL_MULTIPLE,
            policy=ReferencePolicy.DYNAMIC)
@@ -156,19 +154,6 @@
         }
     }
 
-    @Override
-    public void startupFinished(StartupMode mode) {
-        super.startupFinished(mode);
-        
-        synchronized(lock) {
-            if (activated) {
-                // only reset if activated
-                resetLeaderElectionId();
-            }
-        }
-
-    }
-    
     /**
      * The initialize method is called by the OakDiscoveryService.activate
      * as we require the discoveryService (and the discoveryService has
