diff --git a/MathHubWorker/src/main/java/info/kwarc/sally4/mathhubworker/LMHClient.java b/MathHubWorker/src/main/java/info/kwarc/sally4/mathhubworker/LMHClient.java
new file mode 100644
index 0000000000000000000000000000000000000000..ac0efa6ff0c470990c1fd4aa5844a5913bb4ed38
--- /dev/null
+++ b/MathHubWorker/src/main/java/info/kwarc/sally4/mathhubworker/LMHClient.java
@@ -0,0 +1,7 @@
+package info.kwarc.sally4.mathhubworker;
+
+import info.kwarc.sally4.docmanager.SallyDoc;
+
+public interface LMHClient {
+	SallyDoc getLMHDoc();
+}
diff --git a/MathHubWorker/src/main/java/info/kwarc/sally4/mathhubworker/PlanetaryClient.java b/MathHubWorker/src/main/java/info/kwarc/sally4/mathhubworker/PlanetaryClient.java
index 34f9c6b52836cc139c71cc8aceed2ee843a8726e..08775ad79f55f8f292b1f3e30874217a7dc33cfd 100644
--- a/MathHubWorker/src/main/java/info/kwarc/sally4/mathhubworker/PlanetaryClient.java
+++ b/MathHubWorker/src/main/java/info/kwarc/sally4/mathhubworker/PlanetaryClient.java
@@ -2,8 +2,10 @@ package info.kwarc.sally4.mathhubworker;
 
 import info.kwarc.sally.comm.planetaryclient.NewService;
 import info.kwarc.sally.comm.planetaryclient.RemoveService;
+import info.kwarc.sally4.docmanager.SallyDoc;
 
 public interface PlanetaryClient {
 	void newService(NewService service);
-	void stopService(RemoveService service);	
+	void stopService(RemoveService service);
+	SallyDoc getPlanetaryDoc();
 }
diff --git a/MathHubWorker/src/main/java/info/kwarc/sally4/mathhubworker/impl/LMHWorkflowInstance.java b/MathHubWorker/src/main/java/info/kwarc/sally4/mathhubworker/impl/LMHWorkflowInstance.java
index 463f918d051065c2eee284e0a1d13f7aa81120e8..7aa31186e0210643f11f53472316ff64895ef0b4 100644
--- a/MathHubWorker/src/main/java/info/kwarc/sally4/mathhubworker/impl/LMHWorkflowInstance.java
+++ b/MathHubWorker/src/main/java/info/kwarc/sally4/mathhubworker/impl/LMHWorkflowInstance.java
@@ -4,17 +4,20 @@ import info.kwarc.sally4.core.CamelContextProvider;
 import info.kwarc.sally4.core.SallyInteraction;
 import info.kwarc.sally4.docmanager.SallyDoc;
 import info.kwarc.sally4.marshalling.CommUtils;
+import info.kwarc.sally4.mathhubworker.LMHClient;
 import info.kwarc.sally4.planetary.PlanetaryConnection;
 import info.kwarc.sally4.servlet.SallyServlet;
 
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.spi.DataFormat;
 import org.apache.felix.ipojo.annotations.Component;
+import org.apache.felix.ipojo.annotations.Provides;
 import org.apache.felix.ipojo.annotations.Requires;
 import org.apache.felix.ipojo.annotations.Validate;
 
 @Component(name="LMHWorkflowInstance")
