diff --git a/slingshot/pom.xml b/slingshot/pom.xml
index 51eddc2..c230094 100644
--- a/slingshot/pom.xml
+++ b/slingshot/pom.xml
@@ -68,7 +68,7 @@
                     <instructions>
                         <!-- initial content to be loaded on bundle installation -->
                         <Sling-Initial-Content>
-                            SLING-INF/content/slingshot;overwrite:=true;path:=/slingshot;maven:mount:=false,
+                            SLING-INF/content/slingshot;overwrite:=true;path:=/content/slingshot;maven:mount:=false,
                             SLING-INF/content/libs/slingshot;overwrite:=true;path:=/libs/slingshot;maven:mount:=true
                         </Sling-Initial-Content>
                     </instructions>
diff --git a/slingshot/src/main/java/org/apache/sling/sample/slingshot/SlingshotConstants.java b/slingshot/src/main/java/org/apache/sling/sample/slingshot/SlingshotConstants.java
index 739d1fa..11edd2a 100644
--- a/slingshot/src/main/java/org/apache/sling/sample/slingshot/SlingshotConstants.java
+++ b/slingshot/src/main/java/org/apache/sling/sample/slingshot/SlingshotConstants.java
@@ -20,7 +20,7 @@
 public abstract class SlingshotConstants {
 
     /** This is the resource path for the root of our application. */
-    public static final String APP_ROOT_PATH = "/slingshot";
+    public static final String APP_ROOT_PATH = "/content/slingshot";
 
     public static final String PROPERTY_TITLE = "title";
 
diff --git a/slingshot/src/main/java/org/apache/sling/sample/slingshot/package-info.java b/slingshot/src/main/java/org/apache/sling/sample/slingshot/package-info.java
index 76098e8..8afacc9 100644
--- a/slingshot/src/main/java/org/apache/sling/sample/slingshot/package-info.java
+++ b/slingshot/src/main/java/org/apache/sling/sample/slingshot/package-info.java
@@ -16,5 +16,5 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-@org.osgi.annotation.versioning.Version("1.0")
+@org.osgi.annotation.versioning.Version("1.0.1")
 package org.apache.sling.sample.slingshot;
diff --git a/slingshot/src/main/provisioning/model.txt b/slingshot/src/main/provisioning/model.txt
index 7bccba8..dd5b798 100644
--- a/slingshot/src/main/provisioning/model.txt
+++ b/slingshot/src/main/provisioning/model.txt
@@ -30,21 +30,20 @@
     create service user slingshot-service
     create user slingshot1 with password slingshot1
     create user slingshot2 with password slingshot2
-    
-    create path (sling:Folder) /slingshot
-    create path (sling:Folder) /slingshot/users
-    create path (sling:Folder) /slingshot/users/slingshot1
-    create path (sling:Folder) /slingshot/users/slingshot2
+
+    create path (sling:Folder) /content/slingshot
+    create path (sling:Folder) /content/slingshot/users
+    create path (sling:Folder) /content/slingshot/users/slingshot1
+    create path (sling:Folder) /content/slingshot/users/slingshot2
 
     set ACL for slingshot-service
-        allow   jcr:read,rep:write    on /slingshot
+        allow   jcr:read,rep:write    on /content/slingshot
     end
 
     set ACL for slingshot1
-        allow   jcr:read,rep:write    on /slingshot/users/slingshot1
+        allow   jcr:read,rep:write    on /content/slingshot/users/slingshot1
     end
 
     set ACL for slingshot2
-        allow   jcr:read,rep:write    on /slingshot/users/slingshot2
+        allow   jcr:read,rep:write    on /content/slingshot/users/slingshot2
     end
-    
\ No newline at end of file
diff --git a/slingshot/src/test/java/org/apache/sling/sample/slingshot/SlingshotUtilTest.java b/slingshot/src/test/java/org/apache/sling/sample/slingshot/SlingshotUtilTest.java
index a4c3c6b..3c3bd4e 100644
--- a/slingshot/src/test/java/org/apache/sling/sample/slingshot/SlingshotUtilTest.java
+++ b/slingshot/src/test/java/org/apache/sling/sample/slingshot/SlingshotUtilTest.java
@@ -39,7 +39,7 @@
     @Test
     public void getUserId_deepPath() {
 
-        Resource resource = context.resourceResolver().getResource("/slingshot/users/admin/hobby");
+        Resource resource = context.resourceResolver().getResource("/content/slingshot/users/admin/hobby");
 
         assertThat(SlingshotUtil.getUserId(resource), equalTo("admin"));
     }
@@ -47,7 +47,7 @@
     @Test
     public void getUserId_exactPath() {
 
-        Resource resource = context.resourceResolver().getResource("/slingshot/users/admin");
+        Resource resource = context.resourceResolver().getResource("/content/slingshot/users/admin");
 
         assertThat(SlingshotUtil.getUserId(resource), equalTo("admin"));
     }
@@ -55,7 +55,7 @@
     @Test
     public void getUserId_noMatch() {
 
-        Resource resource = context.resourceResolver().getResource("/slingshot/users");
+        Resource resource = context.resourceResolver().getResource("/content/slingshot/users");
 
         assertThat(SlingshotUtil.getUserId(resource), nullValue());
     }
@@ -63,7 +63,7 @@
     @Test
     public void getContentPath_match() {
 
-        Resource resource = context.resourceResolver().getResource("/slingshot/users/admin/hobby");
+        Resource resource = context.resourceResolver().getResource("/content/slingshot/users/admin/hobby");
 
         assertThat(SlingshotUtil.getContentPath(resource), equalTo("/hobby"));
     }
@@ -71,7 +71,7 @@
     @Test
     public void getContentPath_noMatch() {
 
-        Resource resource = context.resourceResolver().getResource("/slingshot/users/admin");
+        Resource resource = context.resourceResolver().getResource("/content/slingshot/users/admin");
 
         assertThat(SlingshotUtil.getContentPath(resource), nullValue());
     }
diff --git a/slingshot/src/test/java/org/apache/sling/sample/slingshot/ratings/impl/RatingServiceImplTest.java b/slingshot/src/test/java/org/apache/sling/sample/slingshot/ratings/impl/RatingServiceImplTest.java
index ba4a50b..5c3a499 100644
--- a/slingshot/src/test/java/org/apache/sling/sample/slingshot/ratings/impl/RatingServiceImplTest.java
+++ b/slingshot/src/test/java/org/apache/sling/sample/slingshot/ratings/impl/RatingServiceImplTest.java
@@ -40,7 +40,7 @@
         Resource resource = context.resourceResolver().getResource(SlingshotConstants.APP_ROOT_PATH+"/users/admin/hobby");
 
         String ratingsResourcePath = service.getRatingsResourcePath(resource);
-        assertThat(ratingsResourcePath, equalTo("/slingshot/users/admin/ugc/ratings/hobby"));
+        assertThat(ratingsResourcePath, equalTo("/content/slingshot/users/admin/ugc/ratings/hobby"));
     }
 
     @Test
diff --git a/slingshot/src/test/resources/slingshot.json b/slingshot/src/test/resources/slingshot.json
index d29215b..8f8ea45 100644
--- a/slingshot/src/test/resources/slingshot.json
+++ b/slingshot/src/test/resources/slingshot.json
@@ -11,17 +11,17 @@
       "ugc": {
         "jcr:primaryType": "sling:Folder",
         "rating": {
-          "jcr:primaryType": "nt:unstructured",
+          "jcr:primaryType": "nt:unstructured"
         }
       }
     },
     "slingshot1": {
       "jcr:primaryType": "nt:unstructured",
-      "sling:resourceType": "slingshot/User",
+      "sling:resourceType": "slingshot/User"
     },
     "slingshot2": {
       "jcr:primaryType": "nt:unstructured",
-      "sling:resourceType": "slingshot/User",
+      "sling:resourceType": "slingshot/User"
     }
   }
 }
\ No newline at end of file
