diff --git a/webconsole/pom.xml b/webconsole/pom.xml
index 1ddeb72..199d53e 100644
--- a/webconsole/pom.xml
+++ b/webconsole/pom.xml
@@ -61,14 +61,14 @@
                 <configuration>
                     <instructions>
                         <Bundle-Activator>
-                            org.apache.sling.felix.webconsole.internal.OsgiManagerActivator
+                            org.apache.felix.webconsole.internal.OsgiManagerActivator
                         </Bundle-Activator>
                         <Export-Package>
-                            org.apache.sling.felix.webconsole,
+                            org.apache.felix.webconsole,
                         </Export-Package>
                         <Private-Package>
-                            !org.apache.sling.felix.webconsole,
-                            org.apache.sling.felix.webconsole.*,
+                            !org.apache.felix.webconsole,
+                            org.apache.felix.webconsole.*,
 
                             <!-- File Upload functionality -->
                             org.apache.commons.fileupload,
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/Action.java b/webconsole/src/main/java/org/apache/felix/webconsole/Action.java
similarity index 97%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/Action.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/Action.java
index 480ebff..93ead81 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/Action.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/Action.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.felix.webconsole;
+package org.apache.felix.webconsole;
 
 import java.io.IOException;
 
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/ConfigurationPrinter.java b/webconsole/src/main/java/org/apache/felix/webconsole/ConfigurationPrinter.java
similarity index 95%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/ConfigurationPrinter.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/ConfigurationPrinter.java
index 55025aa..e16faad 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/ConfigurationPrinter.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/ConfigurationPrinter.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.sling.felix.webconsole;
+package org.apache.felix.webconsole;
 
 import java.io.PrintWriter;
 
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/Render.java b/webconsole/src/main/java/org/apache/felix/webconsole/Render.java
similarity index 96%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/Render.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/Render.java
index 3f7d64c..4c8255a 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/Render.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/Render.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.felix.webconsole;
+package org.apache.felix.webconsole;
 
 import java.io.IOException;
 
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/BaseManagementPlugin.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/BaseManagementPlugin.java
similarity index 94%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/BaseManagementPlugin.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/BaseManagementPlugin.java
index bf7a197..c0602e4 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/BaseManagementPlugin.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/BaseManagementPlugin.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.sling.felix.webconsole.internal;
+package org.apache.felix.webconsole.internal;
 
-import org.apache.sling.felix.webconsole.internal.servlet.Logger;
+import org.apache.felix.webconsole.internal.servlet.Logger;
 import org.osgi.framework.BundleContext;
 import org.osgi.service.packageadmin.PackageAdmin;
 import org.osgi.service.startlevel.StartLevel;
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/OsgiManagerActivator.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/OsgiManagerActivator.java
similarity index 83%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/OsgiManagerActivator.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/OsgiManagerActivator.java
index ef8c057..77a2977 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/OsgiManagerActivator.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/OsgiManagerActivator.java
@@ -16,18 +16,18 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.sling.felix.webconsole.internal;
+package org.apache.felix.webconsole.internal;
 