-public class LMHWorkflowInstance extends RouteBuilder {
+@Provides(specifications=LMHClient.class)
+public class LMHWorkflowInstance extends RouteBuilder implements LMHClient{
 	String planetaryClientNamespace = "http://kwarc.info/sally/comm/planetaryclient";
 
 	@Requires
@@ -49,4 +52,9 @@ public class LMHWorkflowInstance extends RouteBuilder {
 			.to("direct:requestAuthKey");
 	}
 
+	@Override
+	public SallyDoc getLMHDoc() {
+		return route;
+	}
+
 }
diff --git a/MathHubWorker/src/main/java/info/kwarc/sally4/mathhubworker/impl/MathHubEnvironment.java b/MathHubWorker/src/main/java/info/kwarc/sally4/mathhubworker/impl/MathHubEnvironment.java
index 925d20668e99de71db3e0f2db007bf51d3a275bd..0dfda738e3a383955bc50a418ece36ca186fcfcd 100644
--- a/MathHubWorker/src/main/java/info/kwarc/sally4/mathhubworker/impl/MathHubEnvironment.java
+++ b/MathHubWorker/src/main/java/info/kwarc/sally4/mathhubworker/impl/MathHubEnvironment.java
@@ -1,19 +1,37 @@
 package info.kwarc.sally4.mathhubworker.impl;
 
-import java.util.ArrayList;
-import java.util.List;
-
+import info.kwarc.sally4.mathhubworker.LMHClient;
+import info.kwarc.sally4.mathhubworker.PlanetaryClient;
 
 public class MathHubEnvironment {
 
-	List<String> services;
-
+	PlanetaryClient planetaryClient;
+	LMHClient lmhClient;
+	
 	public MathHubEnvironment() {
-		services = new ArrayList<String>();
-	}	
-
-	public void addService(String serviceName) {
-
 	}
 
+	public PlanetaryClient getPlanetaryClient() {
+		return planetaryClient;
+	}
+	
+	public void setPlanetaryClient(PlanetaryClient  planetaryClient) {
+		this.planetaryClient = planetaryClient;
+	}
+	
+	public LMHClient getLmhClient() {
+		return lmhClient;
+	}
+	
+	public void setLmhClient(LMHClient lmhClient) {
+		this.lmhClient = lmhClient;
+	}
+	
+	public String getDescription() {
+		StringBuilder desc = new StringBuilder();
+		if (lmhClient !=null)
+			desc.append("LMH");
+		return desc.toString();
+	}
+	
 }
diff --git a/MathHubWorker/src/main/java/info/kwarc/sally4/mathhubworker/impl/MathHubManagerModel.java b/MathHubWorker/src/main/java/info/kwarc/sally4/mathhubworker/impl/MathHubManagerModel.java
deleted file mode 100644
index d235114353ea0bb9f93328f9a35c02ac3702c224..0000000000000000000000000000000000000000
--- a/MathHubWorker/src/main/java/info/kwarc/sally4/mathhubworker/impl/MathHubManagerModel.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package info.kwarc.sally4.mathhubworker.impl;
-
-import info.kwarc.sally4.docmanager.DocumentManager;
-
-import java.util.HashMap;
-
-/**
- * Manages the connection between documents and MathHubWorker environments
- * @author Constantin Jucovschi
- *
- */
-public class MathHubManagerModel {
-	// mapping between a document alex route and an environment
-	HashMap<String, String> docEnvMapping;
-	DocumentManager docManager;
-	
-	public MathHubManagerModel(DocumentManager docManager) {
-		docEnvMapping = new HashMap<String, String>();
-		this.docManager = docManager;
-	}
-	
-	public HashMap<String, MathHubEnvironment> getAvailableWorkersForRoute(String docQueue) {
-		HashMap<String, MathHubEnvironment> environments= new HashMap<String, MathHubEnvironment>();
-		if (docQueue == null)
-			return environments;
-		/*
-		for (IDocWorkflowInstance instance : docManager.getDocWorkflowInstances(new String[]{"lmhworker"})) {
-			String envID = instance.getRoute().getEnvironmentID();
-			if (!environments.containsKey(envID))
-				environments.put(envID, new MathHubEnvironment());
-			environments.get(envID).add(new MathHubService(instance, "LMH"));
-		}
-		*/
-		return environments;
-	}
-	
-	public void connect(String docQueue, String environment) {
-		this.docEnvMapping.put(docQueue, environment);
-	}
-}
diff --git a/MathHubWorker/src/main/java/info/kwarc/sally4/mathhubworker/impl/MathHubWorkerSelectorService.java b/MathHubWorker/src/main/java/info/kwarc/sally4/mathhubworker/impl/MathHubWorkerSelectorService.java
index 39bc99086b0d280192c5068edf4237b6ca2c57c5..5d5fd1c738ddff6697fc75af8349519189e6d493 100644
--- a/MathHubWorker/src/main/java/info/kwarc/sally4/mathhubworker/impl/MathHubWorkerSelectorService.java
+++ b/MathHubWorker/src/main/java/info/kwarc/sally4/mathhubworker/impl/MathHubWorkerSelectorService.java
@@ -3,6 +3,7 @@ package info.kwarc.sally4.mathhubworker.impl;
 import info.kwarc.sally.comm.planetaryclient.NewService;
 import info.kwarc.sally.comm.planetaryclient.RemoveService;
 import info.kwarc.sally4.core.CamelContextProvider;
+import info.kwarc.sally4.mathhubworker.LMHClient;
 import info.kwarc.sally4.mathhubworker.PlanetaryClient;
 import info.kwarc.sally4.processors.FileServeProcessor;
 import info.kwarc.sally4.servlet.utils.QueryParser;
@@ -28,13 +29,36 @@ import org.slf4j.LoggerFactory;
 @Instantiate
 public class MathHubWorkerSelectorService extends RouteBuilder {
 	Logger log;
-	
+
 	@Requires
 	CamelContextProvider camelContextProvider;
-	
+
 	@Requires
 	PlanetaryClient [] planetaryClients;
-	
+
+	HashMap<String, MathHubEnvironment> environments;
+
+	@Bind(aggregate=true)
+	public void bindLMHClient(LMHClient lmhClient) {
+		String envid = lmhClient.getLMHDoc().getEnvironmentID();
+		if (!environments.containsKey(lmhClient.getLMHDoc().getEnvironmentID())) {
+			environments.put(envid, new MathHubEnvironment());
+		}
+		log.info(">>>> Adding LMHClient "+envid);
+		environments.get(envid).setLmhClient(lmhClient);
+	}	
+
+	@Unbind(aggregate=true)
+	public void unbindLMHClient(LMHClient lmhClient) {
+		String envid = lmhClient.getLMHDoc().getEnvironmentID();
+		if (!environments.containsKey(lmhClient.getLMHDoc().getEnvironmentID())) {
+			return;
+		}
+		log.info(">>>> Removing LMHClient "+envid);
+		environments.get(envid).setLmhClient(null);		
+	}	
+
+
 	@Bind(aggregate=true)
 	public void addPlanetaryClient(PlanetaryClient planetaryClients) {
 		NewService serv = new NewService();
@@ -43,33 +67,43 @@ public class MathHubWorkerSelectorService extends RouteBuilder {
 		serv.setId("mhwsettings");
 		serv.setName("Math Hub Worker Settings");
 		serv.setType("toolbar");
-		serv.setUrl(host+"/planetary/mhwsettings?id=123");//+route.getDocQueue());
+		serv.setUrl(host+"/planetary/mhwsettings?id="+planetaryClients.getPlanetaryDoc().getDocQueue());
 		planetaryClients.newService(serv);
 	}
 
 	@Unbind(aggregate=true)
 	public void removePlanetaryClient(PlanetaryClient planetaryClients) {
-		
+
 	}
 
-	
-	HashMap<String, MathHubEnvironment> environments;
-	
 	public MathHubWorkerSelectorService() {
 		log = LoggerFactory.getLogger(getClass());
 		environments = new HashMap<String, MathHubEnvironment>();
 	}
 
-	
+
 	public HashMap<String, Object> getSettings(@Header(QueryParser.QueryMapHeader) HashMap<String, String> query) {
 		HashMap<String, Object> data = new HashMap<String, Object>();
 		String id = query.get("id");
-		//data.put("env", model.getAvailableWorkersForRoute());
+
+		data.put("env", environments);
+		data.put("doc_queue_id", id);
+		return data;
+	}
+
+	public HashMap<String, Object> setMHW(@Header(QueryParser.QueryMapHeader) HashMap<String, String> query) {
+		HashMap<String, Object> data = new HashMap<String, Object>();
+		String id = query.get("id");
+		String envid = query.get("envid");
+
+		data.put("env", environments);
+		data.put("doc_queue_id", id);
 		return data;
 	}
+
 	
 	CamelContext resourceContext;
-	
+
 	@Validate
 	public void start() {
 		resourceContext = new DefaultCamelContext();
@@ -81,7 +115,7 @@ public class MathHubWorkerSelectorService extends RouteBuilder {
 			e.printStackTrace();
 		}
 	}
-	
+
 	@Invalidate
 	public void stop() {
 		try {
@@ -99,15 +133,20 @@ public class MathHubWorkerSelectorService extends RouteBuilder {
 
 	@Override
 	public void configure() throws Exception {
-//		getContext().addComponent("freemarker", new TemplatingComponent("templates/", getClass().getClassLoader()));
+		//		getContext().addComponent("freemarker", new TemplatingComponent("templates/", getClass().getClassLoader()));
 		getContext().addComponent("freemarker", new FreemarkerComponent());
 		from("sallyservlet:///planetary/libs?matchOnUriPrefix=true")
-			.process(new FileServeProcessor("libs", getClass().getClassLoader() ));
-		
+		.process(new FileServeProcessor("libs", getClass().getClassLoader() ));
+
 		from("sallyservlet:///planetary/mhwsettings")
-			.process(new QueryParser())
-			.bean(method(this, "getSettings"))
-			.to("freemarker:file:///home/costea/workspace_sally4/sally4.git/MathHubWorker/src/main/resources/templates/mhwsettings.html")
-			.to("mock:result");
+		.process(new QueryParser())
+		.bean(method(this, "getSettings"))
+		.to("freemarker:file:///home/costea/workspace_sally4/sally4.git/MathHubWorker/src/main/resources/templates/mhwsettings.html");
+
+		from("sallyservlet:///planetary/setmhw")
+		.process(new QueryParser())
+		.bean(method(this, "getSettings"))
+		.to("freemarker:file:///home/costea/workspace_sally4/sally4.git/MathHubWorker/src/main/resources/templates/mhwsettings.html");
+
 	}
 }
diff --git a/MathHubWorker/src/main/java/info/kwarc/sally4/mathhubworker/impl/PlanetaryClientWorkflowInstance.java b/MathHubWorker/src/main/java/info/kwarc/sally4/mathhubworker/impl/PlanetaryClientWorkflowInstance.java
index 3e6b71921a7e08dfa39a3ae668af341157df5845..c5710f4403a4a2889579be54cf606c2e3f0370c1 100644
--- a/MathHubWorker/src/main/java/info/kwarc/sally4/mathhubworker/impl/PlanetaryClientWorkflowInstance.java
+++ b/MathHubWorker/src/main/java/info/kwarc/sally4/mathhubworker/impl/PlanetaryClientWorkflowInstance.java
@@ -140,4 +140,9 @@ public class PlanetaryClientWorkflowInstance extends RouteBuilder implements Pla
 		context.createProducerTemplate().sendBody("direct:sendToPlanetaryClient", service);		
 	}
 
+	@Override
+	public SallyDoc getPlanetaryDoc() {
+		return route;
+	}
+
 }
diff --git a/MathHubWorker/src/main/resources/templates/mhwsettings.html b/MathHubWorker/src/main/resources/templates/mhwsettings.html
index eb8b4e573d6c903d184914c8941c85186f8660b2..46ef9f3a84168268beb72b95b3d7d195b83125c5 100644
--- a/MathHubWorker/src/main/resources/templates/mhwsettings.html
+++ b/MathHubWorker/src/main/resources/templates/mhwsettings.html
@@ -13,18 +13,18 @@
   </div>
 </div>
 
-
 	<#list body.env?keys as e>
+		<form action="setmhw">
 		<div class="row-fluid">
 			<div class="span1">${e_index+1}.</div>
-			<div class="span11 btn">
-				<#list body.env[e] as workflowInstances>
-					 ${workflowInstances.getServiceName()}
-				</#list>
-			</div>
+			<button class="span11 btn">
+				${body.env[e].getDescription()}
+			</button>
+			<input type="hidden" name="envid" value="${e}" />
+			<input type="hidden" name="id" value="${body.doc_queue_id}" />
 		</div>
-
+		</form>
 	</#list>
-
+	
 </body>
 </html>
\ No newline at end of file