Index: references/src/main/java/geniusweb/connection/Connectable.java
===================================================================
--- references/src/main/java/geniusweb/connection/Connectable.java	(revision 53)
+++ references/src/main/java/geniusweb/connection/Connectable.java	(revision 1)
@@ -2,8 +2,7 @@
 
 /**
- * A Connectable is an object that can connect on request with a provided
- * {@link ConnectionEnd} and then respond to incoming and outgong signals.
+ * a socket for a general two-way connection
  *
- * @param <INTYPE>  the type of incoming messages
+ * @param <INTYPE> the type of incoming messages
  * @param <OUTTYPE> the type of outgoing messages
  */
@@ -14,5 +13,5 @@
 	 * @param connection the new connection
 	 */
-	void connect(ConnectionEnd<INTYPE, OUTTYPE> connection);
+	void connect(Connection<INTYPE, OUTTYPE> connection);
 
 	/**
Index: references/src/main/java/geniusweb/connection/Connection.java
===================================================================
--- references/src/main/java/geniusweb/connection/Connection.java	(revision 1)
+++ references/src/main/java/geniusweb/connection/Connection.java	(revision 1)
@@ -0,0 +1,65 @@
+package geniusweb.connection;
+
+import java.io.IOException;
+import java.net.SocketException;
+import java.net.URI;
+
+import geniusweb.references.Reference;
+import tudelft.utilities.listener.Listenable;
+
+/**
+ * A general two-way connection. incoming data is reported through the
+ * {@link Listenable} channel, sending events of the INTYPE.
+ * <p>
+ * If an internal error occurs, eg a socket failure, timeout, or parser error, a
+ * null event is sent into the Listenable and {@link #getError()} can be called
+ * to find out about the error.
+ *
+ * @param <INTYPE>  the type of incoming messages. Incoming messages are
+ *                  received through Listener#not. Incoming messages are usually
+ *                  asynchronous.
+ * @param <OUTTYPE> the type of outgoing messages. Outgoing messages can be sent
+ *                  directly with #send.
+ * 
+ */
+public interface Connection<INTYPE, OUTTYPE> extends Listenable<INTYPE> {
+
+	/**
+	 * Send data out (and flush the output so that there are no excessive delays
+	 * in sending the data). This call is assumed to return immediately (never
+	 * block, eg on synchronized, Thread.sleep, IO, etc). When this is called
+	 * multiple times in sequence, the data should arrive at the receiver end in
+	 * the same order.
+	 * 
+	 * @param data the data to be sent.
+	 * @throws IOException if the data failed to be sent.
+	 */
+	void send(OUTTYPE data) throws IOException;
+
+	/**
+	 * @return Reference that was used to create this connection
+	 */
+	Reference getReference();
+
+	/**
+	 * @return the URI of the remote endpoint that makes up the connection. This
+	 *         is a URI that uniquely identifies the remote object
+	 */
+	URI getRemoteURI();
+
+	/**
+	 * Close the connection. Should return immediately (not block). Before
+	 * really closing, this should attempt to send out possibly cached messages
+	 * before closing the connection.
+	 * 
+	 */
+	void close();
+
+	/**
+	 * @return the latest internal error, or null if no error occured. If the
+	 *         channel is closed, this is set to {@link SocketException} "Socket
+	 *         closed", even if the close was a "normal" termination eg when
+	 *         {@link #close()} was called.
+	 */
+	Throwable getError();
+}
Index: references/src/main/java/geniusweb/connection/ConnectionEnd.java
===================================================================
--- references/src/main/java/geniusweb/connection/ConnectionEnd.java	(revision 53)
+++ 	(revision )
@@ -1,73 +1,0 @@
-package geniusweb.connection;
-
-import java.io.IOException;
-import java.net.SocketException;
-import java.net.URI;
-
-import geniusweb.references.Reference;
-import tudelft.utilities.listener.Listenable;
-
-/**
- * One end of a general two-way connection. incoming data is reported through
- * the {@link Listenable} channel, sending events of the INTYPE.
- * <p>
- * 
- * The connection mechanism assumed here is fundamentally asymmetric. One side
- * is "Connectable", the other side is a ConnectionEnd created (usually from a
- * {@link Reference}. This matches the typical client-server system (web
- * architecture).
- * 
- * <p>
- * If an internal error occurs, eg a socket failure, timeout, or parser error, a
- * null event is sent into the Listenable. {@link #getError()} can be called to
- * find out about the error.
- *
- * @param <INTYPE>  the type of incoming messages (incoming for the user of this
- *                  connection end). Incoming messages are received through
- *                  Listener#not. Incoming messages are usually asynchronous.
- * @param <OUTTYPE> the type of outgoing messages (outgoing for the user of this
- *                  connection end). Outgoing messages can be sent directly with
- *                  #send.
- * 
- */
-public interface ConnectionEnd<INTYPE, OUTTYPE> extends Listenable<INTYPE> {
-
-	/**
-	 * Send data out (and flush the output so that there are no excessive delays
-	 * in sending the data). This call is assumed to return immediately (never
-	 * block, eg on synchronized, Thread.sleep, IO, etc). When this is called
-	 * multiple times in sequence, the data should arrive at the receiver end in
-	 * the same order.
-	 * 
-	 * @param data the data to be sent.
-	 * @throws IOException if the data failed to be sent.
-	 */
-	void send(OUTTYPE data) throws IOException;
-
-	/**
-	 * @return Reference that was used to create this connection
-	 */
-	Reference getReference();
-
-	/**
-	 * @return the URI of the remote endpoint that makes up the connection. This
-	 *         is a URI that uniquely identifies the remote object
-	 */
-	URI getRemoteURI();
-
-	/**
-	 * Close the connection. Should return immediately (not block). Before
-	 * really closing, this should attempt to send out possibly cached messages
-	 * before closing the connection.
-	 * 
-	 */
-	void close();
-
-	/**
-	 * @return the latest internal error, or null if no error occured. If the
-	 *         channel is closed, this is set to {@link SocketException} "Socket
-	 *         closed", even if the close was a "normal" termination eg when
-	 *         {@link #close()} was called.
-	 */
-	Throwable getError();
-}
Index: references/src/main/java/geniusweb/connection/ConnectionFactory.java
===================================================================
--- references/src/main/java/geniusweb/connection/ConnectionFactory.java	(revision 53)
+++ references/src/main/java/geniusweb/connection/ConnectionFactory.java	(revision 1)
@@ -9,5 +9,4 @@
  * factory that can turn a {@link Reference} into a connection to that
  * reference.
