diff --git a/org.eclipse.osbp.bpm.feature/feature.xml b/org.eclipse.osbp.bpm.feature/feature.xml
index dfd6a32..be634a8 100644
--- a/org.eclipse.osbp.bpm.feature/feature.xml
+++ b/org.eclipse.osbp.bpm.feature/feature.xml
@@ -3,7 +3,8 @@
         id="org.eclipse.osbp.bpm.feature"
         label="%featureName"
         version="0.9.0.qualifier"
-        provider-name="%providerName">
+        provider-name="%providerName"
+		plugin="org.eclipse.osbp.license">
         
     <description>
         %description
diff --git a/org.eclipse.osbp.bpm/src/org/eclipse/osbp/bpm/AbstractBlipBPMFunctionProvider.java b/org.eclipse.osbp.bpm/src/org/eclipse/osbp/bpm/AbstractBlipBPMFunctionProvider.java
index a33db0b..045832e 100644
--- a/org.eclipse.osbp.bpm/src/org/eclipse/osbp/bpm/AbstractBlipBPMFunctionProvider.java
+++ b/org.eclipse.osbp.bpm/src/org/eclipse/osbp/bpm/AbstractBlipBPMFunctionProvider.java
@@ -49,26 +49,6 @@
 	}
 	
 	@Override
-	public final void startProcess(final String processName) {
-		startProcess(processName, null);
-	}
-	
-	@Override
-	public final void startProcess(final String processName, Map<String, Object> map) {
-		IBlipBPMStartInfo bpm = startInfos.get(processName);
-		if	(ServiceBinder.getBPMEngine() != null) {
-			Map<String,Object> metadata = new HashMap<String,Object>();
-			metadata.put(VARIABLE_PROCESS_PROTOCOL, "");
-			metadata.put(VARIABLE_PROCESS_WORKLOAD_DTO_FQN, bpm.getWorkloadDtoFqn());
-			metadata.put(VARIABLE_PROCESS_WORKLOAD_DTO, bpm.createWorkloadDto());
-			if(map != null) {
-				metadata.putAll(map);
-			}
-			ServiceBinder.getBPMEngine().startProcess(bpm, metadata);
-		}
-	}
-
-	@Override
 	public final Map<String, IBlipBPMStartInfo> getBpmns() {
 		return startInfos;
 	}
