diff --git a/sigil/eclipse/core/plugin.xml b/sigil/eclipse/core/plugin.xml
index f2964dd..86e48db 100644
--- a/sigil/eclipse/core/plugin.xml
+++ b/sigil/eclipse/core/plugin.xml
@@ -19,27 +19,16 @@
 -->
 <?eclipse version="3.2"?>
 <plugin>
-   <extension-point id="org.cauldron.sigil.repositoryprovider" name="Bundle Repository Provider" schema="schema/org.cauldron.sigil.repositoryprovider.exsd"/>
-   <extension-point id="org.cauldron.sigil.installbuilder" name="Newton Install Builder" schema="schema/org.cauldron.sigil.runtime.installbuilder.exsd"/>
+   <extension-point id="org.apache.felix.sigil.repositoryprovider" name="Bundle Repository Provider" schema="schema/org.apache.felix.sigil.repositoryprovider.exsd"/>
+   <extension-point id="org.apache.felix.sigil.installbuilder" name="OSGi Install Builder" schema="schema/org.apache.felix.sigil.installbuilder.exsd"/>
    
    <extension
-         point="org.eclipse.core.contenttype.contentTypes">
-      <content-type
-            base-type="org.eclipse.core.runtime.text"
-            file-extensions="script,nsh"
-            id="org.cauldron.sigil.content.NewtonScriptType"
-            name="Newton Script"
-            priority="normal">
-      </content-type>
-
-   </extension>
-   <extension
          point="org.eclipse.core.expressions.propertyTesters">
       <propertyTester
             class="org.apache.felix.sigil.property.SigilPropertyTester"
-            id="org.cauldron.sigil.property.NewtonPropertyTester"
-            namespace="org.cauldron.sigil"
-            properties="isNewtonResource,isCompositeResource,isSystemResource,isScriptResource,isSigilProject"
+            id="org.apache.felix.sigil.property.SigilPropertyTester"
+            namespace="org.apache.felix.sigil"
+            properties="isSigilProject"
             type="org.eclipse.core.resources.IResource"/>
    </extension>
    <extension
@@ -47,7 +36,7 @@
       <factory
             adaptableType="org.eclipse.core.resources.IFile"
             class="org.apache.felix.sigil.eclipse.internal.adapter.FileAdaptorFactory">
-         <adapter type="org.cauldron.sigil.model.eclipse.ISigilBundle"/>
+         <adapter type="org.apache.felix.sigil.model.eclipse.ISigilBundle"/>
       </factory>
       <factory
             adaptableType="org.eclipse.core.resources.IProject"
@@ -56,7 +45,7 @@
       </factory>
    </extension>
    <extension
-         id="org.cauldron.sigil.core.sigilnature"
+         id="org.apache.felix.sigil.sigilnature"
          name="Sigil Nature"
          point="org.eclipse.core.resources.natures">
       <runtime>
@@ -80,23 +69,23 @@
       </initializer>
    </extension>
    <extension
-         point="org.cauldron.sigil.repositoryprovider">
+         point="org.apache.felix.sigil.repositoryprovider">
       <provider
             class="org.apache.felix.sigil.eclipse.internal.repository.eclipse.WorkspaceRepositoryProvider"
             defaultLevel="-3"
             dynamic="false"
-            id="org.cauldron.sigil.core.workspaceprovider"
+            id="org.apache.felix.sigil.core.workspaceprovider"
             type="Workspace Repository">
       </provider>
       <provider
-            class="org.cauldron.bld.core.repository.FileSystemRepositoryProvider"
+            class="org.apache.felix.sigil.core.repository.FileSystemRepositoryProvider"
             dynamic="true"
             id="org.cauldron.sigil.core.file"
             type="File System Repository">
       </provider>
    </extension>
    <extension
-         id="org.cauldron.sigil.unresolvedDependencyMarker"
+         id="org.apache.felix.sigil.unresolvedDependencyMarker"
          name="Unresolved Dependency"
          point="org.eclipse.core.resources.markers">
       <persistent