- * 
  * 
  * @param <INTYPE>  the type of incoming messages. Incoming messages are
@@ -31,5 +30,5 @@
 	 *                                 the server. This suggest to retry later.
 	 */
-	ConnectionEnd<INTYPE, OUTTYPE> connect(Reference reference)
+	Connection<INTYPE, OUTTYPE> connect(Reference reference)
 			throws IOException, NoResourcesNowException;
 
Index: references/src/main/java/geniusweb/connection/DefaultConnection.java
===================================================================
--- references/src/main/java/geniusweb/connection/DefaultConnection.java	(revision 53)
+++ references/src/main/java/geniusweb/connection/DefaultConnection.java	(revision 1)
@@ -6,12 +6,12 @@
  * Default implementation of connection. Connection implementors only need to
  * implement the send (which moves the data sent into the connection to the
- * other side) and they can call
- * {@link DefaultListenable#notifyListeners(Object)} to inform the users of the
- * connection that something came in from the other side.
+ * other side) and they can call {@link DefaultListenable#notifyChange(Object)}
+ * to inform the users of the connection that something came in from the other
+ * side.
  *
- * @param <INTYPE>  the datatype of objects received from the other side
+ * @param <INTYPE> the datatype of objects received from the other side
  * @param <OUTTYPE> the datatype of objects sent to the other side.
  */
 public abstract class DefaultConnection<INTYPE, OUTTYPE> extends
-		DefaultListenable<INTYPE> implements ConnectionEnd<INTYPE, OUTTYPE> {
+		DefaultListenable<INTYPE> implements Connection<INTYPE, OUTTYPE> {
 }
Index: references/src/main/java/geniusweb/references/Parameters.java
===================================================================
--- references/src/main/java/geniusweb/references/Parameters.java	(revision 53)
+++ 	(revision )
@@ -1,149 +1,0 @@
-package geniusweb.references;
-
-import java.util.HashMap;
-
-import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.annotation.JsonValue;
-
-/**
- * init parameters for a party. Object must be either a HashMap, List, String or
- * Number. Other objects may not deserialize properly. We never use blanket
- * Object deserializers (enableDefaultTyping) because of security reasons.
- *
- */
-public class Parameters {
-
-	@JsonValue
-	private final HashMap<String, Object> params = new HashMap<>();
-
-	public Parameters() {
-	}
-
-	@JsonCreator
-	public Parameters(HashMap<String, Object> vals) {
-		params.putAll(vals);
-	}
-
-	/**
-	 * 
-	 * @param key the key to get the value for.
-	 * @return the raw value
-	 */
-	public Object get(String key) {
-		return params.get(key);
-	}
-
-	/**
-	 * 
-	 * @return true iff params is empty
-	 */
-	public boolean isEmpty() {
-		return params.isEmpty();
-	}
-
-	/**
-	 * 
-	 * @param key the key to be checked
-	 * @return true iff params contains the given key
-	 */
-	public boolean containsKey(String key) {
-		return params.containsKey(key);
-	}
-
-	/**
-	 * 
-	 * @param key the key. Key may already in params.
-	 * @param val the new value for the key
-	 * @return new Parameters , which is copy of this but with key-value pair
-	 *         added/overridden
-	 */
-	public Parameters with(String key, Object val) {
-		HashMap<String, Object> newparams = new HashMap<String, Object>(params);
-		newparams.put(key, val);
-		return new Parameters(newparams);
-	}
-
-	/**
-	 * Getter with type-check
-	 * 
-	 * @param <T>       the expected type
-	 * @param paramname the parameter name that must be in the map
-	 * @param classType the expected value type for this parameter
-	 * @return object of requested type.
-	 * @throws IllegalArgumentException if the object is not available.
-	 */
-	@SuppressWarnings("unchecked")
-	public <T> T get(String paramname, Class<T> classType) {
-		if (!params.containsKey(paramname)
-				|| !(classType.isInstance(params.get(paramname))))
-			throw new IllegalArgumentException(" Missing a parameter "
-					+ paramname + " with a " + classType.getName() + " value");
-		return (T) params.get(paramname);
-	}
-
-	/**
-	 * 
-	 * @param parameters the parameters to be added/overridden
-	 * @return new Parameters, with new parameters ADDED to existing. The new
-	 *         parameters override existing ones.
-	 */
-	public Parameters with(Parameters parameters) {
-		HashMap<String, Object> newparams = new HashMap<String, Object>(params);
-		newparams.putAll(parameters.params);
-		return new Parameters(newparams);
-	}
-
-	/**
-	 * 
-	 * @param name       the parameter name
-	 * @param defaultval the default value to return if parameter is not
-	 *                   available or not inside the given range. Can be null
-	 * @param min        the minimum value, or null if not applicable
-	 * @param max        the maximum value, or null if not applicable
-	 * @return the double value contained inside the parameter with the given
-	 *         name, or defaultval if the parameter does not exist, does not
-	 *         contain a double, or is outside [min, max].
-	 */
-	public Double getDouble(String name, Double defaultval, Double min,
-			Double max) {
-		if (!params.containsKey(name) || !(params.get(name) instanceof Number))
-			return defaultval;
-		Double val = ((Number) params.get(name)).doubleValue();
-		if (min != null && val < min)
-			return defaultval;
-		if (max != null && val > max)
-			return defaultval;
-		return val;
-	}
-
-	@Override
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result + ((params == null) ? 0 : params.hashCode());
-		return result;
-	}
-
-	@Override
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (obj == null)
-			return false;
-		if (getClass() != obj.getClass())
-			return false;
-		Parameters other = (Parameters) obj;
-		if (params == null) {
-			if (other.params != null)
-				return false;
-		} else if (!params.equals(other.params))
-			return false;
-		return true;
-	}
-
-	@Override
-	public String toString() {
-		return params.toString();
-	}
-
-}
Index: references/src/main/java/geniusweb/references/PartyWithParameters.java
===================================================================
--- references/src/main/java/geniusweb/references/PartyWithParameters.java	(revision 53)
+++ 	(revision )
@@ -1,81 +1,0 @@
-package geniusweb.references;
-
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
-import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-/**
- * Container holding a partyref with parameters
- */
-@JsonAutoDetect(fieldVisibility = Visibility.ANY, getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
-public class PartyWithParameters {
-
-	private final PartyRef partyref;
-	private final Parameters parameters;
-
-	@JsonCreator
-	public PartyWithParameters(@JsonProperty("partyref") PartyRef partyref,
-			@JsonProperty("parameters") Parameters parameters) {
-		this.partyref = partyref;
-		this.parameters = parameters;
-	}
-
-	public PartyRef getPartyRef() {
-		return partyref;
-	}
-
-	public Parameters getParameters() {
-		return parameters;
-	}
-
-	@Override
-	public String toString() {
-		if (parameters.isEmpty())
-			return partyref.toString();
-		return partyref.toString() + parameters.toString();
-	}
-
-	@Override
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result
-				+ ((parameters == null) ? 0 : parameters.hashCode());
-		result = prime * result
-				+ ((partyref == null) ? 0 : partyref.hashCode());
-		return result;
-	}
-
-	/**
-	 * 
-	 * @param parameters2 the additional parameters
-	 * @return this party but with the given parameters added to our parameters
-	 */
-	public PartyWithParameters with(Parameters parameters2) {
-		return new PartyWithParameters(partyref, parameters.with(parameters2));
-	}
-
-	@Override
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (obj == null)
-			return false;
-		if (getClass() != obj.getClass())
-			return false;
-		PartyWithParameters other = (PartyWithParameters) obj;
-		if (parameters == null) {
-			if (other.parameters != null)
-				return false;
-		} else if (!parameters.equals(other.parameters))
-			return false;
-		if (partyref == null) {
-			if (other.partyref != null)
-				return false;
-		} else if (!partyref.equals(other.partyref))
-			return false;
-		return true;
-	}
-
-}
Index: references/src/main/java/geniusweb/references/PartyWithProfile.java
===================================================================
--- references/src/main/java/geniusweb/references/PartyWithProfile.java	(revision 53)
+++ references/src/main/java/geniusweb/references/PartyWithProfile.java	(revision 1)
@@ -8,9 +8,9 @@
 @JsonAutoDetect(fieldVisibility = Visibility.ANY, getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
 public class PartyWithProfile {
-	private final PartyWithParameters party;
+	private final PartyRef party;
 	private final ProfileRef profile;
 
 	@JsonCreator
-	public PartyWithProfile(@JsonProperty("party") PartyWithParameters party,
+	public PartyWithProfile(@JsonProperty("party") PartyRef party,
 			@JsonProperty("profile") ProfileRef profile) {
 		if (party == null || profile == null) {
@@ -22,16 +22,9 @@
 	}
 
-	/**
-	 * 
-	 * @return the {@link PartyWithParameters}. never null.
-	 */
-	public PartyWithParameters getParty() {
+	public PartyRef getParty() {
 		return party;
 
 	}
 
-	/**
-	 * @return the profile setting for this party. Never null.
-	 */
 	public ProfileRef getProfile() {
 		return profile;