-import org.apache.sling.felix.webconsole.internal.servlet.SlingManager;
+import org.apache.felix.webconsole.internal.servlet.OsgiManager;
 import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleContext;
 
 public class OsgiManagerActivator implements BundleActivator {
 
-    private SlingManager slingManager;
+    private OsgiManager slingManager;
     
     public void start(BundleContext bundleContext) {
-        slingManager = new SlingManager(bundleContext);
+        slingManager = new OsgiManager(bundleContext);
     }
 
     public void stop(BundleContext arg0) {
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/Util.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/Util.java
similarity index 98%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/Util.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/Util.java
index dd460c7..ef2446c 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/Util.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/Util.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.felix.webconsole.internal;
+package org.apache.felix.webconsole.internal;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -28,7 +28,7 @@
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.sling.felix.webconsole.Render;
+import org.apache.felix.webconsole.Render;
 
 /**
  * The <code>Util</code> TODO
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/compendium/AbstractScrPlugin.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/AbstractScrPlugin.java
similarity index 91%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/compendium/AbstractScrPlugin.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/AbstractScrPlugin.java
index 034f5ed..bcc0312 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/compendium/AbstractScrPlugin.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/AbstractScrPlugin.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.sling.felix.webconsole.internal.compendium;
+package org.apache.felix.webconsole.internal.compendium;
 
 import org.apache.felix.scr.ScrService;
-import org.apache.sling.felix.webconsole.internal.BaseManagementPlugin;
+import org.apache.felix.webconsole.internal.BaseManagementPlugin;
 import org.osgi.util.tracker.ServiceTracker;
 
 public class AbstractScrPlugin extends BaseManagementPlugin {
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/compendium/AjaxConfigManagerAction.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/AjaxConfigManagerAction.java
similarity index 99%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/compendium/AjaxConfigManagerAction.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/AjaxConfigManagerAction.java
index e170133..dd845b9 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/compendium/AjaxConfigManagerAction.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/AjaxConfigManagerAction.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.felix.webconsole.internal.compendium;
+package org.apache.felix.webconsole.internal.compendium;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
@@ -32,7 +32,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.sling.felix.webconsole.Action;
+import org.apache.felix.webconsole.Action;
 import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/compendium/ComponentConfigurationPrinter.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ComponentConfigurationPrinter.java
similarity index 97%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/compendium/ComponentConfigurationPrinter.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ComponentConfigurationPrinter.java
index 4756207..1d0af86 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/compendium/ComponentConfigurationPrinter.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ComponentConfigurationPrinter.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.sling.felix.webconsole.internal.compendium;
+package org.apache.felix.webconsole.internal.compendium;
 
 import java.io.PrintWriter;
 import java.util.Arrays;
@@ -29,7 +29,7 @@
 import org.apache.felix.scr.Component;
 import org.apache.felix.scr.Reference;
 import org.apache.felix.scr.ScrService;
-import org.apache.sling.felix.webconsole.ConfigurationPrinter;
+import org.apache.felix.webconsole.ConfigurationPrinter;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceReference;
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/compendium/ComponentRenderAction.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ComponentRenderAction.java
similarity index 98%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/compendium/ComponentRenderAction.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ComponentRenderAction.java
index 0ee0dbf..ebb46e0 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/compendium/ComponentRenderAction.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ComponentRenderAction.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.felix.webconsole.internal.compendium;
+package org.apache.felix.webconsole.internal.compendium;
 
 import java.io.IOException;
 import java.io.PrintWriter;
@@ -31,9 +31,9 @@
 import org.apache.felix.scr.Component;
 import org.apache.felix.scr.Reference;
 import org.apache.felix.scr.ScrService;
-import org.apache.sling.felix.webconsole.Action;
-import org.apache.sling.felix.webconsole.Render;
-import org.apache.sling.felix.webconsole.internal.Util;
+import org.apache.felix.webconsole.Action;
+import org.apache.felix.webconsole.Render;
+import org.apache.felix.webconsole.internal.Util;
 import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/compendium/ConfigManager.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ConfigManager.java
similarity index 97%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/compendium/ConfigManager.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ConfigManager.java
index f0e76ed..1fe3ddb 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/compendium/ConfigManager.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ConfigManager.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.felix.webconsole.internal.compendium;
+package org.apache.felix.webconsole.internal.compendium;
 
 import java.io.IOException;
 import java.io.PrintWriter;
@@ -29,9 +29,9 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.sling.felix.webconsole.Render;
-import org.apache.sling.felix.webconsole.internal.Util;
-import org.apache.sling.felix.webconsole.internal.core.SetStartLevelAction;
+import org.apache.felix.webconsole.Render;
+import org.apache.felix.webconsole.internal.Util;
+import org.apache.felix.webconsole.internal.core.SetStartLevelAction;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceReference;
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/compendium/ConfigManagerBase.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ConfigManagerBase.java
similarity index 97%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/compendium/ConfigManagerBase.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ConfigManagerBase.java
index f638683..90fc49e 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/compendium/ConfigManagerBase.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ConfigManagerBase.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.felix.webconsole.internal.compendium;
+package org.apache.felix.webconsole.internal.compendium;
 
 import java.util.HashMap;
 import java.util.Locale;
@@ -22,7 +22,7 @@
 
 import javax.servlet.http.HttpServletRequest;
 
-import org.apache.sling.felix.webconsole.internal.BaseManagementPlugin;
+import org.apache.felix.webconsole.internal.BaseManagementPlugin;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 import org.osgi.service.cm.Configuration;
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/AjaxBundleDetailsAction.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/AjaxBundleDetailsAction.java
similarity index 99%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/AjaxBundleDetailsAction.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/core/AjaxBundleDetailsAction.java
index e680106..a82e303 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/AjaxBundleDetailsAction.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/AjaxBundleDetailsAction.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.felix.webconsole.internal.core;
+package org.apache.felix.webconsole.internal.core;
 
 import java.io.IOException;
 import java.util.ArrayList;
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/BundleAction.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundleAction.java
similarity index 88%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/BundleAction.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundleAction.java
index 35d109b..71d0e19 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/BundleAction.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundleAction.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.felix.webconsole.internal.core;
+package org.apache.felix.webconsole.internal.core;
 
 import javax.servlet.http.HttpServletRequest;
 
-import org.apache.sling.felix.webconsole.Action;
-import org.apache.sling.felix.webconsole.internal.BaseManagementPlugin;
+import org.apache.felix.webconsole.Action;
+import org.apache.felix.webconsole.internal.BaseManagementPlugin;
 
 abstract class BundleAction extends BaseManagementPlugin implements Action {
 
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/BundleListRender.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundleListRender.java
similarity index 98%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/BundleListRender.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundleListRender.java
index 195c08d..3b7b36a 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/BundleListRender.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundleListRender.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.felix.webconsole.internal.core;
+package org.apache.felix.webconsole.internal.core;
 
 import java.io.IOException;
 import java.io.PrintWriter;
@@ -24,9 +24,9 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.sling.felix.webconsole.Render;
-import org.apache.sling.felix.webconsole.internal.BaseManagementPlugin;
-import org.apache.sling.felix.webconsole.internal.Util;
+import org.apache.felix.webconsole.Render;
+import org.apache.felix.webconsole.internal.BaseManagementPlugin;
+import org.apache.felix.webconsole.internal.Util;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.Constants;
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/InstallAction.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/InstallAction.java
similarity index 98%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/InstallAction.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/core/InstallAction.java
index fbbdb01..f6520cd 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/InstallAction.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/InstallAction.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.felix.webconsole.internal.core;
+package org.apache.felix.webconsole.internal.core;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -28,7 +28,7 @@
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.fileupload.FileItem;
-import org.apache.sling.felix.webconsole.internal.Util;
+import org.apache.felix.webconsole.internal.Util;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleException;
 import org.osgi.framework.Constants;
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/RefreshPackagesAction.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/RefreshPackagesAction.java
similarity index 96%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/RefreshPackagesAction.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/core/RefreshPackagesAction.java
index d328296..ccb20e6 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/RefreshPackagesAction.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/RefreshPackagesAction.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.felix.webconsole.internal.core;
+package org.apache.felix.webconsole.internal.core;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/SetStartLevelAction.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/SetStartLevelAction.java
similarity index 92%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/SetStartLevelAction.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/core/SetStartLevelAction.java
index cb90bd2..be76c8a 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/SetStartLevelAction.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/SetStartLevelAction.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.felix.webconsole.internal.core;
+package org.apache.felix.webconsole.internal.core;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.sling.felix.webconsole.Action;
-import org.apache.sling.felix.webconsole.internal.BaseManagementPlugin;
+import org.apache.felix.webconsole.Action;
+import org.apache.felix.webconsole.internal.BaseManagementPlugin;
 import org.osgi.service.startlevel.StartLevel;
 
 /**
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/StartAction.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/StartAction.java
similarity index 96%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/StartAction.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/core/StartAction.java
index 5564704..3334546 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/StartAction.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/StartAction.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.felix.webconsole.internal.core;
+package org.apache.felix.webconsole.internal.core;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/StopAction.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/StopAction.java
similarity index 96%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/StopAction.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/core/StopAction.java
index 41b43ff..5b2a71f 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/StopAction.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/StopAction.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.felix.webconsole.internal.core;
+package org.apache.felix.webconsole.internal.core;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/UninstallAction.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/UninstallAction.java
similarity index 96%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/UninstallAction.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/core/UninstallAction.java
index cdb9fb1..cf32ef9 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/UninstallAction.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/UninstallAction.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.felix.webconsole.internal.core;
+package org.apache.felix.webconsole.internal.core;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/UpdateAction.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/UpdateAction.java
similarity index 98%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/UpdateAction.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/core/UpdateAction.java
index 0165851..352fcf4 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/core/UpdateAction.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/UpdateAction.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.felix.webconsole.internal.core;
+package org.apache.felix.webconsole.internal.core;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/misc/AssemblyListRender.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/AssemblyListRender.java
similarity index 92%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/misc/AssemblyListRender.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/AssemblyListRender.java
index 4000d66..123e325 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/misc/AssemblyListRender.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/AssemblyListRender.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.felix.webconsole.internal.misc;
+package org.apache.felix.webconsole.internal.misc;
 
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.sling.felix.webconsole.internal.core.BundleListRender;
+import org.apache.felix.webconsole.internal.core.BundleListRender;
 import org.osgi.framework.Bundle;
 
 public class AssemblyListRender extends BundleListRender {
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/misc/ConfigurationRender.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/ConfigurationRender.java
similarity index 98%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/misc/ConfigurationRender.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/ConfigurationRender.java
index dee96b5..e6ae743 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/misc/ConfigurationRender.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/ConfigurationRender.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.felix.webconsole.internal.misc;
+package org.apache.felix.webconsole.internal.misc;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -41,9 +41,9 @@
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.sling.felix.webconsole.ConfigurationPrinter;
-import org.apache.sling.felix.webconsole.Render;
-import org.apache.sling.felix.webconsole.internal.BaseManagementPlugin;
+import org.apache.felix.webconsole.ConfigurationPrinter;
+import org.apache.felix.webconsole.Render;
+import org.apache.felix.webconsole.internal.BaseManagementPlugin;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.Constants;
 import org.osgi.framework.InvalidSyntaxException;
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/obr/AbstractObrPlugin.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/obr/AbstractObrPlugin.java
similarity index 93%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/obr/AbstractObrPlugin.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/obr/AbstractObrPlugin.java
index 2ac8d8f..fcf348b 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/obr/AbstractObrPlugin.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/obr/AbstractObrPlugin.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.sling.felix.webconsole.internal.obr;
+package org.apache.felix.webconsole.internal.obr;
 
 //import org.apache.sling.osgi.assembly.installer.BundleRepositoryAdmin;
 //import org.apache.sling.osgi.assembly.installer.InstallerService;
-import org.apache.sling.felix.webconsole.internal.BaseManagementPlugin;
+import org.apache.felix.webconsole.internal.BaseManagementPlugin;
 import org.osgi.framework.BundleContext;
 import org.osgi.util.tracker.ServiceTracker;
 
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/obr/BundleRepositoryRender.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/obr/BundleRepositoryRender.java
similarity index 98%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/obr/BundleRepositoryRender.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/obr/BundleRepositoryRender.java
index ba603d0..2a4a70f 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/obr/BundleRepositoryRender.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/obr/BundleRepositoryRender.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.felix.webconsole.internal.obr;
+package org.apache.felix.webconsole.internal.obr;
 
 import java.io.PrintWriter;
 import java.util.ArrayList;
@@ -23,8 +23,8 @@
 import java.util.Map;
 import java.util.StringTokenizer;
 
-import org.apache.sling.felix.webconsole.Render;
-import org.apache.sling.felix.webconsole.internal.Util;
+import org.apache.felix.webconsole.Render;
+import org.apache.felix.webconsole.internal.Util;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.Constants;
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/obr/InstallFromRepoAction.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/obr/InstallFromRepoAction.java
similarity index 96%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/obr/InstallFromRepoAction.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/obr/InstallFromRepoAction.java
index e549c5b..93a1eb7 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/obr/InstallFromRepoAction.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/obr/InstallFromRepoAction.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.felix.webconsole.internal.obr;
+package org.apache.felix.webconsole.internal.obr;
 
-import org.apache.sling.felix.webconsole.Action;
+import org.apache.felix.webconsole.Action;
 
 public abstract class InstallFromRepoAction extends AbstractObrPlugin implements Action {
 
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/obr/RefreshRepoAction.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/obr/RefreshRepoAction.java
similarity index 96%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/obr/RefreshRepoAction.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/obr/RefreshRepoAction.java
index 31e1faf..100f736 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/obr/RefreshRepoAction.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/obr/RefreshRepoAction.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.felix.webconsole.internal.obr;
+package org.apache.felix.webconsole.internal.obr;
 
-import org.apache.sling.felix.webconsole.Action;
+import org.apache.felix.webconsole.Action;
 
 public abstract class RefreshRepoAction extends AbstractObrPlugin implements Action {
 
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/servlet/ConfigurationListener.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/ConfigurationListener.java
similarity index 87%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/servlet/ConfigurationListener.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/ConfigurationListener.java
index df15bda..f069a9c 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/servlet/ConfigurationListener.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/ConfigurationListener.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.sling.felix.webconsole.internal.servlet;
+package org.apache.felix.webconsole.internal.servlet;
 
 import java.util.Dictionary;
 import java.util.Hashtable;
@@ -27,9 +27,9 @@
 
 class ConfigurationListener implements ManagedService {
 
-    private final SlingManager slingManager;
+    private final OsgiManager slingManager;
 
-    static ServiceRegistration create(SlingManager slingManager) {
+    static ServiceRegistration create(OsgiManager slingManager) {
         ConfigurationListener cl = new ConfigurationListener(slingManager);
 
         Dictionary props = new Hashtable();
@@ -42,7 +42,7 @@
             ManagedService.class.getName(), cl, props);
     }
 
-    private ConfigurationListener(SlingManager slingManager) {
+    private ConfigurationListener(OsgiManager slingManager) {
         this.slingManager = slingManager;
     }
 
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/servlet/Logger.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/Logger.java
similarity index 97%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/servlet/Logger.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/Logger.java
index 6d75345..28d9dff 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/servlet/Logger.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/Logger.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.sling.felix.webconsole.internal.servlet;
+package org.apache.felix.webconsole.internal.servlet;
 
 import org.osgi.framework.BundleContext;
 import org.osgi.service.log.LogService;
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/servlet/SlingManager.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java
similarity index 89%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/servlet/SlingManager.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java
index ddf8007..8b55601 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/servlet/SlingManager.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.felix.webconsole.internal.servlet;
+package org.apache.felix.webconsole.internal.servlet;
 
 import java.io.IOException;
 import java.io.PrintWriter;
@@ -40,28 +40,28 @@
 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
 import org.apache.commons.fileupload.servlet.ServletFileUpload;
 import org.apache.commons.fileupload.servlet.ServletRequestContext;
-import org.apache.sling.felix.webconsole.Action;
-import org.apache.sling.felix.webconsole.Render;
-import org.apache.sling.felix.webconsole.internal.BaseManagementPlugin;
-import org.apache.sling.felix.webconsole.internal.Util;
-import org.apache.sling.felix.webconsole.internal.compendium.AjaxConfigManagerAction;
-import org.apache.sling.felix.webconsole.internal.compendium.ComponentConfigurationPrinter;
-import org.apache.sling.felix.webconsole.internal.compendium.ComponentRenderAction;
-import org.apache.sling.felix.webconsole.internal.compendium.ConfigManager;
-import org.apache.sling.felix.webconsole.internal.core.AjaxBundleDetailsAction;
-import org.apache.sling.felix.webconsole.internal.core.BundleListRender;
-import org.apache.sling.felix.webconsole.internal.core.InstallAction;
-import org.apache.sling.felix.webconsole.internal.core.RefreshPackagesAction;
-import org.apache.sling.felix.webconsole.internal.core.SetStartLevelAction;
-import org.apache.sling.felix.webconsole.internal.core.StartAction;
-import org.apache.sling.felix.webconsole.internal.core.StopAction;
-import org.apache.sling.felix.webconsole.internal.core.UninstallAction;
-import org.apache.sling.felix.webconsole.internal.core.UpdateAction;
-import org.apache.sling.felix.webconsole.internal.misc.ConfigurationRender;
-import org.apache.sling.felix.webconsole.internal.system.GCAction;
-import org.apache.sling.felix.webconsole.internal.system.ShutdownAction;
-import org.apache.sling.felix.webconsole.internal.system.ShutdownRender;
-import org.apache.sling.felix.webconsole.internal.system.VMStatRender;
+import org.apache.felix.webconsole.Action;
+import org.apache.felix.webconsole.Render;
+import org.apache.felix.webconsole.internal.BaseManagementPlugin;
+import org.apache.felix.webconsole.internal.Util;
+import org.apache.felix.webconsole.internal.compendium.AjaxConfigManagerAction;
+import org.apache.felix.webconsole.internal.compendium.ComponentConfigurationPrinter;
+import org.apache.felix.webconsole.internal.compendium.ComponentRenderAction;
+import org.apache.felix.webconsole.internal.compendium.ConfigManager;
+import org.apache.felix.webconsole.internal.core.AjaxBundleDetailsAction;
+import org.apache.felix.webconsole.internal.core.BundleListRender;
+import org.apache.felix.webconsole.internal.core.InstallAction;
+import org.apache.felix.webconsole.internal.core.RefreshPackagesAction;
+import org.apache.felix.webconsole.internal.core.SetStartLevelAction;
+import org.apache.felix.webconsole.internal.core.StartAction;
+import org.apache.felix.webconsole.internal.core.StopAction;
+import org.apache.felix.webconsole.internal.core.UninstallAction;
+import org.apache.felix.webconsole.internal.core.UpdateAction;
+import org.apache.felix.webconsole.internal.misc.ConfigurationRender;
+import org.apache.felix.webconsole.internal.system.GCAction;
+import org.apache.felix.webconsole.internal.system.ShutdownAction;
+import org.apache.felix.webconsole.internal.system.ShutdownRender;
+import org.apache.felix.webconsole.internal.system.VMStatRender;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
 import org.osgi.framework.ServiceRegistration;
@@ -76,7 +76,7 @@
  * @scr.component ds="no" label="%manager.name"
  *                description="%manager.description"
  */
-public class SlingManager extends GenericServlet {
+public class OsgiManager extends GenericServlet {
 
     /** Pseudo class version ID to keep the IDE quite. */
     private static final long serialVersionUID = 1L;
@@ -155,7 +155,7 @@
 
     private Dictionary configuration;
 
-    public SlingManager(BundleContext bundleContext) {
+    public OsgiManager(BundleContext bundleContext) {
 
         this.bundleContext = bundleContext;
         this.log = new Logger(bundleContext);
@@ -390,9 +390,9 @@
 
     private static class HttpServiceTracker extends ServiceTracker {
 
-        private final SlingManager slingManager;
+        private final OsgiManager slingManager;
 
-        HttpServiceTracker(SlingManager slingManager) {
+        HttpServiceTracker(OsgiManager slingManager) {
             super(slingManager.getBundleContext(), HttpService.class.getName(),
                 null);
             this.slingManager = slingManager;
@@ -417,9 +417,9 @@
 
     private static class OperationServiceTracker extends ServiceTracker {
 
-        private final SlingManager slingManager;
+        private final OsgiManager slingManager;
 
-        OperationServiceTracker(SlingManager slingManager) {
+        OperationServiceTracker(OsgiManager slingManager) {
             super(slingManager.getBundleContext(), Action.SERVICE, null);
             this.slingManager = slingManager;
         }
@@ -443,9 +443,9 @@
 
     private static class RenderServiceTracker extends ServiceTracker {
 
-        private final SlingManager slingManager;
+        private final OsgiManager slingManager;
 
-        RenderServiceTracker(SlingManager slingManager) {
+        RenderServiceTracker(OsgiManager slingManager) {
             super(slingManager.getBundleContext(), Render.SERVICE, null);
             this.slingManager = slingManager;
         }
@@ -478,7 +478,7 @@
 
         // register the servlet and resources
         try {
-            HttpContext httpContext = new SlingHttpContext(httpService, realm,
+            HttpContext httpContext = new OsgiManagerHttpContext(httpService, realm,
                 userId, password);
 
             Dictionary servletConfig = toStringConfig(config);
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/servlet/SlingHttpContext.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManagerHttpContext.java
similarity index 96%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/servlet/SlingHttpContext.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManagerHttpContext.java
index 3761215..1240735 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/servlet/SlingHttpContext.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManagerHttpContext.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.felix.webconsole.internal.servlet;
+package org.apache.felix.webconsole.internal.servlet;
 
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
@@ -26,7 +26,7 @@
 import org.osgi.service.http.HttpContext;
 import org.osgi.service.http.HttpService;
 
-final class SlingHttpContext implements HttpContext {
+final class OsgiManagerHttpContext implements HttpContext {
 
     private static final String HEADER_WWW_AUTHENTICATE = "WWW-Authenticate";
 
@@ -52,7 +52,7 @@
 
     private final HttpContext base;
 
-    SlingHttpContext(HttpService httpService, String realm, String userId, String password) {
+    OsgiManagerHttpContext(HttpService httpService, String realm, String userId, String password) {
         this.base = httpService.createDefaultHttpContext();
         this.realm = realm;
         this.userId = userId;
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/system/GCAction.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/system/GCAction.java
similarity index 92%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/system/GCAction.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/system/GCAction.java
index e4b9a46..e2deacf 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/system/GCAction.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/system/GCAction.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.felix.webconsole.internal.system;
+package org.apache.felix.webconsole.internal.system;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.sling.felix.webconsole.Action;
+import org.apache.felix.webconsole.Action;
 
 public class GCAction implements Action {
 
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/system/ShutdownAction.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/system/ShutdownAction.java
similarity index 91%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/system/ShutdownAction.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/system/ShutdownAction.java
index 8e7386e..b176aa3 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/system/ShutdownAction.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/system/ShutdownAction.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.felix.webconsole.internal.system;
+package org.apache.felix.webconsole.internal.system;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.sling.felix.webconsole.Action;
-import org.apache.sling.felix.webconsole.internal.BaseManagementPlugin;
+import org.apache.felix.webconsole.Action;
+import org.apache.felix.webconsole.internal.BaseManagementPlugin;
 import org.osgi.framework.BundleException;
 import org.osgi.service.log.LogService;
 
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/system/ShutdownRender.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/system/ShutdownRender.java
similarity index 94%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/system/ShutdownRender.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/system/ShutdownRender.java
index a2af9d4..9ed1364 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/system/ShutdownRender.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/system/ShutdownRender.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.felix.webconsole.internal.system;
+package org.apache.felix.webconsole.internal.system;
 
 import java.io.IOException;
 import java.io.PrintWriter;
@@ -22,7 +22,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.sling.felix.webconsole.Render;
+import org.apache.felix.webconsole.Render;
 
 public class ShutdownRender implements Render {
 
diff --git a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/system/VMStatRender.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/system/VMStatRender.java
similarity index 95%
rename from webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/system/VMStatRender.java
rename to webconsole/src/main/java/org/apache/felix/webconsole/internal/system/VMStatRender.java
index 387a406..d501cf9 100644
--- a/webconsole/src/main/java/org/apache/sling/felix/webconsole/internal/system/VMStatRender.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/system/VMStatRender.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.felix.webconsole.internal.system;
+package org.apache.felix.webconsole.internal.system;
 
 import java.io.IOException;
 import java.io.PrintWriter;
@@ -23,10 +23,10 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.sling.felix.webconsole.Render;
-import org.apache.sling.felix.webconsole.internal.BaseManagementPlugin;
-import org.apache.sling.felix.webconsole.internal.Util;
-import org.apache.sling.felix.webconsole.internal.core.SetStartLevelAction;
+import org.apache.felix.webconsole.Render;
+import org.apache.felix.webconsole.internal.BaseManagementPlugin;
+import org.apache.felix.webconsole.internal.Util;
+import org.apache.felix.webconsole.internal.core.SetStartLevelAction;
 
 public class VMStatRender extends BaseManagementPlugin implements Render {
 
