diff --git a/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/META-INF/MANIFEST.MF b/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/META-INF/MANIFEST.MF
index 8f26cb1d648a94f98a11961ae8aa81f60de93803..6ec6a13dd64a449b5d30dbf9732c02f8957d1fbd 100644
--- a/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/META-INF/MANIFEST.MF
+++ b/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/META-INF/MANIFEST.MF
@@ -5,7 +5,8 @@ Bundle-SymbolicName: de.uniwue.mk.athen.nappi.ui
 Bundle-Version: 1.0.0.qualifier
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
- de.uniwue.mkrug.kall.typesystemUtil;bundle-version="1.0.7"
+ de.uniwue.mkrug.kall.typesystemUtil;bundle-version="1.0.7",
+ de.uniwue.mk.kall.athen.appDelegation
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Export-Package: de.uniwue.mk.athen.nappi.ui.components
diff --git a/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/libs/de.uniwue.mk.nappi.core-0.0.1-SNAPSHOT-jar-with-dependencies.jar b/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/libs/de.uniwue.mk.nappi.core-0.0.1-SNAPSHOT-jar-with-dependencies.jar
index 1f756ad41c042f299fa0698582e6ee419f1ba87c..f22ce53dbb05ce1a5970c90190be67f1d488a6f2 100644
Binary files a/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/libs/de.uniwue.mk.nappi.core-0.0.1-SNAPSHOT-jar-with-dependencies.jar and b/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/libs/de.uniwue.mk.nappi.core-0.0.1-SNAPSHOT-jar-with-dependencies.jar differ
diff --git a/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/libs/de.uniwue.mk.nappi.core-0.0.1-SNAPSHOT.jar b/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/libs/de.uniwue.mk.nappi.core-0.0.1-SNAPSHOT.jar
deleted file mode 100644
index 8a09ab9dd3058e6df175702f5b23fe2307728e15..0000000000000000000000000000000000000000
Binary files a/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/libs/de.uniwue.mk.nappi.core-0.0.1-SNAPSHOT.jar and /dev/null differ
diff --git a/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/libs/de.uniwue.mk.nappi.serviceprovider-0.0.1-SNAPSHOT.jar b/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/libs/de.uniwue.mk.nappi.serviceprovider-0.0.1-SNAPSHOT.jar
deleted file mode 100644
index ea361d6bc0f7157a663295573537916231129730..0000000000000000000000000000000000000000
Binary files a/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/libs/de.uniwue.mk.nappi.serviceprovider-0.0.1-SNAPSHOT.jar and /dev/null differ
diff --git a/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/src/de/uniwue/mk/athen/nappi/ui/communication/INappiToolbarListener.java b/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/src/de/uniwue/mk/athen/nappi/ui/communication/INappiToolbarListener.java
index 16cb364cfe8ff67f92470d9c2ad545fdefcaebc4..5bf636786960e953cd224701b327726ed12c4739 100644
--- a/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/src/de/uniwue/mk/athen/nappi/ui/communication/INappiToolbarListener.java
+++ b/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/src/de/uniwue/mk/athen/nappi/ui/communication/INappiToolbarListener.java
@@ -14,6 +14,10 @@ public interface INappiToolbarListener {
 	public void connectorModeChanged(boolean inConnectorMode);
 	
 	public Composite getDrawingArea();
+
+	public void accessOnlineRepository();
+
+	public void downloadRemoteJars();
 	
 
 }
diff --git a/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/src/de/uniwue/mk/athen/nappi/ui/components/NappiDrawingComposite.java b/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/src/de/uniwue/mk/athen/nappi/ui/components/NappiDrawingComposite.java
index 5add32213663fa6e0427a7cd368702f9c4f50804..54e00c5d412af734a76dc122483372425cbdce3d 100644
--- a/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/src/de/uniwue/mk/athen/nappi/ui/components/NappiDrawingComposite.java
+++ b/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/src/de/uniwue/mk/athen/nappi/ui/components/NappiDrawingComposite.java
@@ -1,17 +1,22 @@
 package de.uniwue.mk.athen.nappi.ui.components;
 
 import java.awt.Polygon;
