diff --git a/build.gradle b/build.gradle
index b5b7370e56b0159c3c680a19689fed0a8633148d..87b84c214bce3a742e71f7a04e09a2b4f45eb0fa 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,459 +1,23 @@
-apply plugin: 'base'
-apply from: 'build_setup.gradle'
-
-def download(address,target) {
-	    def file = new FileOutputStream(target)
-	    def out = new BufferedOutputStream(file)
-	    out << new URL(address).openStream()
-	    out.close()
-}
-
-def projects(int i){
-	return  subprojects.name[i]
-}
-//	returns the name of a subproject listed in the settings.gradle file
-
-
-def numberOfProjects(){
-	return subprojects.name.size()
-}
-//	returns the number of projects listed in the settings.gradle file
-
-
-task downloadCli << {
-		dir = 'de.prob.core/prob/'
-		delete file(dir)
-	    new File(dir).mkdirs() 
-	
-		['leopard':'macos','linux':'linux','linux64':'linux64','win32':'windows'].each {
-		n = it.getKey()
-	
-		targetdir = dir+it.getValue()
-		targetzip = dir+"probcli_${n}.zip"
-		url = "http://nightly.cobra.cs.uni-duesseldorf.de/cli/probcli_${n}.zip"
-		download(url,targetzip)
-	    FileTree zip = zipTree(targetzip)
-	    copy {
-		   from zip
-		   into targetdir
-	    }
-		delete file(targetzip)
-	}
-	
-}
-
-
-/* 		--		Return ParentId			--		*/
-
-def parentId(){
-	return parentID
-}
-/*
-*	This is the project of the parent Pom
-*	The Tycho Maven Build is triggered from
-*	this project's pom
-*/
-
-
-
-/*	--			Return Group Id			--		*/
-def groupId(){
-	return groupID
-}
-
-/*
-*	This Group ID will be used in every sub project
-*/
-
-
-/////////////////////////////////////////////////////////////////////////////////////////
-//		--	!!! 				DEFINING SUB PROJECTS 							!!!	-- //
-/////////////////////////////////////////////////////////////////////////////////////////
-
-subprojects {
-	
-	apply plugin: 'base'
-	
-	task deleteArtifacts(type: Delete) {
-  		delete 'target','pom.xml'
-	}
-		
-	task deploy() <<{
-		description = "\tGenerating the Tycho Poms. Please remember to add a '.qualifier' to the version numbers!"
-
-		versionNumber = 'Version Number Error:\tcheck Manifest for Bundle-Version Number and make sure to add a ".qualifier" to the version numbers!\n'
-		
-		artifactId = 'Could not find Bundle-SymbolicName in Manifest.file'
-
-		
-		/* -- In case of changed Manifest File in Eclipse:
-		*	
-		*	Version Numbers of the projects are collected via 
-		*	regular expressions in the Manifest.MF File.  
-		*	Versionnumber of the projects are equal to their
-		*	Bundle-Version Number
-		*/
-		
-		
-		if(features.every{ it != project.name }){			// Generating Poms for sub projects except features
-			content = new File("${project.name}/META-INF/MANIFEST.MF").getText("UTF-8") 
-
-	 		printFileLine = { 
-				if(  it ==~ /Bundle-Version.+qualifier/ ){
-					versionNumber = it.substring(16) // possibile error: cuts off first 16 chars 
-			
-					/*	Version Number is taken from Bundle-Version in Manifest.MF
-					*	If there is no Bundle-Version or the versionnumber needs to
-					*	be taken from a different key word, please change the
-					*	regular expression and the substring above
-					*/	
-				}
-		
-				if(  it ==~ /Bundle-SymbolicName:.+/ ){
-					artifactId = it.substring(21)
-					artifactId = artifactId.replace(";singleton:=true",'')
-				}
-				/*	Artifact ID is taken from Bundle-SymbolicName minus the
-				*	16 chars ';singleton:=true'
-				*/
-			}
-	
-			content.eachLine( printFileLine )
-	
-	
-			println artifactId
-			println "\t"+versionNumber
-	
-			def f = new File(artifactId+'/pom.xml') 
-			f.delete()
-			f << start()+elder()+artifact(artifactId, versionNumber)+end()
-			/*	
-			*	old pom.xml files are deleted and replaced by new auto generated Tycho pom.xml files
-			*/
-		}else{	// if subprojects aren't a feature
-			
-
-	
-//		--		Features 					--			//
-	
-			if(features.any{ it == project.name } ){
-			
-				boolean idfound = false
-
-				content = new File("${project.name}/feature.xml").getText("UTF-8") 
-
-				printFileLine = {
-		
-					if(  it ==~ /.+version.+qualifier.+/ ){
-						versionNumber = it.substring(15,it.size()-1) 
-						// possibile error: cuts off first 15 chars and leaves out last '"'
-			
-						/*	Version Number is taken from Feature.xml 
-						*	feature.xml is searched for version="version.qualifier"
-						*	first 15 chars and last '"' are cut off
-						*/
-
-					}
-		
-		
-					if(  it ==~ /.+id=".+/ && idfound == false ){
-						artifactId = it.substring(10,it.length()-1)
-						idfound = true
-					}
-					/*	Artifact ID is taken from Bundle-SymbolicName minus the
-					*	16 chars ';singleton:=true'
-					*/
-				}
-	
-				content.eachLine( printFileLine )
-
-	
-				println artifactId
-				println "\t"+versionNumber
-
-
-				def f = new File(artifactId+'/pom.xml') 
-				f.delete()
-				f << feature(artifactId, versionNumber)
-							
-			}
-	
-		}
-	}
-	
-
-	
-}// defining subprojects
-
-
-clean {
-	dependsOn += subprojects.deleteArtifacts
-}
-
-task createParent() << {
-	//		---------				 define Parent 				---------		//
-		
-	new File("${parentID}").mkdir() 			
-	versionNumber 	=	'1.0.0.qualifier'
-	artifactId 		=	parentId()
-
-	def f = new File(artifactId+'/pom.xml') 
-	f.delete()
-	f << parentPom(artifactId)
-	for(int i = 0; i < targetRepositories.size(); i++){
-		f << repos(targetRepositories[i], i)
-	}
-	f << endRepos()
-	f << moduleStart()
-	for(int i = 0; i < numberOfProjects(); i++){
-		f << module(projects(i))
-	}
-	f << module(repositoryName)
-	f << endParent()
-
-}
-
-task createRepository() << {
-
-	//			------------	 	define Repository			---------		//
-			
-			
-	new File("${repositoryName}").mkdir() 
-				
-	versionNumber 	=	'1.0.0.qualifier'
-	artifactId		=	repositoryName
-	featureVersionNumber = '1.0.0.qualifier'
-	def f = new File(artifactId+'/category.xml') 
-	f.delete()
-	f << categoryHead()
-	for(int i = 0; i < features.size(); i++){
-					
-		content = new File("${features[i]}/feature.xml").getText("UTF-8") 
-		printFileLine = {
-			if(  it ==~ /.+version.+qualifier.+/ ){
-				featureVersionNumber = it.substring(15,it.size()-1) 
-				// possibile error: cuts off first 15 chars and leaves out last '"'
-				
-				/*	Version Number is taken from Feature.xml 
-				*	feature.xml is searched for version="version.qualifier"
-				*	first 15 chars and last '"' are cut off
-				*/
-				}		
-		}
-		content.eachLine( printFileLine )
-		f << categoryFeatures(features[i], featureVersionNumber)
-	}// for
-			
-	for(int i = 0; i < features.size(); i++){
-				
-		f << categoryDescription(features[i], descriptions[features[i]][0] ,descriptions[features[i]][1])
-		//							featureName,	label,		description
-	}//for
-				
-	f << categoryEnd()
-				
-	def pom = new File(artifactId+'/pom.xml') 
-	pom.delete()
-	pom << reposi()
-}// end of repository definition
-	
-
-task createPoms(dependsOn: [createParent, createRepository, subprojects.deploy])
-
-task collectArtifacts(type:Copy) {
-	    from 'de.prob.repository/target/repository/'
-	    into 'updatesite'
- }		
-
-task install(dependsOn: [createPoms] , type:Exec) {
-	description = "\tExecutes a 'mvn install' of the parent pom.xml and auto-generates Tycho Poms"	
-
-	
-	commandLine 'mvn', 'install', '-f', parentID+'/pom.xml'
-		
-}
-
-
-//---     Defining Tycho POM parts			--//
-
-
-    def artifact(artifactId,versionNumber) { """
-		<groupId>${groupId()}</groupId>
-		<artifactId>${artifactId}</artifactId>
-		<version>${versionNumber}</version>
-		<packaging>eclipse-plugin</packaging>
-	""" }
-	
-	
-			
-	def start() { """<?xml version="1.0" encoding="UTF-8"?>
-	<project
-		xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-		<modelVersion>4.0.0</modelVersion>
-	"""}
-	
-	
-	def elder() {"""
-		<parent>
-			<groupId>${groupId()}</groupId>
-			<artifactId>${parentId()}</artifactId>
-			<version>1.0.0.qualifier</version>
-			<relativePath>../${parentId()}/pom.xml</relativePath>
-		</parent>
-	"""}
-
-
-	def end() {"""
-	</project>
-	"""}
-	
-// 				--	defining Parent Pom				--				//
-
-
-
-
-def parentPom(artifactId) { """<?xml version="1.0" encoding="UTF-8"?>
-<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>
-	
-	<groupId>${groupId()}</groupId>
-  	<artifactId>${artifactId}</artifactId>
-  	<version>1.0.0.qualifier</version>
-  
-	<packaging>pom</packaging>
-
-	<!-- this is the parent POM from which all modules inherit common settings -->
-	<properties>
-		<tycho-version>0.14.1</tycho-version>
-	</properties>
-
-   <repositories>
-	<!-- configure p2 repository to resolve against -->  
-    
- 	<repository>
-      <id>indigo</id>
-      <layout>p2</layout>
-      <url>http://download.eclipse.org/releases/indigo/</url>
-    </repository>
-"""}
-
-
-def repos(String targetRepo, int i) {"""
-	
-	<repository>
-	  <id>targetRepository${i}</id>
-	  <layout>p2</layout>
-	  <url>${targetRepo}</url>
-	</repository>
-
-"""}
-
-
-
-def endRepos() {"""
-  </repositories> 
-
-	<build>
-		<plugins>
-			<plugin>
-				<!-- enable tycho build extension -->
-				<groupId>org.eclipse.tycho</groupId>
-				<artifactId>tycho-maven-plugin</artifactId>
-				<version>0.14.1</version>
-				<extensions>true</extensions>
-			</plugin>
-		</plugins>
-	</build>
-"""}
-
-def moduleStart(){"""
-	<!-- the modules that should be built together -->
-	<modules>
-	"""}
-
-//for(int i = 0; i < numberOfProjects(); i++)
-
-def module(String project){"""		<module>../${project}</module>
-"""}
-
-	
-
-def endParent() {"""
-	</modules>
-</project>
-	"""}
-	
-// end of defining parent pom.xml
-
-// repository Pom
-def reposi() { """
-<?xml version="1.0" encoding="UTF-8"?>
-  <project
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-      <groupId>${groupID}</groupId>
-      <artifactId>${parentID}</artifactId>
-      <version>1.0.0.qualifier</version>
-      <relativePath>../${parentID}/pom.xml</relativePath>
-    </parent>
-
-    
-    <groupId>${groupID}</groupId>
-    <artifactId>${repositoryName}</artifactId>
-    <version>1.0.0.qualifier</version>
-    <packaging>eclipse-repository</packaging>
-  </project>
-"""}
-
-
-// creates a category in 
-def categoryHead() { """<?xml version="1.0" encoding="UTF-8"?>
-<site>
-
-"""}
-	
-def categoryFeatures(artifactId, versionNumber){"""
-	<feature url="features/${artifactId}_${versionNumber}.jar" id="${artifactId}" version="${versionNumber}">
-		<category name="${artifactId}.category"/>
-	</feature>
-"""}
-
-def categoryDescription(artifactId, categoryName, categorydescription){"""
-<category-def name="${artifactId}.category" label="${categoryName}">
-      <description>
-${categorydescription}
-      </description>
-   </category-def>
-"""}
-
-def categoryEnd(){"""
-</site>
-"""}
-// end of category definition
-
-// feature pom
-def feature(artifactId, versionNumber) { """
-<?xml version="1.0" encoding="UTF-8"?>
-	<project
-		xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-		<modelVersion>4.0.0</modelVersion>
-		<parent>
-			<groupId>${groupId()}</groupId>
-			<artifactId>${parentId()}</artifactId>
-			<version>1.0.0.qualifier</version>
-			<relativePath>../${parentId()}/pom.xml</relativePath>
-		</parent>
-		<groupId>${groupId()}</groupId>
-		<artifactId>${artifactId}</artifactId>
-		<version>${versionNumber}</version>
-		<packaging>eclipse-feature</packaging>
-	</project>
-"""}
-// end of feature pom
-
-
-//	Build Script can be executed via gradle install
-//	Pom Generation can be executed via gradle deploy
+groupID			=	"de.prob"
+features		=	["de.prob2.feature"]		// must be the same as the folder name
+
+descriptions	=	[["de.prob2.feature": "ProB Rodin Plugin"],["de.prob2.feature": """ProB is an animator and model checker for the B-Method. It allows
+fully automatic animation of many B specifications, and can be
+used to systematically check a specification for errors. 
+Part of the research and development was conducted within the
+EPSRC funded projects ABCD and iMoc, and within the EU funded
+project Rodin. 
+Development is continued under the EU funded project Deploy and
+the DFG project Gepavas. 
+ProB has been successfully used on various industrial specifications
+and is now being used within Siemens."""] ]		// label and descriptions of the features
+
+repositoryName	=	groupID+".repository"		// will be the folder name
+parentID		= 	groupID+".parent"			// will be the same as the folder name
+
+targetRepositories = ["http://cobra.cs.uni-duesseldorf.de/prob_dev_target/","http://download.eclipse.org/releases/indigo/"]		// ps Repository with Target Definition File
+
+apply from: 'local_tasks.gradle'
+apply from: 'tycho_build.gradle'
 
 
diff --git a/build_setup.gradle b/build_setup.gradle
deleted file mode 100644
index a9f15119951725ab7984bd1e6efd188af5802776..0000000000000000000000000000000000000000
--- a/build_setup.gradle
+++ /dev/null
@@ -1,19 +0,0 @@
-groupID			=	"de.prob"
-features		=	["de.prob2.feature"]		// must be the same as the folder name
-
-descriptions	=	[ ["de.prob2.feature": "ProB Rodin Plugin"],["de.prob2.feature": """ProB is an animator and model checker for the B-Method. It allows
-fully automatic animation of many B specifications, and can be
-used to systematically check a specification for errors. 
-Part of the research and development was conducted within the
-EPSRC funded projects ABCD and iMoc, and within the EU funded
-project Rodin. 
-Development is continued under the EU funded project Deploy and
-the DFG project Gepavas. 
-ProB has been successfully used on various industrial specifications
-and is now being used within Siemens."""] ]		// label and descriptions of the features
-
-repositoryName	=	"de.prob.repository"		// will be the folder name
-parentID		= 	"de.prob.parent"			// will be the same as the folder name
-
-targetRepositories = ["http://cobra.cs.uni-duesseldorf.de/prob_dev_target/"]		// ps Repository with Target Definition File
-
diff --git a/local_tasks.gradle b/local_tasks.gradle
new file mode 100644
index 0000000000000000000000000000000000000000..af87397f2fc6688747fc6dc97f431953c81753ea
--- /dev/null
+++ b/local_tasks.gradle
@@ -0,0 +1,34 @@
+def download(address,target) {
+	    def file = new FileOutputStream(target)
+	    def out = new BufferedOutputStream(file)
+	    out << new URL(address).openStream()
+	    out.close()
+}
+
+
+task downloadCli << {
+		dir = 'de.prob.core/prob/'
+		delete file(dir)
+	    new File(dir).mkdirs() 
+	
+		['leopard':'macos','linux':'linux','linux64':'linux64','win32':'windows'].each {
+		n = it.getKey()
+	
+		targetdir = dir+it.getValue()
+		targetzip = dir+"probcli_${n}.zip"
+		url = "http://nightly.cobra.cs.uni-duesseldorf.de/cli/probcli_${n}.zip"
+		download(url,targetzip)
+	    FileTree zip = zipTree(targetzip)
+	    copy {
+		   from zip
+		   into targetdir
+	    }
+		delete file(targetzip)
+	}
+	
+}
+
+task collectArtifacts(type:Copy) {
+	    from groupID+'.repository/target/repository/'
+	    into 'updatesite'
+}
\ No newline at end of file
diff --git a/tycho_build.gradle b/tycho_build.gradle
new file mode 100644
index 0000000000000000000000000000000000000000..05a0e2c8a1b769b0eeefb73e558fa9a1c6420bda
--- /dev/null
+++ b/tycho_build.gradle
@@ -0,0 +1,422 @@
+apply plugin: 'base'
+
+
+
+def projects(int i){
+	return  subprojects.name[i]
+}
+//	returns the name of a subproject listed in the settings.gradle file
+
+
+def numberOfProjects(){
+	return subprojects.name.size()
+}
+//	returns the number of projects listed in the settings.gradle file
+
+
+
+
+
+/* 		--		Return ParentId			--		*/
+
+def parentId(){
+	return parentID
+}
+/*
+*	This is the project of the parent Pom
+*	The Tycho Maven Build is triggered from
+*	this project's pom
+*/
+
+
+
+/*	--			Return Group Id			--		*/
+def groupId(){
+	return groupID
+}
+
+/*
+*	This Group ID will be used in every sub project
+*/
+
+
+/////////////////////////////////////////////////////////////////////////////////////////
+//		--	!!! 				DEFINING SUB PROJECTS 							!!!	-- //
+/////////////////////////////////////////////////////////////////////////////////////////
+
+subprojects {
+	
+	apply plugin: 'base'
+	
+	task deleteArtifacts(type: Delete) {
+  		delete 'target','pom.xml'
+	}
+		
+	task deploy() <<{
+		description = "\tGenerating the Tycho Poms. Please remember to add a '.qualifier' to the version numbers!"
+
+		versionNumber = 'Version Number Error:\tcheck Manifest for Bundle-Version Number and make sure to add a ".qualifier" to the version numbers!\n'
+		
+		artifactId = 'Could not find Bundle-SymbolicName in Manifest.file'
+
+		
+		/* -- In case of changed Manifest File in Eclipse:
+		*	
+		*	Version Numbers of the projects are collected via 
+		*	regular expressions in the Manifest.MF File.  
+		*	Versionnumber of the projects are equal to their
+		*	Bundle-Version Number
+		*/
+		
+		
+		if(features.every{ it != project.name }){			// Generating Poms for sub projects except features
+			content = new File("${project.name}/META-INF/MANIFEST.MF").getText("UTF-8") 
+
+	 		printFileLine = { 
+				if(  it ==~ /Bundle-Version.+qualifier/ ){
+					versionNumber = it.substring(16) // possibile error: cuts off first 16 chars 
+			
+					/*	Version Number is taken from Bundle-Version in Manifest.MF
+					*	If there is no Bundle-Version or the versionnumber needs to
+					*	be taken from a different key word, please change the
+					*	regular expression and the substring above
+					*/	
+				}
+		
+				if(  it ==~ /Bundle-SymbolicName:.+/ ){
+					artifactId = it.substring(21)
+					artifactId = artifactId.replace(";singleton:=true",'')
+				}
+				/*	Artifact ID is taken from Bundle-SymbolicName minus the
+				*	16 chars ';singleton:=true'
+				*/
+			}
+	
+			content.eachLine( printFileLine )
+	
+	
+			println artifactId
+			println "\t"+versionNumber
+	
+			def f = new File(artifactId+'/pom.xml') 
+			f.delete()
+			f << start()+elder()+artifact(artifactId, versionNumber)+end()
+			/*	
+			*	old pom.xml files are deleted and replaced by new auto generated Tycho pom.xml files
+			*/
+		}else{	// if subprojects aren't a feature
+			
+
+	
+//		--		Features 					--			//
+	
+			if(features.any{ it == project.name } ){
+			
+				boolean idfound = false
+
+				content = new File("${project.name}/feature.xml").getText("UTF-8") 
+
+				printFileLine = {
+		
+					if(  it ==~ /.+version.+qualifier.+/ ){
+						versionNumber = it.substring(15,it.size()-1) 
+						// possibile error: cuts off first 15 chars and leaves out last '"'
+			
+						/*	Version Number is taken from Feature.xml 
+						*	feature.xml is searched for version="version.qualifier"
+						*	first 15 chars and last '"' are cut off
+						*/
+
+					}
+		
+		
+					if(  it ==~ /.+id=".+/ && idfound == false ){
+						artifactId = it.substring(10,it.length()-1)
+						idfound = true
+					}
+					/*	Artifact ID is taken from Bundle-SymbolicName minus the
+					*	16 chars ';singleton:=true'
+					*/
+				}
+	
+				content.eachLine( printFileLine )
+
+	
+				println artifactId
+				println "\t"+versionNumber
+
+
+				def f = new File(artifactId+'/pom.xml') 
+				f.delete()
+				f << feature(artifactId, versionNumber)
+							
+			}
+	
+		}
+	}
+	
+
+	
+}// defining subprojects
+
+
+clean {
+	dependsOn += subprojects.deleteArtifacts
+}
+
+task createParent() << {
+	//		---------				 define Parent 				---------		//
+		
+	new File("${parentID}").mkdir() 			
+	versionNumber 	=	'1.0.0.qualifier'
+	artifactId 		=	parentId()
+
+	def f = new File(artifactId+'/pom.xml') 
+	f.delete()
+	f << parentPom(artifactId)
+	for(int i = 0; i < targetRepositories.size(); i++){
+		f << repos(targetRepositories[i], i)
+	}
+	f << endRepos()
+	f << moduleStart()
+	for(int i = 0; i < numberOfProjects(); i++){
+		f << module(projects(i))
+	}
+	f << module(repositoryName)
+	f << endParent()
+
+}
+
+task createRepository() << {
+
+	//			------------	 	define Repository			---------		//
+			
+			
+	new File("${repositoryName}").mkdir() 
+				
+	versionNumber 	=	'1.0.0.qualifier'
+	artifactId		=	repositoryName
+	featureVersionNumber = '1.0.0.qualifier'
+	def f = new File(artifactId+'/category.xml') 
+	f.delete()
+	f << categoryHead()
+	for(int i = 0; i < features.size(); i++){
+					
+		content = new File("${features[i]}/feature.xml").getText("UTF-8") 
+		printFileLine = {
+			if(  it ==~ /.+version.+qualifier.+/ ){
+				featureVersionNumber = it.substring(15,it.size()-1) 
+				// possibile error: cuts off first 15 chars and leaves out last '"'
+				
+				/*	Version Number is taken from Feature.xml 
+				*	feature.xml is searched for version="version.qualifier"
+				*	first 15 chars and last '"' are cut off
+				*/
+				}		
+		}
+		content.eachLine( printFileLine )
+		f << categoryFeatures(features[i], featureVersionNumber)
+	}// for
+			
+	for(int i = 0; i < features.size(); i++){
+				
+		f << categoryDescription(features[i], descriptions[features[i]][0] ,descriptions[features[i]][1])
+		//							featureName,	label,		description
+	}//for
+				
+	f << categoryEnd()
+				
+	def pom = new File(artifactId+'/pom.xml') 
+	pom.delete()
+	pom << reposi()
+}// end of repository definition
+	
+
+task createPoms(dependsOn: [createParent, createRepository, subprojects.deploy])
+
+
+task install(dependsOn: [createPoms] , type:Exec) {
+	description = "\tExecutes a 'mvn install' of the parent pom.xml and auto-generates Tycho Poms"	
+	commandLine 'mvn', 'install', '-f', parentID+'/pom.xml'
+}
+
+
+//---     Defining Tycho POM parts			--//
+
+
+    def artifact(artifactId,versionNumber) { """
+		<groupId>${groupId()}</groupId>
+		<artifactId>${artifactId}</artifactId>
+		<version>${versionNumber}</version>
+		<packaging>eclipse-plugin</packaging>
+	""" }
+	
+	
+			
+	def start() { """<?xml version="1.0" encoding="UTF-8"?>
+	<project
+		xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+		<modelVersion>4.0.0</modelVersion>
+	"""}
+	
+	
+	def elder() {"""
+		<parent>
+			<groupId>${groupId()}</groupId>
+			<artifactId>${parentId()}</artifactId>
+			<version>1.0.0.qualifier</version>
+			<relativePath>../${parentId()}/pom.xml</relativePath>
+		</parent>
+	"""}
+
+
+	def end() {"""
+	</project>
+	"""}
+	
+// 				--	defining Parent Pom				--				//
+
+
+
+
+def parentPom(artifactId) { """<?xml version="1.0" encoding="UTF-8"?>
+<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>
+	
+	<groupId>${groupId()}</groupId>
+  	<artifactId>${artifactId}</artifactId>
+  	<version>1.0.0.qualifier</version>
+  
+	<packaging>pom</packaging>
+
+	<!-- this is the parent POM from which all modules inherit common settings -->
+	<properties>
+		<tycho-version>0.14.1</tycho-version>
+	</properties>
+
+   <repositories>
+	<!-- configure p2 repository to resolve against -->  
+    
+
+"""}
+
+
+def repos(String targetRepo, int i) {"""
+	
+	<repository>
+	  <id>targetRepository${i}</id>
+	  <layout>p2</layout>
+	  <url>${targetRepo}</url>
+	</repository>
+
+"""}
+
+
+
+def endRepos() {"""
+  </repositories> 
+
+	<build>
+		<plugins>
+			<plugin>
+				<!-- enable tycho build extension -->
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-maven-plugin</artifactId>
+				<version>0.14.1</version>
+				<extensions>true</extensions>
+			</plugin>
+		</plugins>
+	</build>
+"""}
+
+def moduleStart(){"""
+	<!-- the modules that should be built together -->
+	<modules>
+	"""}
+
+//for(int i = 0; i < numberOfProjects(); i++)
+
+def module(String project){"""		<module>../${project}</module>
+"""}
+
+	
+
+def endParent() {"""
+	</modules>
+</project>
+	"""}
+	
+// end of defining parent pom.xml
+
+// repository Pom
+def reposi() { """
+<?xml version="1.0" encoding="UTF-8"?>
+  <project
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+      <groupId>${groupID}</groupId>
+      <artifactId>${parentID}</artifactId>
+      <version>1.0.0.qualifier</version>
+      <relativePath>../${parentID}/pom.xml</relativePath>
+    </parent>
+
+    
+    <groupId>${groupID}</groupId>
+    <artifactId>${repositoryName}</artifactId>
+    <version>1.0.0.qualifier</version>
+    <packaging>eclipse-repository</packaging>
+  </project>
+"""}
+
+
+// creates a category in 
+def categoryHead() { """<?xml version="1.0" encoding="UTF-8"?>
+<site>
+
+"""}
+	
+def categoryFeatures(artifactId, versionNumber){"""
+	<feature url="features/${artifactId}_${versionNumber}.jar" id="${artifactId}" version="${versionNumber}">
+		<category name="${artifactId}.category"/>
+	</feature>
+"""}
+
+def categoryDescription(artifactId, categoryName, categorydescription){"""
+<category-def name="${artifactId}.category" label="${categoryName}">
+      <description>
+${categorydescription}
+      </description>
+   </category-def>
+"""}
+
+def categoryEnd(){"""
+</site>
+"""}
+// end of category definition
+
+// feature pom
+def feature(artifactId, versionNumber) { """
+<?xml version="1.0" encoding="UTF-8"?>
+	<project
+		xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+		<modelVersion>4.0.0</modelVersion>
+		<parent>
+			<groupId>${groupId()}</groupId>
+			<artifactId>${parentId()}</artifactId>
+			<version>1.0.0.qualifier</version>
+			<relativePath>../${parentId()}/pom.xml</relativePath>
+		</parent>
+		<groupId>${groupId()}</groupId>
+		<artifactId>${artifactId}</artifactId>
+		<version>${versionNumber}</version>
+		<packaging>eclipse-feature</packaging>
+	</project>
+"""}
+// end of feature pom
+
+
+//	Build Script can be executed via gradle install
+//	Pom Generation can be executed via gradle deploy
+
+