diff --git a/pom.xml b/pom.xml
index 88081d2..169f9d3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -197,8 +197,8 @@
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.repoinit.oak-jcr</artifactId>
-            <version>1.0.1-SNAPSHOT</version>
+            <artifactId>org.apache.sling.jcr.repoinit</artifactId>
+            <version>0.9.9-SNAPSHOT</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/repository/SystemUsersInitializer.java b/src/main/java/org/apache/sling/launchpad/testservices/repository/SystemUsersInitializer.java
index 51f7660..b9a5e8b 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/repository/SystemUsersInitializer.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/repository/SystemUsersInitializer.java
@@ -20,6 +20,7 @@
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.Reader;
+import java.util.List;
 
 import javax.jcr.Session;
 
@@ -28,7 +29,7 @@
 import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.jcr.api.SlingRepository;
 import org.apache.sling.jcr.api.SlingRepositoryInitializer;
-import org.apache.sling.repoinit.jcr.JcrRepoInitOpVisitor;
+import org.apache.sling.repoinit.jcr.JcrRepoInitOpsProcessor;
 import org.apache.sling.repoinit.parser.RepoInitParser;
 import org.apache.sling.repoinit.parser.operations.Operation;
 import org.slf4j.Logger;
@@ -50,6 +51,9 @@
     @Reference
     private RepoInitParser parser;
     
+    @Reference
+    private JcrRepoInitOpsProcessor processor;
+    
     @Override
     public void processRepository(SlingRepository repo) throws Exception {
         final Session s = repo.loginAdministrative(null);
@@ -59,14 +63,10 @@
                 throw new IOException("Class Resource not found:" + REPOINIT_FILE);
             }
             final Reader r = new InputStreamReader(is, "UTF-8");
-            JcrRepoInitOpVisitor v = new JcrRepoInitOpVisitor(s);
-            int count = 0;
-            for(Operation op : parser.parse(r)) {
-                op.accept(v);
-                count++;
-            }
+            final List<Operation> ops = parser.parse(r); 
+            log.info("Executing {} repoinit Operations", ops.size());
+            processor.apply(s, ops);
             s.save();
-            log.info("{} repoinit Operations executed", count);
         } finally {
             s.logout();
             is.close();