-import java.io.BufferedReader;
+import java.io.File;
 import java.io.IOException;
-import java.io.InputStreamReader;
+import java.lang.reflect.InvocationTargetException;
 import java.net.URL;
-import java.net.URLConnection;
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
+import org.apache.commons.io.FileUtils;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.MouseAdapter;
 import org.eclipse.swt.events.MouseEvent;
@@ -40,6 +45,7 @@ import de.uniwue.mk.athen.nappi.ui.model.NappiUIAnalysisEngine;
 import de.uniwue.mk.athen.nappi.ui.model.NappiUIDocumentReader;
 import de.uniwue.mk.athen.nappi.ui.model.NappiUIDocumentWriter;
 import de.uniwue.mk.athen.nappi.ui.model.NappiUIPipeline;
+import de.uniwue.mk.kall.athen.appDelegation.util.ApplicationUtil;
 import de.uniwue.mk.nappi.core.ServiceIntegrationUtil;
 import de.uniwue.mk.nappi.core.struct.NappiPipelineConfiguration;
 import de.uniwue.mk.nappi.serviceprovider.aeservice.IAnalysisEngineService;
@@ -368,7 +374,7 @@ public class NappiDrawingComposite extends Canvas implements INappiToolbarListen
 		// clear the object
 		analysisEngines = new HashMap<>();
 
-		// read local engines
+		// read local engines and nothing more !!
 		if (localRepos != null) {
 			for (String localPath : localRepos) {
 
@@ -382,31 +388,12 @@ public class NappiDrawingComposite extends Canvas implements INappiToolbarListen
 				}
 
 			}
-
-			// also add online repo entries
-			if (onlineRepos != null) {
-				for (String onlinePath : onlineRepos) {
-
-					//URLConnection openConnection = new URL(onlinePath).openConnection();
-
-					System.out.println(onlinePath);
-					Map<IAnalysisEngineService, String> enginesInPath = ServiceIntegrationUtil
-							.getAllAnalysisEnginesRecursively(onlinePath);
-
-					// add those that are not yet present
-					for (IAnalysisEngineService service : enginesInPath.keySet()) {
-						if (!analysisEngines.containsKey(service))
-							analysisEngines.put(service, enginesInPath.get(service));
-					}
-
-				}
-			}
 		}
+
 	}
 
 	public void setOnlineRepos(String[] onlineRepos) {
 		this.onlineRepos = onlineRepos;
-		updateNappiEngines();
 
 	}
 
@@ -439,4 +426,105 @@ public class NappiDrawingComposite extends Canvas implements INappiToolbarListen
 
 	}
 
