Index: java/main/src/test/java/com/framsticks/hosting/ServerTest.java
===================================================================
--- java/main/src/test/java/com/framsticks/hosting/ServerTest.java	(revision 103)
+++ java/main/src/test/java/com/framsticks/hosting/ServerTest.java	(revision 105)
@@ -8,15 +8,15 @@
 import org.testng.annotations.Test;
 
-import com.framsticks.core.ListChange;
-import com.framsticks.core.LocalTree;
-import com.framsticks.core.Path;
-import com.framsticks.core.Result;
-import com.framsticks.core.TreeOperations;
-import com.framsticks.core.ValueChange;
 import com.framsticks.core.XmlBasedTest;
 import com.framsticks.remote.RemoteTree;
+import com.framsticks.structure.LocalTree;
+import com.framsticks.structure.Path;
+import com.framsticks.structure.Tree;
+import com.framsticks.structure.TreeOperations;
+import com.framsticks.structure.messages.ListChange;
+import com.framsticks.structure.messages.Result;
+import com.framsticks.structure.messages.ValueChange;
 
 import com.framsticks.test.TestClass;
-import com.framsticks.core.Tree;
 import com.framsticks.params.FramsClass;
 import com.framsticks.params.Access;
@@ -29,10 +29,12 @@
 import com.framsticks.params.types.ProcedureParam;
 import com.framsticks.util.dispatching.Dispatching.Waiter;
-import com.framsticks.util.dispatching.FutureHandler;
+import com.framsticks.util.dispatching.Future;
 import com.framsticks.util.dispatching.RunAt;
 
-import static com.framsticks.core.TreeOperations.*;
+import static com.framsticks.params.ParamsUtil.arguments;
 
 import static org.fest.assertions.Assertions.*;
+import static com.framsticks.params.ParamsUtil.getParam;
+import static com.framsticks.structure.TreeOperations.*;
 
 @Test
@@ -72,5 +74,5 @@
 		final Waiter waiter = produceWaiter(1.0);
 
-		TreeOperations.tryGet(remote, "/testClass", new FutureHandler<Path>(failOnException) {
+		TreeOperations.tryGet(remote, "/testClass", new Future<Path>(failOnException) {
 			@Override
 			protected void result(Path path) {
@@ -88,5 +90,5 @@
 		final Waiter waiter = produceWaiter(1.0);
 
-		TreeOperations.tryGet(remote, "/testClass", new FutureHandler<Path>(failOnException) {
+		TreeOperations.tryGet(remote, "/testClass", new Future<Path>(failOnException) {
 			@Override
 			protected void result(Path path) {
@@ -105,5 +107,5 @@
 		final Waiter waiter = produceWaiter(2.0);
 
-		set(remotePath, remoteTestFramsClass.getParamEntry("name", PrimitiveParam.class), "new name", new FutureHandler<Integer>(failOnException) {
+		set(remotePath, getParam(remoteTestFramsClass, "name", PrimitiveParam.class), "new name", new Future<Integer>(failOnException) {
 			@Override
 			protected void result(Integer flags) {
@@ -132,5 +134,5 @@
 		};
 
-		TreeOperations.tryGet(remote, "/cli/events", new FutureHandler<Path>(failOnException) {
+		TreeOperations.tryGet(remote, "/cli/events", new Future<Path>(failOnException) {
 			@Override
 			protected void result(Path path) {
@@ -139,5 +141,5 @@
 		});
 
-		addListener(remotePath, remoteTestFramsClass.getParamEntry("history_changed", EventParam.class), listener, ValueChange.class, produceWaiter(1.0).passInFuture(Void.class));
+		addListener(remotePath, getParam(remoteTestFramsClass, "history_changed", EventParam.class), listener, ValueChange.class, produceWaiter(1.0).passInFuture(Void.class));
 	}
 
@@ -146,7 +148,7 @@
 		final Waiter waiter = produceWaiter(2.0);
 
-		call(remotePath, remoteTestFramsClass.getParamEntry("resetHistory", ProcedureParam.class), new Object[] {}, Object.class, produceWaiter(2.0).passInFuture(Object.class));
-
-		call(remotePath, remoteTestFramsClass.getParamEntry("appendHistory", ProcedureParam.class), new Object[] {"next word"}, Result.class, new FutureHandler<Result>(failOnException) {
+		call(remotePath, getParam(remoteTestFramsClass, "resetHistory", ProcedureParam.class), arguments(), Object.class, produceWaiter(2.0).passInFuture(Object.class));
+
+		call(remotePath, getParam(remoteTestFramsClass, "appendHistory", ProcedureParam.class), arguments("next word"), Result.class, new Future<Result>(failOnException) {
 			@Override
 			protected void result(final Result result) {
@@ -167,5 +169,5 @@
 	@Test(dependsOnMethods = "callMethod")
 	public void deregisterListener() {
-		removeListener(remotePath, remoteTestFramsClass.getParamEntry("history_changed", EventParam.class), listener, produceWaiter(1.0).passInFuture(Void.class));
+		removeListener(remotePath, getParam(remoteTestFramsClass, "history_changed", EventParam.class), listener, produceWaiter(1.0).passInFuture(Void.class));
 
 		assertThat(listenerArguments).isEqualTo(Arrays.asList("", "next word|"));
@@ -183,5 +185,5 @@
 		};
 
-		addListener(remotePath, remoteTestFramsClass.getParamEntry("children_changed", EventParam.class), childListener, ListChange.class, produceWaiter(1.0).passInFuture(Void.class));
+		addListener(remotePath, getParam(remoteTestFramsClass, "children_changed", EventParam.class), childListener, ListChange.class, produceWaiter(1.0).passInFuture(Void.class));
 	}
 
@@ -189,12 +191,12 @@
 	public void createChild() {
 		final Waiter waiter = produceWaiter(2.0);
-		call(remotePath, "createChild", new Object[] { "a child" }, Object.class, produceWaiter(2.0).passInFuture(Object.class));
-		call(remotePath, "createChild", new Object[] { "another child" }, Object.class, produceWaiter(2.0).passInFuture(Object.class));
-
-		tryGet(remote, "/testClass/children/c0", new FutureHandler<Path>(failOnException) {
+		call(remotePath, "createChild", arguments("a child"), Object.class, produceWaiter(2.0).passInFuture(Object.class));
+		call(remotePath, "createChild", arguments("another child"), Object.class, produceWaiter(2.0).passInFuture(Object.class));
+
+		tryGet(remote, "/testClass/children/c0", new Future<Path>(failOnException) {
 
 			@Override
 			protected void result(Path result) {
-				set(result, getFramsClass(result).getParamEntry("name", StringParam.class), "new_name", new FutureHandler<Integer>(failOnException) {
+				set(result, getParam(result, "name", StringParam.class), "new_name", new Future<Integer>(failOnException) {
 
 					@Override
@@ -209,5 +211,5 @@
 	@Test(dependsOnMethods = "createChild")
 	public void deregisterChildListener() {
-		removeListener(remotePath, remoteTestFramsClass.getParamEntry("children_changed", EventParam.class), childListener, produceWaiter(1.0).passInFuture(Void.class));
+		removeListener(remotePath, getParam(remoteTestFramsClass, "children_changed", EventParam.class), childListener, produceWaiter(1.0).passInFuture(Void.class));
 	}
 
