diff --git a/org.eclipse.osbp.technologystack.target.p2/.gitignore b/org.eclipse.osbp.technologystack.target.p2/.gitignore
deleted file mode 100644
index 890cbe5..0000000
--- a/org.eclipse.osbp.technologystack.target.p2/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-/lib
-*.log.properties
-/target/
\ No newline at end of file
diff --git a/org.eclipse.osbp.technologystack.target.p2/.osbp.releng.eclipse.p2 b/org.eclipse.osbp.technologystack.target.p2/.osbp.releng.eclipse.p2
deleted file mode 100644
index e69de29..0000000
--- a/org.eclipse.osbp.technologystack.target.p2/.osbp.releng.eclipse.p2
+++ /dev/null
diff --git a/org.eclipse.osbp.technologystack.target.p2/.project b/org.eclipse.osbp.technologystack.target.p2/.project
deleted file mode 100644
index bcfe614..0000000
--- a/org.eclipse.osbp.technologystack.target.p2/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.osbp.technologystack.target.p2</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.m2e.core.maven2Builder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
-		<nature>org.eclipse.m2e.core.maven2Nature</nature>
-	</natures>
-</projectDescription>
diff --git a/org.eclipse.osbp.technologystack.target.p2/.settings/org.eclipse.core.resources.prefs b/org.eclipse.osbp.technologystack.target.p2/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0..0000000
--- a/org.eclipse.osbp.technologystack.target.p2/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/<project>=UTF-8
diff --git a/org.eclipse.osbp.technologystack.target.p2/.settings/org.eclipse.m2e.core.prefs b/org.eclipse.osbp.technologystack.target.p2/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f..0000000
--- a/org.eclipse.osbp.technologystack.target.p2/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/org.eclipse.osbp.technologystack.target.p2/.settings/org.eclipse.xtend.core.Xtend.prefs b/org.eclipse.osbp.technologystack.target.p2/.settings/org.eclipse.xtend.core.Xtend.prefs
deleted file mode 100644
index 0933f8c..0000000
--- a/org.eclipse.osbp.technologystack.target.p2/.settings/org.eclipse.xtend.core.Xtend.prefs
+++ /dev/null
@@ -1,10 +0,0 @@
-//outlet.DEFAULT_OUTPUT.sourceFolder.src/test/java.directory=src/test/generated-sources/xtend
-eclipse.preferences.version=1
-is_project_specific=true
-outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true
-outlet.DEFAULT_OUTPUT.installDslAsPrimarySource=false
-outlet.DEFAULT_OUTPUT.sourceFolder.emf-gen.directory=xtend-gen
-outlet.DEFAULT_OUTPUT.sourceFolder.src-gen.directory=xtend-gen
-outlet.DEFAULT_OUTPUT.sourceFolder.src.directory=xtend-gen
-outlet.DEFAULT_OUTPUT.sourceFolder.xtend-gen.directory=xtend-gen
-outlet.DEFAULT_OUTPUT.userOutputPerSourceFolder=true
diff --git a/org.eclipse.osbp.technologystack.target.p2/LICENSE.txt b/org.eclipse.osbp.technologystack.target.p2/LICENSE.txt
deleted file mode 100644
index ff42ad4..0000000
--- a/org.eclipse.osbp.technologystack.target.p2/LICENSE.txt
+++ /dev/null
@@ -1,161 +0,0 @@
-Eclipse Public License -v 1.0
-
-THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION
-OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
-
-1. DEFINITIONS
-
-"Contribution" means:
-
-a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
-
-b) in the case of each subsequent Contributor:
-
-i) changes to the Program, and
-
-ii) additions to the Program;
-
-where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.
-A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone
-acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate
-modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not
-derivative works of the Program.
-
-"Contributor" means any person or entity that distributes the Program.
-
-"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of
-its Contribution alone or when combined with the Program.
-
-"Program" means the Contributions distributed in accordance with this Agreement.
-
-"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
-
-2. GRANT OF RIGHTS
-
-a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
-royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute
-and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code
-form.
-
-b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
-royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the
-Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the
-combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such
-addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not
-apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
-
-c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no
-assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity
-based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property
-rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the
-Program, it is Recipient's responsibility to acquire that license before distributing the Program.
-
-d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to
-grant the copyright license set forth in this Agreement.
-
-3. REQUIREMENTS
-
-A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
-
-a) it complies with the terms and conditions of this Agreement; and
-
-b) its license agreement:
-
-i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including
-warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and
-fitness for a particular purpose;
-
-ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special,
-incidental and consequential damages, such as lost profits;
-
-iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any
-other party; and
-
-iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it
-in a reasonable manner on or through a medium customarily used for software exchange.
-
-When the Program is made available in source code form:
-
-a) it must be made available under this Agreement; and
-
-b) a copy of this Agreement must be included with each copy of the Program.
-
-Contributors may not remove or alter any copyright notices contained within the Program.
-
-Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution.
-
-4. COMMERCIAL DISTRIBUTION
-
-Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and
-the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes
-the Program in a commercial product offering should do so in a manner which does not create potential liability for
-other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor
-("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor")
-against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions
-brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such
-Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The
-obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual
-property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the
-Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may
- participate in any such claim at its own expense.
-
-For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is
-then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties
-related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone.
-Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to
-those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result,
-the Commercial Contributor must pay those damages.
-
-5. NO WARRANTY
-
-EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR
-CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
-NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for
-determining the appropriateness of using and distributing the Program and assumes all risks associated with its
-exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance
-with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
-
-6. DISCLAIMER OF LIABILITY
-
-EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS),
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
-HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
-7. GENERAL
-
-If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such
-provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
-
-If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such
-Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such
-litigation is filed.
-
-All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such
-noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution
-of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses
- granted by Recipient relating to the Program shall continue and survive.
-
-Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement
-is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish
-new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the
-right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may
-assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the
-Agreement will be given a distinguishing version number. The Program (including Contributions) may always be
-distributed subject to the version of the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the
-new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or
-otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
-
-This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States
-of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause
-of action arose. Each party waives its rights to a jury trial in any resulting litigation.
\ No newline at end of file
diff --git a/org.eclipse.osbp.technologystack.target.p2/build.xml b/org.eclipse.osbp.technologystack.target.p2/build.xml
deleted file mode 100644
index 75f5032..0000000
--- a/org.eclipse.osbp.technologystack.target.p2/build.xml
+++ /dev/null
@@ -1,103 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-#====================================================================== 
-# Copyright (c) 2012, 2013 Lunifera GmbH (Gross Enzersdorf), C4biz Softwares ME, Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     Cristiano Gavião - initial API and implementation
-#====================================================================== 
--->
-<project default="basic.build" name="OSBP Dependencies P2 with aggregate repositories">
-
-	<taskdef resource="net/sf/antcontrib/antlib.xml"/>
-	
-	<target name="init">
-		<property name="update.site.source.dir" value="${osbp.deployment.p2.origin.dir}" />
-
-		<echo>Loaded associate sites: ${associate.sites}</echo>
-		<echo>Source dir: ${update.site.source.dir}</echo>
-
-	</target>
-
-	<target name="basic.build" description="OSBP aggregate P2 repository" depends="init, unpack.content.jar,remove.references,add.associate.sites,remove.uncategorized.category,pack.content.jar" />
-
-	<target name="add.associate.sites" if="associate.sites">
-		<if>
-			<and>
-				<!-- Defined in associate.sites -->
-				<isset property="associate.sites" />
-				<not>
-					<equals arg1="${associate.sites}" arg2="" />
-				</not>
-			</and>
-			<then>
-				<!-- counter variable -->
-				<echo>p2.repos=${associate.sites}</echo>
-				<var name="associate.sites.0" value="" />
-				<for param="associate.site" list="${associate.sites}" delimiter=",">
-					<sequential>
-						<var name="associate.sites.0" value="${associate.sites.0}00" />
-						<echo>length=${associate.sites.0}</echo>
-					</sequential>
-				</for>
-				<length property="associate.sites.length" string="${associate.sites.0}" />
-
-				<echo>length=${associate.sites.length}</echo>
-
-				<loadfile srcfile="${update.site.source.dir}/content.xml" property="content.xml">
-					<filterchain>
-						<tailfilter lines="-1" skip="1" />
-					</filterchain>
-				</loadfile>
-				<echo file="${update.site.source.dir}/content.xml" message="${content.xml}" />
-				<echo file="${update.site.source.dir}/content.xml" append="true">  &lt;references size='${associate.sites.length}'>
-</echo>
-				<for param="associate.site" list="${associate.sites}" delimiter=",">
-					<sequential>
-						<!-- insert into content.xml -->
-						
-						<echo>Adding associate p2: @{associate.site}</echo>
-						
-						<echo file="${update.site.source.dir}/content.xml" append="true">    &lt;repository uri='@{associate.site}' url='@{associate.site}' type='0' options='1'/>
-    &lt;repository uri='@{associate.site}' url='@{associate.site}' type='1' options='1'/>
-</echo>
-					</sequential>
-				</for>
-				<echo file="${update.site.source.dir}/content.xml" append="true">  &lt;/references>
-&lt;/repository>
-</echo>
-			</then>
-		</if>
-	</target>
-
-	<target name="remove.references">
-		<copy file="${update.site.source.dir}/content.xml" tofile="${update.site.source.dir}/content.old.xml" overwrite="true" />
-		<xslt style="remove-references.xsl" in="${update.site.source.dir}/content.old.xml" out="${update.site.source.dir}/content.xml" />
-	</target>
-
-	<target name="remove.uncategorized.category">
-		<copy file="${update.site.source.dir}/content.xml" tofile="${update.site.source.dir}/content.old.xml" overwrite="true" />
-		<xslt style="remove-uncategorized.xsl" in="${update.site.source.dir}/content.old.xml" out="${update.site.source.dir}/content.xml" />
-	</target>
-
-	<target name="unpack.content.jar">
-		<if>
-			<available file="${update.site.source.dir}/content.jar" type="file" />
-			<then>
-				<unzip src="${update.site.source.dir}/content.jar" dest="${update.site.source.dir}" />
-				<delete file="${update.site.source.dir}/content.jar" />
-			</then>
-		</if>
-	</target>
-
-	<target name="pack.content.jar">
-		<zip destfile="${update.site.source.dir}/content.jar" basedir="${update.site.source.dir}" includes="content.xml" />
-		<delete file="${update.site.source.dir}/content.xml" />
-		<delete file="${update.site.source.dir}/content.old.xml" />
-	</target>
-
-</project>
diff --git a/org.eclipse.osbp.technologystack.target.p2/category.xml b/org.eclipse.osbp.technologystack.target.p2/category.xml
deleted file mode 100644
index 03821bf..0000000
--- a/org.eclipse.osbp.technologystack.target.p2/category.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site>
-<!--   
-   <feature id="org.eclipse.osbp.technologystack.feature">
-      <category name="osbp_software_factory_development"/>
-   </feature>
--->   
-
-   <feature id="org.eclipse.osbp.technologystack.target.feature">
-      <category name="osbp_software_factory_development"/>
-   </feature>
-   <feature id="org.eclipse.osbp.technologystack.target.feature.source">
-      <category name="osbp_software_factory_development"/>
-   </feature>
-   <category-def name="osbp_software_factory_development" label="OSBP Technologystack"/>
-</site>
diff --git a/org.eclipse.osbp.technologystack.target.p2/pom.xml b/org.eclipse.osbp.technologystack.target.p2/pom.xml
deleted file mode 100644
index d95c234..0000000
--- a/org.eclipse.osbp.technologystack.target.p2/pom.xml
+++ /dev/null
@@ -1,105 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--#======================================================================= -->
-<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany). -->
-<!--# All rights reserved. This program and the accompanying materials -->
-<!--# are made available under the terms of the Eclipse Public License v1.0 -->
-<!--# which accompanies this distribution, and is available at -->
-<!--# http://www.eclipse.org/legal/epl-v10.html -->
-<!--# -->
-<!--# Contributors: -->
-<!--# Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation API and implementation -->
-<!--#======================================================================= -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.eclipse.osbp.technologystack</groupId>
-        <artifactId>org.eclipse.osbp.technologystack</artifactId>
-        <version>0.9.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>org.eclipse.osbp.technologystack.target.p2</artifactId>
-    <packaging>eclipse-repository</packaging>
-
-    <properties>
-    
-    </properties>
-
-    <profiles>
-        <profile>
-            <id>build.p2</id>
-            <activation>
-                <property>
-                    <name>!osbp.skip.build.p2</name>
-                </property>
-            </activation>
-            <properties>
-                <osbp.deployment.p2.origin.dir>${project.build.directory}${file.separator}repository</osbp.deployment.p2.origin.dir>
-                <associate.p2>
-                </associate.p2>
-            </properties>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-antrun-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>create.p2.inf</id>
-                                <phase>package</phase>
-                                <configuration>
-                                    <quiet>true</quiet>
-                                    <target>
-                                        <ant antfile="build.xml" target="basic.build" dir=".">
-                                            <property name="osbp.deployment.p2.origin.dir" value="${osbp.deployment.p2.origin.dir}"/>
-                                            <property name="associate.sites" value="${associate.p2}"/>
-                                        </ant>
-                                    </target>
-                                </configuration>
-                                <goals>
-                                    <goal>run</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                        <dependencies>
-                            <dependency>
-                                <groupId>org.apache.ant</groupId>
-                                <artifactId>ant</artifactId>
-                                <version>${ant-version}</version>
-                            </dependency>
-                            <dependency>
-                                <groupId>ant-contrib</groupId>
-                                <artifactId>ant-contrib</artifactId>
-                                <version>1.0b3</version>
-                                <exclusions>
-                                    <exclusion>
-                                        <groupId>ant</groupId>
-                                        <artifactId>ant</artifactId>
-                                    </exclusion>
-                                </exclusions>
-                            </dependency>
-                            <dependency>
-                                <groupId>net.sf.saxon</groupId>
-                                <artifactId>Saxon-HE</artifactId>
-                                <version>9.4</version>
-                            </dependency>
-                        </dependencies>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.eclipse.osbp.technologystack</groupId>
-            <artifactId>org.eclipse.osbp.technologystack.target.feature</artifactId>
-            <version>0.9.0-SNAPSHOT</version>
-            <type>eclipse-feature</type>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.xtend</groupId>
-            <artifactId>org.eclipse.xtend.lib</artifactId>
-            <version>2.7.3</version>
-        </dependency>
-    </dependencies>
-</project>
diff --git a/org.eclipse.osbp.technologystack.target.p2/remove-references.xsl b/org.eclipse.osbp.technologystack.target.p2/remove-references.xsl
deleted file mode 100644
index 4034e55..0000000
--- a/org.eclipse.osbp.technologystack.target.p2/remove-references.xsl
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
-
-<xsl:template match="/">
-	<xsl:apply-templates select="*"/>
-</xsl:template>
-
-
-<xsl:template match="*">
-	<xsl:copy >
-		<xsl:for-each select="@*">
-			<xsl:copy />
-		</xsl:for-each>
-		<xsl:apply-templates />
-	</xsl:copy>
-</xsl:template>
-
-<xsl:template match="references" />
-
-</xsl:stylesheet>
\ No newline at end of file
diff --git a/org.eclipse.osbp.technologystack.target.p2/remove-uncategorized.xsl b/org.eclipse.osbp.technologystack.target.p2/remove-uncategorized.xsl
deleted file mode 100644
index 23d1e77..0000000
--- a/org.eclipse.osbp.technologystack.target.p2/remove-uncategorized.xsl
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
-
-<xsl:template match="/">
-	<xsl:apply-templates select="*"/>
-</xsl:template>
-
-
-<xsl:template match="*">
-	<xsl:copy >
-		<xsl:for-each select="@*">
-			<xsl:copy />
-		</xsl:for-each>
-		<xsl:apply-templates />
-	</xsl:copy>
-</xsl:template>
-
-<xsl:template match="unit[contains(@id,'site.xml.Default')]" />
-
-</xsl:stylesheet>
\ No newline at end of file