+	// access all remote jars
+	@Override
+	public void accessOnlineRepository() {
+		// also add online repo entries
+
+		IRunnableWithProgress runnable = new IRunnableWithProgress() {
+
+			@Override
+			public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
+				try {
+					List<URL> urLsOfRemoteJars = new ArrayList<>();
+					for (String onlinePath : onlineRepos) {
+						urLsOfRemoteJars.addAll(ServiceIntegrationUtil.getURLsOfRemoteJars(onlinePath));
+
+					}
+					monitor.beginTask("Acessing online repository...", urLsOfRemoteJars.size());
+
+					for (URL url : urLsOfRemoteJars) {
+
+						monitor.subTask("Access " + url.toString());
+						Map<IAnalysisEngineService, String> enginesInURL = ServiceIntegrationUtil
+								.deriveAnalysisEnginesFromOnlineRepo(url.toString());
+						for (IAnalysisEngineService service : enginesInURL.keySet()) {
+							monitor.subTask("Found service: " + service.getCanonicalEngineName());
+							if (!analysisEngines.containsKey(service)) {
+								analysisEngines.put(service, enginesInURL.get(service));
+							}
+						}
+						monitor.worked(1);
+					}
+
+					monitor.done();
+
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+
+			}
+
+		};
+
+		ProgressMonitorDialog pmDia = new ProgressMonitorDialog(getShell());
+		try {
+			pmDia.run(true, false, runnable);
+		} catch (InvocationTargetException | InterruptedException e) {
+			MessageDialog.openError(getShell(), "Processing aborted",
+					"An exception occured during processing:\\n" + e.getMessage());
+			e.printStackTrace();
+		}
+
+	}
+
+	@Override
+	public void downloadRemoteJars() {
+		IRunnableWithProgress runnable = new IRunnableWithProgress() {
+
+			@Override
+			public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
+				try {
+					List<URL> urLsOfRemoteJars = new ArrayList<>();
+					for (String onlinePath : onlineRepos) {
+						urLsOfRemoteJars.addAll(ServiceIntegrationUtil.getURLsOfRemoteJars(onlinePath));
+
+					}
+					monitor.beginTask("Download online repository Jars...", urLsOfRemoteJars.size());
+
+					for (URL url : urLsOfRemoteJars) {
+
+						monitor.subTask("Download: " + url.toString());
+						File localNappiRepository = ApplicationUtil.getLocalNappiRepository();
+						if (localNappiRepository != null) {
+
+							String[] split = url.getFile().split("\\/");
+							String file = split[split.length - 1];
+							FileUtils.copyURLToFile(url, new File(localNappiRepository.getAbsolutePath() + "/" + file));
+						}
+
+						monitor.worked(1);
+					}
+
+					monitor.done();
+
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+
+			}
+
+		};
+
+		ProgressMonitorDialog pmDia = new ProgressMonitorDialog(getShell());
+		try {
+			pmDia.run(true, false, runnable);
+		} catch (InvocationTargetException | InterruptedException e) {
+			MessageDialog.openError(getShell(), "Processing aborted",
+					"An exception occured during processing:\\n" + e.getMessage());
+			e.printStackTrace();
+		}
+
+	}
+
 }
diff --git a/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/src/de/uniwue/mk/athen/nappi/ui/components/NappiToolbarComposite.java b/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/src/de/uniwue/mk/athen/nappi/ui/components/NappiToolbarComposite.java
index 87c19980f32ed612619815d36423c8544957b2e4..118ef70be424f4695cc235df2edb558cd0933727 100644
--- a/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/src/de/uniwue/mk/athen/nappi/ui/components/NappiToolbarComposite.java
+++ b/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/src/de/uniwue/mk/athen/nappi/ui/components/NappiToolbarComposite.java
@@ -63,6 +63,33 @@ public class NappiToolbarComposite extends Composite  {
 			});
 
 		});
+		
+		//add dummys
+//		ToolItem itemDummy1 = new ToolItem(toolBar, SWT.PUSH);
+//		itemDummy1.getControl().setVisible(false);
+		
+		
+		ToolItem itemAccessOnlineReposiroty = new ToolItem(toolBar, SWT.PUSH);
+		itemAccessOnlineReposiroty.setText("Access online repository");
+		itemAccessOnlineReposiroty.addListener(SWT.Selection, (Event e) -> {
+
+			toolbarListener.stream().forEach((INappiToolbarListener listener) -> {
+				listener.accessOnlineRepository();
+				deselectToolbarCheckItems();
+			});
+
+		});
+		
+		ToolItem itemDownloadRemoteJars = new ToolItem(toolBar, SWT.PUSH);
+		itemDownloadRemoteJars.setText("Download Remote Jars");
+		itemDownloadRemoteJars.addListener(SWT.Selection, (Event e) -> {
+
+			toolbarListener.stream().forEach((INappiToolbarListener listener) -> {
+				listener.downloadRemoteJars();
+				deselectToolbarCheckItems();
+			});
+
+		});
 
 		toolBar.pack();
 