@@ -113,25 +102,25 @@
       </attribute>
    </extension>
    <extension
-         id="org.cauldron.sigil.unresolvedDependencyMarker.importPackage"
+         id="org.apache.felix.sigil.unresolvedDependencyMarker.importPackage"
          name="Unresolved Import Package"
          point="org.eclipse.core.resources.markers">
       <persistent
             value="true">
       </persistent>
       <super
-            type="org.cauldron.sigil.unresolvedDependencyMarker">
+            type="org.apache.felix.sigil.unresolvedDependencyMarker">
       </super>
    </extension>
    <extension
-         id="org.cauldron.sigil.unresolvedDependencyMarker.requireBundle"
+         id="org.apache.felix.sigil.unresolvedDependencyMarker.requireBundle"
          name="Unresolve Require Bundle"
          point="org.eclipse.core.resources.markers">
       <persistent
             value="true">
       </persistent>
       <super
-            type="org.cauldron.sigil.unresolvedDependencyMarker">
+            type="org.apache.felix.sigil.unresolvedDependencyMarker">
       </super>
    </extension>
 </plugin>
diff --git a/sigil/eclipse/core/schema/org.cauldron.sigil.runtime.installbuilder.exsd b/sigil/eclipse/core/schema/org.apache.felix.sigil.installbuilder.exsd
similarity index 70%
rename from sigil/eclipse/core/schema/org.cauldron.sigil.runtime.installbuilder.exsd
rename to sigil/eclipse/core/schema/org.apache.felix.sigil.installbuilder.exsd
index 3522aa4..36ddfda 100644
--- a/sigil/eclipse/core/schema/org.cauldron.sigil.runtime.installbuilder.exsd
+++ b/sigil/eclipse/core/schema/org.apache.felix.sigil.installbuilder.exsd
@@ -1,27 +1,9 @@
 <?xml version='1.0' encoding='UTF-8'?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
 <!-- Schema file written by PDE -->
-<schema targetNamespace="org.cauldron.sigil.runtime" xmlns="http://www.w3.org/2001/XMLSchema">
+<schema targetNamespace="org.apache.felix.sigil.eclipse.core" xmlns="http://www.w3.org/2001/XMLSchema">
 <annotation>
       <appinfo>
-         <meta.schema plugin="org.cauldron.sigil.runtime" id="org.cauldron.sigil.runtime.installbuilder" name="Newton Install Builder"/>
+         <meta.schema plugin="org.apache.felix.sigil.eclipse.core" id="org.apache.felix.sigil.installbuilder" name="OSGi Install Builder"/>
       </appinfo>
       <documentation>
          [Enter description of this extension point.]
@@ -73,7 +55,7 @@
                   
                </documentation>
                <appinfo>
-                  <meta.attribute kind="java" basedOn=":org.cauldron.sigil.install.INewtonInstallBuilder"/>
+                  <meta.attribute kind="java" basedOn=":org.apache.felix.sigil.eclipse.install.IOSGiInstallBuilder"/>
                </appinfo>
             </annotation>
          </attribute>
diff --git a/sigil/eclipse/core/schema/org.cauldron.sigil.repositoryprovider.exsd b/sigil/eclipse/core/schema/org.apache.felix.sigil.repositoryprovider.exsd
similarity index 76%
rename from sigil/eclipse/core/schema/org.cauldron.sigil.repositoryprovider.exsd
rename to sigil/eclipse/core/schema/org.apache.felix.sigil.repositoryprovider.exsd
index 051c866..f777608 100644
--- a/sigil/eclipse/core/schema/org.cauldron.sigil.repositoryprovider.exsd
+++ b/sigil/eclipse/core/schema/org.apache.felix.sigil.repositoryprovider.exsd
@@ -1,27 +1,9 @@
 <?xml version='1.0' encoding='UTF-8'?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
 <!-- Schema file written by PDE -->