diff --git a/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/src/de/uniwue/mk/athen/nappi/ui/components/NappiUIEngineEditingSupport.java b/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/src/de/uniwue/mk/athen/nappi/ui/components/NappiUIEngineEditingSupport.java
new file mode 100644
index 0000000000000000000000000000000000000000..410b9d5413d6dc7a9d9d27aacf01f4acfe376a5d
--- /dev/null
+++ b/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/src/de/uniwue/mk/athen/nappi/ui/components/NappiUIEngineEditingSupport.java
@@ -0,0 +1,66 @@
+package de.uniwue.mk.athen.nappi.ui.components;
+
+import org.apache.uima.resource.metadata.ConfigurationParameter;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jface.viewers.EditingSupport;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TextCellEditor;
+
+public class NappiUIEngineEditingSupport extends EditingSupport {
+
+	private TableViewer viewer;
+	private TextCellEditor editor;
+
+	public NappiUIEngineEditingSupport(TableViewer viewer) {
+		super(viewer);
+		this.viewer = viewer;
+		this.editor = new TextCellEditor(viewer.getTable());
+
+	}
+
+	@Override
+	protected CellEditor getCellEditor(Object element) {
+		return editor;
+	}
+
+	@Override
+	protected boolean canEdit(Object element) {
+
+		return true;
+	}
+
+	@Override
+	protected Object getValue(Object element) {
+		if (element instanceof ConfigurationParameter) {
+			ConfigurationParameter param = (ConfigurationParameter) element;
+			//TODO ccess the value of param
+			return param;
+		}
+		return null;
+	}
+
+	@Override
+	protected void setValue(Object element, Object value) {
+		
+		//TODO fix
+//		if (element instanceof OWLAnnotation) {
+//			OWLAnnotation anno = (OWLAnnotation) element;
+//			String annoType = anno.getProperty().getIRI().getFragment();
+//			if (anno.getValue() instanceof OWLLiteral && ontology != null && classToEdit != null) {
+//
+//				// delete the anno
+//				OWLUtil.deleteAnnotationFromOntology(anno, classToEdit, ontology);
+//
+//				// creae a new one
+//				OWLAnnotation createdAnno = OWLUtil.createAnnotation(annoType, (String) value, ontology);
+//				OWLUtil.addAnnotationToEntity(createdAnno, classToEdit, ontology);
+//				viewer.setInput(OWLUtil.getAnnotationsOnEntity(classToEdit, ontology));
+//
+//			}
+//		}
+
+	}
+
+
+
+}
diff --git a/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/src/de/uniwue/mk/athen/nappi/ui/components/NappiUIEngineParameterDialog.java b/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/src/de/uniwue/mk/athen/nappi/ui/components/NappiUIEngineParameterDialog.java
index 9de8dfdf987e459e2b9085cbe7c8e1814013da08..91015ebed2538cc7089b5b7e8fe5f80b999d3c10 100644
--- a/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/src/de/uniwue/mk/athen/nappi/ui/components/NappiUIEngineParameterDialog.java
+++ b/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/src/de/uniwue/mk/athen/nappi/ui/components/NappiUIEngineParameterDialog.java
@@ -43,6 +43,7 @@ import de.uniwue.mk.nappi.serviceprovider.aeservice.IAnalysisEngineService;
 
 public class NappiUIEngineParameterDialog extends Dialog {
 
+	public static final String ENGINE_METADATA = "ENGINE_METADATA";
 	private Label labelComponentName;
 	private Text textComponentName;
 	private TableViewer viewerParams;
@@ -131,11 +132,9 @@ public class NappiUIEngineParameterDialog extends Dialog {
 		if (accordingElement == null)
 			return;
 		engineDesc = null;
-		System.out.println(accordingElement.getCanonicalEngineName());
 		try {
 			engineDesc = NappiUtil.createAnalysisEngineDescription(accordingElement.getCanonicalEngineName(), engines, null);
 		} catch (InvalidXMLException | ResourceInitializationException | IOException e) {
-			// TODO Auto-generated catch block
 			e.printStackTrace();
 		}
 
@@ -143,6 +142,8 @@ public class NappiUIEngineParameterDialog extends Dialog {
 			ConfigurationParameterDeclarations configurationParameterDeclarations = engineDesc.getAnalysisEngineMetaData().getConfigurationParameterDeclarations();
 			viewerParams.setInput(configurationParameterDeclarations.getConfigurationParameters());
 			viewerParams.refresh();
+			viewerParams.setData(ENGINE_METADATA,engineDesc.getAnalysisEngineMetaData().getConfigurationParameterSettings());
+			
 		}
 
 	}
@@ -187,6 +188,7 @@ public class NappiUIEngineParameterDialog extends Dialog {
 			});
 			
 			TableViewerColumn colDefault = createTableViewerColumn("Paramvalue", 120, 0);