-<schema targetNamespace="org.cauldron.sigil.core" xmlns="http://www.w3.org/2001/XMLSchema">
+<schema targetNamespace="org.apache.felix.sigil.eclipse.core" xmlns="http://www.w3.org/2001/XMLSchema">
 <annotation>
       <appinfo>
-         <meta.schema plugin="org.cauldron.sigil.core" id="org.cauldron.sigil.repository" name="Sigil Bundle Repository Provider"/>
+         <meta.schema plugin="org.apache.felix.sigil.eclipse.core" id="org.apache.felix.sigil.repository" name="Sigil Bundle Repository Provider"/>
       </appinfo>
       <documentation>
          [Enter description of this extension point.]
@@ -87,7 +69,7 @@
                   
                </documentation>
                <appinfo>
-                  <meta.attribute kind="java" basedOn=":org.cauldron.sigil.repository.IRepositoryProvider"/>
+                  <meta.attribute kind="java" basedOn=":org.apache.felix.sigil.repository.IRepositoryProvider"/>
                </appinfo>
             </annotation>
          </attribute>
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/SigilCore.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/SigilCore.java
index 9c7656a..df2d42e 100644
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/SigilCore.java
+++ b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/SigilCore.java
@@ -85,41 +85,41 @@
  */
 public class SigilCore extends AbstractUIPlugin {
 
+	private static final String BASE = "org.apache.felix.sigil";
 	// The plug-in ID
-	public static final String PLUGIN_ID = "org.cauldron.sigil.core";
-    public static final String NATURE_ID = PLUGIN_ID + ".sigilnature";
-    public static final String PREFERENCES_ID = "org.cauldron.sigil.ui.preferences.SigilPreferencePage";
-    public static final String OSGI_INSTALLS_PREFERENCES_ID = "org.cauldron.sigil.ui.preferences.osgiInstalls";
-    public static final String EXCLUDED_RESOURCES_PREFERENCES_ID = "org.cauldron.sigil.ui.preferences.excludedResources";
-	public static final String REPOSITORIES_PREFERENCES_ID = "org.cauldron.sigil.ui.preferences.repositoriesPreferencePage";
-    public static final String OSGI_SCRIPT_TYPE = "org.cauldron.sigil.content.OSGiScriptType";
+	public static final String PLUGIN_ID = BASE + ".eclipse.core";
+    public static final String NATURE_ID = BASE + ".sigilnature";
+    public static final String PREFERENCES_ID = BASE + ".ui.preferences.SigilPreferencePage";
+    public static final String OSGI_INSTALLS_PREFERENCES_ID = BASE + ".ui.preferences.osgiInstalls";
+    public static final String EXCLUDED_RESOURCES_PREFERENCES_ID = BASE + ".ui.preferences.excludedResources";
+	public static final String REPOSITORIES_PREFERENCES_ID = BASE + ".ui.preferences.repositoriesPreferencePage";
     public static final String SIGIL_PROJECT_FILE = IBldProject.PROJECT_FILE;
 	public static final String BUILDER_ID = PLUGIN_ID + ".sigilBuilder";
-	public static final String CLASSPATH_CONTAINER_PATH = PLUGIN_ID + ".classpathContainer";
+	public static final String CLASSPATH_CONTAINER_PATH = BASE + ".classpathContainer";
 
-    public static final String OSGI_INSTALLS = "org.cauldron.osgi.installs";
-	public static final String OSGI_DEFAULT_INSTALL_ID = "org.cauldron.osgi.default.install.id";
-	public static final String OSGI_INSTALL_PREFIX = "org.cauldron.osgi.install.";
-	public static final String OSGI_SOURCE_LOCATION = "org.cauldron.osgi.source.location";
-	public static final String OSGI_INSTALL_CHECK_PREFERENCE = "org.cauldron.osgi.install.check";
-	public static final String LIBRARY_KEYS_PREF = "org.cauldron.osgi.library.keys";
-	public static final String PREFERENCES_REBUILD_PROJECTS = "org.cauldron.sigil.rebuild.projects";
-	public static final String QUALIFY_VERSIONS = "org.cauldron.sigil.qualify.versions";
+    public static final String OSGI_INSTALLS = BASE + ".osgi.installs";
+	public static final String OSGI_DEFAULT_INSTALL_ID = BASE + ".osgi.default.install.id";
+	public static final String OSGI_INSTALL_PREFIX = BASE + ".osgi.install.";
+	public static final String OSGI_SOURCE_LOCATION = BASE + ".osgi.source.location";
+	public static final String OSGI_INSTALL_CHECK_PREFERENCE = BASE + ".osgi.install.check";
+	public static final String LIBRARY_KEYS_PREF = BASE + ".library.keys";
+	public static final String PREFERENCES_REBUILD_PROJECTS = BASE + ".rebuild.projects";
+	public static final String QUALIFY_VERSIONS = BASE + ".qualify.versions";
 	
-	public static final String DEFAULT_VERSION_LOWER_BOUND = "org.cauldron.sigil.versionLowerBound";
-	public static final String DEFAULT_VERSION_UPPER_BOUND = "org.cauldron.sigil.versionUpperBound";
+	public static final String DEFAULT_VERSION_LOWER_BOUND = BASE + ".versionLowerBound";
+	public static final String DEFAULT_VERSION_UPPER_BOUND = BASE + ".versionUpperBound";
 
-	public static final String DEFAULT_EXCLUDED_RESOURCES = "org.cauldron.sigil.excludedResources";
-	public static final String PREFERENCES_NOASK_OSGI_INSTALL = "org.cauldron.sigil.noAskOSGIHome";
-	public static final String PREFERENCES_ADD_IMPORT_FOR_EXPORT = "org.cauldron.sigil.addImportForExport";
-	public static final String INCLUDE_OPTIONAL_DEPENDENCIES = "org.cauldron.sigil.includeOptionalDependencies";
+	public static final String DEFAULT_EXCLUDED_RESOURCES = BASE + ".excludedResources";
+	public static final String PREFERENCES_NOASK_OSGI_INSTALL = BASE + ".noAskOSGIHome";
+	public static final String PREFERENCES_ADD_IMPORT_FOR_EXPORT = BASE + ".addImportForExport";
+	public static final String INCLUDE_OPTIONAL_DEPENDENCIES = BASE + ".includeOptionalDependencies";
 
-	public static final String INSTALL_BUILDER_EXTENSION_POINT_ID = "org.cauldron.sigil.installbuilder";
-	public static final String REPOSITORY_PROVIDER_EXTENSION_POINT_ID = "org.cauldron.sigil.repositoryprovider";
+	public static final String INSTALL_BUILDER_EXTENSION_POINT_ID = BASE + ".installbuilder";
+	public static final String REPOSITORY_PROVIDER_EXTENSION_POINT_ID = BASE + ".repositoryprovider";
 	
-	public static final String MARKER_UNRESOLVED_DEPENDENCY = "org.cauldron.sigil.unresolvedDependencyMarker";
-	public static final String MARKER_UNRESOLVED_IMPORT_PACKAGE = "org.cauldron.sigil.unresolvedDependencyMarker.importPackage";
-	public static final String MARKER_UNRESOLVED_REQUIRE_BUNDLE = "org.cauldron.sigil.unresolvedDependencyMarker.requireBundle";
+	public static final String MARKER_UNRESOLVED_DEPENDENCY = BASE + ".unresolvedDependencyMarker";
+	public static final String MARKER_UNRESOLVED_IMPORT_PACKAGE = BASE + ".unresolvedDependencyMarker.importPackage";
+	public static final String MARKER_UNRESOLVED_REQUIRE_BUNDLE = BASE + ".unresolvedDependencyMarker.requireBundle";
 	public static final String REPOSITORY_SET = PLUGIN_ID + ".repository.set";
 	public static final String PREFERENCES_INCLUDE_OPTIONAL = PLUGIN_ID + ".include.optional";
 	