+			
 			colDefault.setLabelProvider(new ColumnLabelProvider() {
 				@Override
 				public String getText(Object element) {
diff --git a/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/src/de/uniwue/mk/athen/nappi/ui/components/NappiUIMainDialog.java b/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/src/de/uniwue/mk/athen/nappi/ui/components/NappiUIMainDialog.java
index 03900dd10997facc5b033504bc038117d8d7ab65..26776a9211273af297c144ba46425db62a6ee078 100644
--- a/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/src/de/uniwue/mk/athen/nappi/ui/components/NappiUIMainDialog.java
+++ b/de.uniwue.mk.athen/bundles/de.uniwue.mk.athen.nappi.ui/src/de/uniwue/mk/athen/nappi/ui/components/NappiUIMainDialog.java
@@ -9,15 +9,17 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
 
+import de.uniwue.mk.kall.athen.appDelegation.util.ApplicationUtil;
+
 public class NappiUIMainDialog extends Dialog {
 
 	private NappiToolbarComposite toolbar;
 	private NappiDrawingComposite drawingComposite;
-	
+
 	private String[] localRepos;
 	private String[] onlineRepos;
 
-	public NappiUIMainDialog(Shell parentShell,String[] localRepositories,String[] onlineReposiores) {
+	public NappiUIMainDialog(Shell parentShell, String[] localRepositories, String[] onlineReposiores) {
 		super(parentShell);
 		this.localRepos = localRepositories;
 		this.onlineRepos = onlineReposiores;
@@ -40,10 +42,10 @@ public class NappiUIMainDialog extends Dialog {
 		GridData gdDrawing = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.FILL_BOTH);
 		gdToolbar.horizontalSpan = 4;
 		drawingComposite.setLayoutData(gdDrawing);
-		drawingComposite.setLocalRepos(localRepos);
+		drawingComposite.setLocalRepos(new String[] { ApplicationUtil.getLocalNappiRepository().getAbsolutePath() });
 		drawingComposite.setOnlineRepos(onlineRepos);
-		
-		//assure that the drawing composite listens to the toolbar
+
+		// assure that the drawing composite listens to the toolbar
 		toolbar.addToolbarListener(drawingComposite);
 
 		return container;
diff --git a/de.uniwue.mk.athen/bundles/de.uniwue.mk.kall.athen.appDelegation/src/de/uniwue/mk/kall/athen/appDelegation/util/ApplicationUtil.java b/de.uniwue.mk.athen/bundles/de.uniwue.mk.kall.athen.appDelegation/src/de/uniwue/mk/kall/athen/appDelegation/util/ApplicationUtil.java
index 9d62c65342091e7bdc7b0bd02cf6bdb67076b217..368024647d7a9a509359e0580836f4bda9f9ca45 100644
--- a/de.uniwue.mk.athen/bundles/de.uniwue.mk.kall.athen.appDelegation/src/de/uniwue/mk/kall/athen/appDelegation/util/ApplicationUtil.java
+++ b/de.uniwue.mk.athen/bundles/de.uniwue.mk.kall.athen.appDelegation/src/de/uniwue/mk/kall/athen/appDelegation/util/ApplicationUtil.java
@@ -404,4 +404,16 @@ public class ApplicationUtil {
 		}
 		return tempFile;
 	}
+
+	public static File getLocalNappiRepository() {
+		String wsPref = getFromPreferences(ApplicationPreferences.WORKSPACE, "nope");
+
+		if (wsPref.equals("nope"))
+			return null;
+
+		File file = new File(wsPref + "/" + NAPPI_EXTERNAL_REPO_FOLDER);
+		if (file.exists())
+			return file;
+		return null;
+	}
 }