Index: /bidspace/pom.xml
===================================================================
--- /bidspace/pom.xml	(revision 52)
+++ /bidspace/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb</groupId>
 	<artifactId>bidspace</artifactId>
-	<version>2.1.6</version>
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
@@ -43,5 +43,5 @@
 			<groupId>tudelft.utilities</groupId>
 			<artifactId>utilities</artifactId>
-			<version>1.2.1</version>
+			<version>1.3.1</version>
 		</dependency>
 
@@ -113,5 +113,10 @@
 			<scope>test</scope>
 		</dependency>
-
+		<dependency>
+			<groupId>org.apache.commons</groupId>
+			<artifactId>commons-math</artifactId>
+			<version>2.2</version>
+			<scope>test</scope>
+		</dependency>
 	</dependencies>
 
Index: /bidspace/src/main/java/geniusweb/bidspace/BidsWithUtility.java
===================================================================
--- /bidspace/src/main/java/geniusweb/bidspace/BidsWithUtility.java	(revision 52)
+++ /bidspace/src/main/java/geniusweb/bidspace/BidsWithUtility.java	(revision 53)
@@ -3,4 +3,5 @@
 import java.math.BigDecimal;
 import java.math.BigInteger;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
@@ -39,5 +40,6 @@
 	 */
 	private final Map<Tuple<Integer, Interval>, ImmutableList<Bid>> cache = new HashMap<>();
-	private ImmutableList<Bid> emptylist = new FixedList<>();
+	private ImmutableList<Bid> emptylist = new FixedList<>(
+			Collections.emptyList());
 
 	/**
@@ -176,5 +178,5 @@
 		goal = goal.intersect(getRange(n));
 		if (goal.isEmpty()) {
-			return new FixedList<>();
+			return new FixedList<>(Collections.emptyList());
 		}
 
@@ -220,5 +222,6 @@
 					pbid -> pbid.merge(new Bid(issue, val)), partialbids);
 			if (!fullbids.size().equals(BigInteger.ZERO))
-				fulllist = new JoinedList<Bid>(fullbids, fulllist);
+				fulllist = new JoinedList<Bid>(
+						Arrays.asList(fullbids, fulllist));
 		}
 		return fulllist;
Index: /bidspace/src/main/java/geniusweb/bidspace/PartialSpaceFromUtility.java
===================================================================
--- /bidspace/src/main/java/geniusweb/bidspace/PartialSpaceFromUtility.java	(revision 52)
+++ /bidspace/src/main/java/geniusweb/bidspace/PartialSpaceFromUtility.java	(revision 53)
@@ -3,4 +3,5 @@
 import java.math.BigInteger;
 import java.security.SecureRandom;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -24,21 +25,25 @@
 public class PartialSpaceFromUtility extends DefaultPartialOrdering {
 	public PartialSpaceFromUtility(UtilitySpace space, int nRankings) {
-		super(space.getName() + "_" + nRankings, space.getDomain(), space.getReservationBid(),
-				pickBetter(space, nRankings));
+		super(space.getName() + "_" + nRankings, space.getDomain(),
+				space.getReservationBid(), pickBetter(space, nRankings));
 	}
 
 	/**
-	 * Pick subset of static isbetter rankings. Notice, ShuffledList currently can't
-	 * handle really large lists which also limits this. This has to be fixed.
+	 * Pick subset of static isbetter rankings. Notice, ShuffledList currently
+	 * can't handle really large lists which also limits this. This has to be
+	 * fixed.
 	 * 
 	 * @param space     the space to sample from
-	 * @param nRankings the number of rankings to be placed in the PartialOrdering.
+	 * @param nRankings the number of rankings to be placed in the
+	 *                  PartialOrdering.
 	 * @return a subset creating a partial profile of the geiven UtilitySpace
 	 */
-	private static Map<Bid, Set<Bid>> pickBetter(UtilitySpace space, int nRankings) {
+	private static Map<Bid, Set<Bid>> pickBetter(UtilitySpace space,
+			int nRankings) {
 		Map<Bid, Set<Bid>> eqOrBetter = new HashMap<>();
 
 		AllBidsList allbids = new AllBidsList(space.getDomain());
-		ListWithRemove<Tuple<Bid, Bid>> available = new ListWithRemove<>(new Tuples<Bid, Bid>(allbids, allbids));
+		ListWithRemove<Tuple<Bid, Bid>> available = new ListWithRemove<>(
+				new Tuples<Bid, Bid>(allbids, allbids), Collections.emptySet());
 		for (int n = 0; n < nRankings; n++) {
 			BigInteger sel = rnd(available.size());
@@ -79,6 +84,6 @@
 
 	/**
-	 * Bit simplistic way to generate random in [0,n>. Simplistic because the mod()
-	 * operator that we use causes bias in the random numbers.
+	 * Bit simplistic way to generate random in [0,n>. Simplistic because the
+	 * mod() operator that we use causes bias in the random numbers.
 	 * 
 	 * @param n the maximum value for the random number
Index: /bidspace/src/main/java/geniusweb/bidspace/SumOfGroupsLinAdditiveAdapter.java
===================================================================
--- /bidspace/src/main/java/geniusweb/bidspace/SumOfGroupsLinAdditiveAdapter.java	(revision 53)
+++ /bidspace/src/main/java/geniusweb/bidspace/SumOfGroupsLinAdditiveAdapter.java	(revision 53)
@@ -0,0 +1,337 @@
+package geniusweb.bidspace;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.math.MathContext;
+import java.math.RoundingMode;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import geniusweb.bidspace.pareto.ParetoLinearAdditive;
+import geniusweb.issuevalue.Bid;
+import geniusweb.issuevalue.DiscreteValue;
+import geniusweb.issuevalue.Domain;
+import geniusweb.issuevalue.Value;
+import geniusweb.issuevalue.ValueSet;
+import geniusweb.profile.utilityspace.DiscreteValueSetUtilities;
+import geniusweb.profile.utilityspace.LinearAdditive;
+import geniusweb.profile.utilityspace.LinearAdditiveUtilitySpace;
+import geniusweb.profile.utilityspace.PartsUtilities;
+import geniusweb.profile.utilityspace.ProductOfValue;
+import geniusweb.profile.utilityspace.SumOfGroupsUtilitySpace;
+import geniusweb.profile.utilityspace.ValueSetUtilities;
+import tudelft.utilities.immutablelist.ArrayListSet;
+
+/**
+ * ValueSet with ProductOfValue objects as elements. Otherwise just a
+ * DiscreteValueSet. Storing the ProductOfValues here directly (instead of
+ * strings) makes it easier to map back and forth
+ *
+ */
+class GroupValueSet implements ValueSet {
+
+	/*
+	 * final, must be immutable so do not provide external access to this list.
+	 * ArrayList (instead of List) to help Jackson serializer which avoids
+	 * per-field type annotations.
+	 */
+	private final ArrayListSet<ProductOfValue> values = new ArrayListSet<>();
+
+	public GroupValueSet(Collection<ProductOfValue> issuevalues) {
+		this.values.addAll(issuevalues);
+	}
+
+	public List<ProductOfValue> getValues() {
+		return Collections.unmodifiableList(values);
+	}
+
+	@Override
+	public Boolean contains(Value value) {
+		return values.contains(value);
+	}
+
+	@Override
+	public ProductOfValue get(BigInteger index) {
+		return values.get(index.intValue());
+	}
+
+	@Override
+	public BigInteger size() {
+		return BigInteger.valueOf(values.size());
+	}
+
+	@Override
+	public ProductOfValue get(long index) {
+		return values.get((int) index);
+	}
+
+	@Override
+	public Iterator iterator() {
+		return values.iterator();
+	}
+
+	@Override
+	public String toString() {
+		return values.toString();
+	}
+
+	@Override
+	public int hashCode() {
+		final int prime = 31;
+		int result = 1;
+		result = prime * result + ((values == null) ? 0 : values.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;
+		GroupValueSet other = (GroupValueSet) obj;
+		if (values == null) {
+			if (other.values != null)
+				return false;
+		} else if (!values.equals(other.values))
+			return false;
+		return true;
+	}
+}
+
+/**
+ * As {@link DiscreteValueSetUtilities} but with ProductOfValue instead of Value
+ */
+class GroupValueSetUtilities implements ValueSetUtilities {
+	private final Map<ProductOfValue, BigDecimal> valueUtilities = new HashMap<>();
+
+	public GroupValueSetUtilities(Map<ProductOfValue, BigDecimal> utilities) {
+		valueUtilities.putAll(utilities);
+	}
+
+	@Override
+	public BigDecimal getUtility(Value value) {
+		if (!valueUtilities.containsKey(value)) {
+			return BigDecimal.ZERO;
+		}
+		return valueUtilities.get(value);
+	}
+
+	@Override
+	public String isFitting(ValueSet valueset) {
+		if (!(valueset instanceof GroupValueSet)) {
+			return "The utilities are for a GroupValueSet valueset but the given values are "
+					+ valueset;
+		}
+		GroupValueSet discvalueset = (GroupValueSet) valueset;
+		if (!valueUtilities.keySet()
+				.equals(new HashSet<>(discvalueset.getValues())))
+			return "The values in the set " + valueset
+					+ " do not match the values mapped to utilities "
+					+ valueUtilities.keySet();
+		return null;
+	}
+
+	@Override
+	public String toString() {
+		return valueUtilities.toString();
+	}
+}
+
+/**
+ * Creates a {@link LinearAdditive} profile matching a
+ * {@link SumOfGroupsUtilitySpace}. THe {@link LinearAdditive} can then be used
+ * with tools like {@link ParetoLinearAdditive} or linear parties. Note that
+ * TimeDependentParty and all derivatives use this already and thus seamlessly
+ * support {@link SumOfGroupsUtilitySpace}.
+ * 
+ * <p>
+ * 
+ * The domain, issues values and utilities are all different from the
+ * {@link SumOfGroupsUtilitySpace}. The methods {@link #toLinearBid(Bid)} and
+ * {@link #toGroupBid(Bid)} can be used to convert back and forth. The space is
+ * made such that there is a constant scaling between utilities in the
+ * {@link SumOfGroupsUtilitySpace} and those in the adapted
+ * {@link LinearAdditive} space.
+ * 
+ */
+public class SumOfGroupsLinAdditiveAdapter extends LinearAdditiveUtilitySpace {
+
+	/*
+	 * special character, used as separator char in constructed issue names.
+	 * Must not be used in any original issue names. can be a non-printable
+	 * char, as this class does not serialize but for debugging it's nice to get
+	 * something readable
+	 */
+	private final static String SEP = "~";
+	private final static MathContext mc = new MathContext(10,
+			RoundingMode.DOWN);
+	private static final DiscreteValue WCVALUE = new DiscreteValue("C");
+	private static final ProductOfValue WC = new ProductOfValue(
+			Arrays.asList(WCVALUE));
+	private static final ValueSet WEIGHTCORRECTION = new GroupValueSet(
+			Collections.singletonList(WC));
+	private static final Map<ProductOfValue, BigDecimal> WEIGHTCORRUTIL = Collections
+			.singletonMap(WC, BigDecimal.ZERO);
+
+	private final SumOfGroupsUtilitySpace groupspace;
+
+	/**
+	 * Basically LinearAdditive constructor plus the original group space. Use
+	 * {@link #create(SumOfGroupsUtilitySpace)} to create a
+	 * {@link SumOfGroupsLinAdditiveAdapter}
+	 */
+	private SumOfGroupsLinAdditiveAdapter(SumOfGroupsUtilitySpace groupspace,
+			LinearAdditiveUtilitySpace lin) {
+		super(lin.getDomain(), groupspace.getName(), lin.getUtilities(),
+				lin.getWeights(), lin.getReservationBid());
+		this.groupspace = groupspace;
+	}
+
+	public static SumOfGroupsLinAdditiveAdapter create(
+			SumOfGroupsUtilitySpace groupspace) {
+		checkSpecialCharacter(groupspace);
+
+		final HashMap<String, ValueSetUtilities> linIssueUtilities = new HashMap<>();
+		final HashMap<String, BigDecimal> weights = new HashMap<>();
+		final Map<String, ValueSet> issueValues = new HashMap<>();
+		final BigDecimal SIZE = BigDecimal
+				.valueOf(groupspace.getPartsUtilities().size());
+		final BigDecimal weight = BigDecimal.ONE.divide(SIZE, mc);
+
+		// compute the joned-issue-names, values and utility maps
+		for (final PartsUtilities part : groupspace.getPartsUtilities()
+				.values()) {
+
+			// part is a group, containing a set of issues and
+			// ProductOfValue for every possible combination.
+			final String joinedissue = String.join(SEP, part.getIssues());
+			weights.put(joinedissue, weight);
+
+			issueValues.put(joinedissue,
+					new GroupValueSet(part.getUtilities().keySet()));
+			linIssueUtilities.put(joinedissue,
+					new GroupValueSetUtilities(part.getUtilities()));
+
+		}
+
+		// weight correction. Add issue with name SEP filling the remainder
+		issueValues.put(SEP, WEIGHTCORRECTION);
+		linIssueUtilities.put(SEP, new GroupValueSetUtilities(WEIGHTCORRUTIL));
+		weights.put(SEP, BigDecimal.ONE.subtract(weight.multiply(SIZE)));
+
+		final Domain lindomain = new Domain(groupspace.getDomain().getName(),
+				issueValues);
+		final Bid resbid = toLinearBid(groupspace.getReservationBid(),
+				groupspace);
+		final LinearAdditiveUtilitySpace linspace = new LinearAdditiveUtilitySpace(
+				lindomain, groupspace.getName(), linIssueUtilities, weights,
+				resbid);
+		return new SumOfGroupsLinAdditiveAdapter(groupspace, linspace);
+
+	}
+
+	/**
+	 * Check for occurences of {@link #SEP} in this space.
+	 * 
+	 * @param space2 the space to check
+	 */
+	private static void checkSpecialCharacter(SumOfGroupsUtilitySpace space2) {
+		Domain dom = space2.getDomain();
+		for (String issue : dom.getIssues()) {
+			checkString(issue);
+			for (Value val : dom.getValues(issue)) {
+				if (val instanceof DiscreteValue) {
+					checkString(((DiscreteValue) val).getValue());
+				}
+			}
+		}
+	}
+
+	/**
+	 * check that name does not contain the {@link #SEP} characte to avoid
+	 * problems later. This ensures 1-1 mapping between original names and names
+	 * in converted space.
+	 * 
+	 * @param name the name to check
+	 */
+	private static void checkString(String name) {
+		if (name.contains(SEP))
+			throw new IllegalArgumentException("space should not use  " + name
+					+ " : character '" + SEP + "' is reserved");
+	}
+
+	@Override
+	public String toString() {
+		return "LinearAdditiveAdapter[" + super.toString() + "]";
+	}
+
+	/**
+	 * 
+	 * @param bid
+	 * @param groupspace
+	 * @return bid converted to {@link LinearAdditiveUtilitySpace.
+	 */
+	public static Bid toLinearBid(Bid bid, SumOfGroupsUtilitySpace groupspace) {
+		if (bid == null)
+			return null;
+
+		final Map<String, Value> map = new HashMap<>();
+
+		for (PartsUtilities part : groupspace.getPartsUtilities().values()) {
+			String linissue = String.join(SEP, part.getIssues());
+			List<Value> values = part.getIssues().stream()
+					.map(iss -> bid.getValue(iss)).collect(Collectors.toList());
+			map.put(linissue, new ProductOfValue(values));
+		}
+		return new Bid(map);
+	}
+
+	/**
+	 * 
+	 * @param bid possibly partial {@link Bid} from {@link LinearAdditive} space
+	 * @return a possibly partial Bid in the {@link SumOfGroupsUtilitySpace}.
+	 */
+	public Bid toGroupBid(Bid bid) {
+		if (bid == null)
+			return null;
+
+		final Map<String, Value> allvalues = new HashMap<>();
+
+		for (String linissue : bid.getIssues()) {
+			allvalues.putAll(toGroupValues(linissue,
+					(ProductOfValue) bid.getValue(linissue)));
+		}
+		return new Bid(allvalues);
+	}
+
+	/**
+	 * 
+	 * @param linissue an issue in the {@link LinearAdditive} space
+	 * @param value    a value in the {@link LinearAdditive} space
+	 * @return a map of issue-value pairs in the {@link SumOfGroupsUtilitySpace}
+	 */
+	private Map<String, Value> toGroupValues(String linissue,
+			ProductOfValue value) {
+		if (linissue.equals(SEP))
+			// ignore the weight-balancer issue
+			return Collections.emptyMap();
+
+		final Map<String, Value> values = new HashMap<>();
+		final String[] issues = linissue.split(SEP);
+		for (int n = 0; n < issues.length; n = n + 1) {
+			values.put(issues[n], value.getValues().get(n));
+		}
+
+		return values;
+	}
+}
Index: /bidspace/src/test/java/geniusweb/bidspace/SumOfGroupsLinAdditiveAdapterTest.java
===================================================================
--- /bidspace/src/test/java/geniusweb/bidspace/SumOfGroupsLinAdditiveAdapterTest.java	(revision 53)
+++ /bidspace/src/test/java/geniusweb/bidspace/SumOfGroupsLinAdditiveAdapterTest.java	(revision 53)
@@ -0,0 +1,93 @@
+package geniusweb.bidspace;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+import java.math.BigInteger;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Random;
+
+import org.junit.Test;
+
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import geniusweb.issuevalue.Bid;
+import geniusweb.issuevalue.DiscreteValue;
+import geniusweb.issuevalue.Value;
+import geniusweb.profile.utilityspace.ProductOfValue;
+import geniusweb.profile.utilityspace.SumOfGroupsUtilitySpace;
+
+public class SumOfGroupsLinAdditiveAdapterTest {
+	private final ObjectMapper jackson = new ObjectMapper();
+	private final Random random = new Random();
+	private final SumOfGroupsLinAdditiveAdapter adapter;
+	private final SumOfGroupsUtilitySpace groupspace;
+
+	public SumOfGroupsLinAdditiveAdapterTest()
+			throws JsonParseException, JsonMappingException, IOException {
+		groupspace = jackson.readValue(
+				getClass().getResourceAsStream("/computer/computerbuy.json"),
+				SumOfGroupsUtilitySpace.class);
+		adapter = SumOfGroupsLinAdditiveAdapter.create(groupspace);
+
+	}
+
+	@Test
+	public void smokeTest() {
+		System.out.println("" + adapter);
+	}
+
+	@Test
+	public void checkUtility() throws IOException {
+		AllBidsList bidspace = new AllBidsList(groupspace.getDomain());
+		int NISS = adapter.getDomain().getIssues().size() - 1;
+
+		// compare utility of many random bids
+		for (int n = 0; n < 100; n += 1) {
+			// space is small, do this simple
+
+			int i = random.nextInt(bidspace.size().intValue());
+			// this is bid in the group space.
+			Bid groupbid = bidspace.get(BigInteger.valueOf(i));
+
+			Bid linbid = adapter.toLinearBid(groupbid, groupspace);
+
+			assertEquals(groupspace.getUtility(groupbid).floatValue(),
+					NISS * adapter.getUtility(linbid).floatValue(), 0.000001);
+
+			assertEquals(groupbid, adapter.toGroupBid(linbid));
+		}
+	}
+
+	@Test
+	public void checkReservationBid() {
+		assertEquals(groupspace.getReservationBid(),
+				adapter.toGroupBid(adapter.getReservationBid()));
+	}
+
+	@Test
+	public void testGroupValueSet() {
+		final Value val1 = new DiscreteValue("val1");
+		final ProductOfValue pov = new ProductOfValue(Arrays.asList(val1));
+		final Collection<ProductOfValue> issuevalues = Arrays.asList(pov);
+		final GroupValueSet gvs = new GroupValueSet(issuevalues);
+		final GroupValueSet gvs1 = new GroupValueSet(issuevalues);
+
+		assertEquals(issuevalues, gvs.getValues());
+		assertEquals(BigInteger.ONE, gvs.size());
+		assertEquals(pov, gvs.get(BigInteger.ZERO));
+		assertEquals(pov, gvs.get(0));
+		assertEquals(pov, gvs.iterator().next());
+		assertEquals("[" + pov + "]", gvs.toString());
+
+		// poor man's GenericTests, we can't do GenericTests because that's on a
+		// class level
+		// and we can't make a class level test here.
+		assertEquals(gvs, gvs);
+		assertEquals(gvs1, gvs);
+		assertEquals(gvs.hashCode(), gvs1.hashCode());
+	}
+}
Index: /bidspace/src/test/java/geniusweb/bidspace/pareto/ParetoRandomTest.java
===================================================================
--- /bidspace/src/test/java/geniusweb/bidspace/pareto/ParetoRandomTest.java	(revision 53)
+++ /bidspace/src/test/java/geniusweb/bidspace/pareto/ParetoRandomTest.java	(revision 53)
@@ -0,0 +1,136 @@
+package geniusweb.bidspace.pareto;
+
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.math.stat.descriptive.DescriptiveStatistics;
+import org.junit.Test;
+
+import geniusweb.issuevalue.DiscreteValue;
+import geniusweb.issuevalue.DiscreteValueSet;
+import geniusweb.issuevalue.Domain;
+import geniusweb.issuevalue.ValueSet;
+import geniusweb.profile.utilityspace.DiscreteValueSetUtilities;
+import geniusweb.profile.utilityspace.LinearAdditive;
+import geniusweb.profile.utilityspace.LinearAdditiveUtilitySpace;
+import geniusweb.profile.utilityspace.ValueSetUtilities;
+
+/**
+ * Test pareto on random space.
+ */
+public class ParetoRandomTest {
+
+	private final int DIMENSION = 2; // #participants. 2 is normal bilateral
+										// space
+	private final int NISSUES = 3; // number of issues
+	private final int NVALS = 10; // number values per issue
+	private final int NRUNS = 50; // number of runs (to average result)
+
+	@Test
+	public void checkGenerciPareto() throws IOException {
+
+		DescriptiveStatistics time = new DescriptiveStatistics();
+		DescriptiveStatistics paretopoints = new DescriptiveStatistics();
+
+		for (int run = 0; run < NRUNS; run++) {
+			System.gc(); // free memory before each test run
+			System.out.print(".");
+			long startTime = System.nanoTime();
+			ParetoLinearAdditive pareto = runOneTest();
+			paretopoints.addValue(pareto.getPoints().size());
+
+			double dt = (System.nanoTime() - startTime) / 1000000000d;
+
+			time.addValue(dt);
+		}
+		System.out.println();
+		System.out.println("Results averaged over " + NRUNS + " runs");
+		System.out.println("DIMENSION=" + DIMENSION);
+		System.out.println("NISSUES=" + NISSUES);
+		System.out.println("NVALS=" + NVALS);
+		System.out.println("bidspace=" + Math.pow(NVALS, NISSUES));
+		System.out.println("runtime: " + time.getMean() + "s, stdev="
+				+ time.getStandardDeviation());
+		System.out.println("points on pareto: " + paretopoints.getMean()
+				+ ", stdev=" + paretopoints.getStandardDeviation());
+		System.out.println("{" + DIMENSION + "," + NISSUES + "," + NVALS + ","
+				+ time.getMean() + "," + time.getStandardDeviation() + ","
+				+ paretopoints.getMean() + ","
+				+ paretopoints.getStandardDeviation() + "}");
+	}
+
+	private ParetoLinearAdditive runOneTest() {
+		Domain domain = getRandomDomain();
+
+		List<LinearAdditive> profiles = new LinkedList<>();
+		for (int n = 0; n < DIMENSION; n++) {
+			LinearAdditiveUtilitySpace rspace = getRandomSpace(domain);
+			profiles.add(rspace);
+		}
+		return new ParetoLinearAdditive(profiles);
+
+	}
+
+	private Domain getRandomDomain() {
+		Map<String, ValueSet> issues = new HashMap<>();
+		List<BigDecimal> w = getRandomWeights();
+		for (int iss = 0; iss < NISSUES; iss++) {
+			Collection<DiscreteValue> values = new LinkedList<>();
+			for (int val = 0; val < NVALS; val++) {
+				DiscreteValue v = new DiscreteValue("iss" + iss + "val" + val);
+				values.add(v);
+			}
+			String issuename = "issue" + iss;
+			issues.put(issuename, new DiscreteValueSet(values));
+
+		}
+		return new Domain("dom", issues);
+	}
+
+	/**
+	 * 
+	 * @param domain some domain with discrete issue values
+	 * @return random LA utilspace for this domain
+	 */
+	private LinearAdditiveUtilitySpace getRandomSpace(Domain domain) {
+		List<String> issuelist = new LinkedList(domain.getIssues());
+		Map<String, ValueSetUtilities> utils = new HashMap<>();
+		Map<String, BigDecimal> weights = new HashMap<>();
+		List<BigDecimal> w = getRandomWeights();
+		for (int iss = 0; iss < NISSUES; iss++) {
+			String issuename = issuelist.get(iss);
+			Map<DiscreteValue, BigDecimal> utilsmap = new HashMap<>();
+			for (int val = 0; val < NVALS; val++) {
+				DiscreteValue v = (DiscreteValue) domain.getValues(issuename)
+						.get(val);
+				utilsmap.put(v, BigDecimal.valueOf(Math.random()));
+			}
+			weights.put(issuename, w.get(iss));
+			utils.put(issuename, new DiscreteValueSetUtilities(utilsmap));
+		}
+		return new LinearAdditiveUtilitySpace(domain, "name", utils, weights,
+				null);
+	}
+
+	/**
+	 * 
+	 * @return list of NISSUES BigDecimals, summing to 1
+	 */
+	private List<BigDecimal> getRandomWeights() {
+		List<BigDecimal> doubles = new LinkedList<>();
+		BigDecimal remainder = BigDecimal.ONE;
+		for (int n = 0; n < NISSUES - 1; n++) {
+			BigDecimal next = BigDecimal.valueOf(Math.random() / NISSUES);
+			doubles.add(next);
+			remainder = remainder.subtract(next);
+		}
+		doubles.add(remainder);
+		return doubles;
+	}
+
+}
Index: /bidspace/src/test/resources/computer/computerbuy.json
===================================================================
--- /bidspace/src/test/resources/computer/computerbuy.json	(revision 53)
+++ /bidspace/src/test/resources/computer/computerbuy.json	(revision 53)
@@ -0,0 +1,618 @@
+{
+	"SumOfGroupsUtilitySpace": {
+		"domain": {
+			"name": "computer",
+			"issuesValues": {
+				"box": {
+					"values": [
+						"all-in-one",
+						"small box",
+						"tower"
+					]
+				},
+				"graphics": {
+					"values": [
+						"built-in",
+						"low 8G",
+						"medium 16G",
+						"high 32G"
+					]
+				},
+				"main mem": {
+					"values": [
+						"8GB",
+						"16GB",
+						"32GB",
+						"64GB"
+					]
+				},
+				"SSD": {
+					"values": [
+						"64GB",
+						"1TB",
+						"2TB",
+						"4TB",
+						"8TB"
+					]
+				},
+				"display": {
+					"values": [
+						"24-1K",
+						"27-4K",
+						"32-4K",
+						"27-4K gaming",
+						"34-4K gaming"
+					]
+				},
+				"input": {
+					"values": [
+						"standard keybd,mouse",
+						"wireless keybd,mouse",
+						"gaming keybd,mouse"
+					]
+				},
+				"price": {
+					"values": [
+						"614",
+						"663",
+						"716",
+						"773",
+						"835",
+						"902",
+						"974",
+						"1052",
+						"1136",
+						"1227",
+						"1326",
+						"1432",
+						"1546",
+						"1670",
+						"1803",
+						"1948",
+						"2104",
+						"2272",
+						"2454",
+						"2650",
+						"2862",
+						"3091",
+						"3338",
+						"3605",
+						"3893",
+						"4205",
+						"4541",
+						"4905",
+						"5297"
+					]
+				},
+				"rounding": {
+					"values": [
+						"1"
+					]
+				}
+			}
+		},
+		"name": "computerbuy",
+		"partUtilities": {
+			"boxandgraphics": {
+				"PartsUtilities": {
+					"issues": [
+						"box",
+						"graphics"
+					],
+					"utilslist": [
+						{
+							"values": [
+								"all-in-one",
+								"built-in"
+							],
+							"util": 0.09
+						},
+						{
+							"values": [
+								"all-in-one",
+								"low 8G"
+							],
+							"util": 0
+						},
+						{
+							"values": [
+								"all-in-one",
+								"medium 16G"
+							],
+							"util": 0
+						},
+						{
+							"values": [
+								"all-in-one",
+								"high 32G"
+							],
+							"util": 0
+						},
+						{
+							"values": [
+								"small box",
+								"built-in"
+							],
+							"util": 0.12
+						},
+						{
+							"values": [
+								"small box",
+								"low 8G"
+							],
+							"util": 0.15
+						},
+						{
+							"values": [
+								"small box",
+								"medium 16G"
+							],
+							"util": 0.003
+						},
+						{
+							"values": [
+								"small box",
+								"high 32G"
+							],
+							"util": 0.003
+						},
+						{
+							"values": [
+								"tower",
+								"built-in"
+							],
+							"util": 0.09
+						},
+						{
+							"values": [
+								"tower",
+								"low 8G"
+							],
+							"util": 0.18
+						},
+						{
+							"values": [
+								"tower",
+								"medium 16G"
+							],
+							"util": 0.24
+						},
+						{
+							"values": [
+								"tower",
+								"high 32G"
+							],
+							"util": 0.003
+						}
+					]
+				}
+			},
+			"display": {
+				"PartsUtilities": {
+					"issues": [
+						"display"
+					],
+					"utilslist": [
+						{
+							"values": [
+								"24-1K"
+							],
+							"util": 0.08
+						},
+						{
+							"values": [
+								"27-4K"
+							],
+							"util": 0.12
+						},
+						{
+							"values": [
+								"32-4K"
+							],
+							"util": 0.18
+						},
+						{
+							"values": [
+								"27-4K gaming"
+							],
+							"util": 0.18
+						},
+						{
+							"values": [
+								"34-4K gaming"
+							],
+							"util": 0.2
+						}
+					]
+				}
+			},
+			"input": {
+				"PartsUtilities": {
+					"issues": [
+						"input"
+					],
+					"utilslist": [
+						{
+							"values": [
+								"standard keybd,mouse"
+							],
+							"util": 0.04
+						},
+						{
+							"values": [
+								"wireless keybd,mouse"
+							],
+							"util": 0.06
+						},
+						{
+							"values": [
+								"gaming keybd,mouse"
+							],
+							"util": 0.09
+						}
+					]
+				}
+			},
+			"rounding": {
+				"PartsUtilities": {
+					"issues": [
+						"rounding"
+					],
+					"utilslist": [
+						{
+							"values": [
+								"1"
+							],
+							"util": 0.0
+						}
+					]
+				}
+			},
+			"memory": {
+				"PartsUtilities": {
+					"issues": [
+						"main mem",
+						"SSD"
+					],
+					"utilslist": [
+						{
+							"values": [
+								"8GB",
+								"64GB"
+							],
+							"util": 0.005
+						},
+						{
+							"values": [
+								"16GB",
+								"64GB"
+							],
+							"util": 0.01
+						},
+						{
+							"values": [
+								"32GB",
+								"64GB"
+							],
+							"util": 0.01
+						},
+						{
+							"values": [
+								"64GB",
+								"64GB"
+							],
+							"util": 0.01
+						},
+						{
+							"values": [
+								"8GB",
+								"1TB"
+							],
+							"util": 0.015
+						},
+						{
+							"values": [
+								"16GB",
+								"1TB"
+							],
+							"util": 0.02
+						},
+						{
+							"values": [
+								"32GB",
+								"1TB"
+							],
+							"util": 0.02
+						},
+						{
+							"values": [
+								"64GB",
+								"1TB"
+							],
+							"util": 0.02
+						},
+						{
+							"values": [
+								"8GB",
+								"2TB"
+							],
+							"util": 0.03
+						},
+						{
+							"values": [
+								"16GB",
+								"2TB"
+							],
+							"util": 0.04
+						},
+						{
+							"values": [
+								"32GB",
+								"2TB"
+							],
+							"util": 0.04
+						},
+						{
+							"values": [
+								"64GB",
+								"2TB"
+							],
+							"util": 0.04
+						},
+						{
+							"values": [
+								"8GB",
+								"4TB"
+							],
+							"util": 0.04
+						},
+						{
+							"values": [
+								"16GB",
+								"4TB"
+							],
+							"util": 0.05
+						},
+						{
+							"values": [
+								"32GB",
+								"4TB"
+							],
+							"util": 0.07
+						},
+						{
+							"values": [
+								"64GB",
+								"4TB"
+							],
+							"util": 0.09
+						},
+						{
+							"values": [
+								"8GB",
+								"8TB"
+							],
+							"util": 0.06
+						},
+						{
+							"values": [
+								"16GB",
+								"8TB"
+							],
+							"util": 0.07
+						},
+						{
+							"values": [
+								"32GB",
+								"8TB"
+							],
+							"util": 0.08
+						},
+						{
+							"values": [
+								"64GB",
+								"8TB"
+							],
+							"util": 0.10
+						}
+					]
+				}
+			},
+			"price": {
+				"PartsUtilities": {
+					"issues": [
+						"price"
+					],
+					"utilslist": [
+						{
+							"values": [
+								"614"
+							],
+							"util": 0.3
+						},
+						{
+							"values": [
+								"663"
+							],
+							"util": 0.29
+						},
+						{
+							"values": [
+								"716"
+							],
+							"util": 0.28
+						},
+						{
+							"values": [
+								"773"
+							],
+							"util": 0.27
+						},
+						{
+							"values": [
+								"835"
+							],
+							"util": 0.26
+						},
+						{
+							"values": [
+								"902"
+							],
+							"util": 0.25
+						},
+						{
+							"values": [
+								"974"
+							],
+							"util": 0.24
+						},
+						{
+							"values": [
+								"1052"
+							],
+							"util": 0.23
+						},
+						{
+							"values": [
+								"1136"
+							],
+							"util": 0.22
+						},
+						{
+							"values": [
+								"1227"
+							],
+							"util": 0.21
+						},
+						{
+							"values": [
+								"1326"
+							],
+							"util": 0.2
+						},
+						{
+							"values": [
+								"1432"
+							],
+							"util": 0.19
+						},
+						{
+							"values": [
+								"1546"
+							],
+							"util": 0.18
+						},
+						{
+							"values": [
+								"1670"
+							],
+							"util": 0.17
+						},
+						{
+							"values": [
+								"1803"
+							],
+							"util": 0.16
+						},
+						{
+							"values": [
+								"1948"
+							],
+							"util": 0.15
+						},
+						{
+							"values": [
+								"2104"
+							],
+							"util": 0.14
+						},
+						{
+							"values": [
+								"2272"
+							],
+							"util": 0.13
+						},
+						{
+							"values": [
+								"2454"
+							],
+							"util": 0.12
+						},
+						{
+							"values": [
+								"2650"
+							],
+							"util": 0.11
+						},
+						{
+							"values": [
+								"2862"
+							],
+							"util": 0.1
+						},
+						{
+							"values": [
+								"3091"
+							],
+							"util": 0.09
+						},
+						{
+							"values": [
+								"3338"
+							],
+							"util": 0.08
+						},
+						{
+							"values": [
+								"3605"
+							],
+							"util": 0.07
+						},
+						{
+							"values": [
+								"3893"
+							],
+							"util": 0.06
+						},
+						{
+							"values": [
+								"4205"
+							],
+							"util": 0.05
+						},
+						{
+							"values": [
+								"4541"
+							],
+							"util": 0.04
+						},
+						{
+							"values": [
+								"4905"
+							],
+							"util": 0.03
+						},
+						{
+							"values": [
+								"5297"
+							],
+							"util": 0.02
+						}
+					]
+				}
+			}
+		},
+		"reservationBid": {
+			"issuevalues": {
+				"box": "small box",
+				"graphics": "low 8G",
+				"main mem": "8GB",
+				"SSD": "1TB",
+				"display": "32-4K",
+				"input": "gaming keybd,mouse",
+				"price": "1432",
+				"rounding":"1"
+			}
+		}
+	}
+}
Index: /boa/pom.xml
===================================================================
--- /boa/pom.xml	(revision 52)
+++ /boa/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb</groupId>
 	<artifactId>boa</artifactId>
-	<version>2.1.6</version>
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
Index: /collectparties.sh
===================================================================
--- /collectparties.sh	(revision 52)
+++ /collectparties.sh	(revision 53)
@@ -7,5 +7,5 @@
 rm -rf collectedparties
 mkdir collectedparties
-VERSION=2.1.6
+VERSION=2.2.1
 
 cp "exampleparties/anac2019/agentgg/target/agentgg-${VERSION}-jar-with-dependencies.jar" collectedparties
Index: /domaineditor/pom.xml
===================================================================
--- /domaineditor/pom.xml	(revision 52)
+++ /domaineditor/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb</groupId>
 	<artifactId>domaineditor</artifactId>
-	<version>2.1.6</version>
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
@@ -53,15 +53,15 @@
 			<groupId>tudelft.utilities</groupId>
 			<artifactId>utilities</artifactId>
-			<version>1.2.1</version>
+			<version>1.3.1</version>
 		</dependency>
 		<dependency>
 			<groupId>tudelft.utilities</groupId>
 			<artifactId>logging</artifactId>
-			<version>1.0.1</version>
+			<version>1.0.2</version>
 		</dependency>
 		<dependency>
 			<groupId>tudelft.utilities</groupId>
 			<artifactId>mvc</artifactId>
-			<version>1.1.0</version>
+			<version>2.0.5</version>
 		</dependency>
 
Index: /domaineditor/src/main/java/geniusweb/domaineditor/ProfileEditor.java
===================================================================
--- /domaineditor/src/main/java/geniusweb/domaineditor/ProfileEditor.java	(revision 52)
+++ /domaineditor/src/main/java/geniusweb/domaineditor/ProfileEditor.java	(revision 53)
@@ -15,4 +15,6 @@
 import geniusweb.domaineditor.panels.profile.ProfileEditorPanel;
 import tudelft.utilities.logging.Reporter;
+import tudelft.utilities.mvc.model.ModelTime;
+import tudelft.utilities.mvc.model.NoModelTime;
 import tudelft.utilities.mvc.panels.PopupReporter;
 
@@ -24,4 +26,6 @@
 @SuppressWarnings("serial")
 public class ProfileEditor extends JFrame {
+	public static ModelTime TIME = new NoModelTime();
+
 	private final Reporter log;
 	private final LinearAdditiveUtilitySpaceModel model;
Index: /domaineditor/src/main/java/geniusweb/domaineditor/model/BidModel.java
===================================================================
--- /domaineditor/src/main/java/geniusweb/domaineditor/model/BidModel.java	(revision 52)
+++ /domaineditor/src/main/java/geniusweb/domaineditor/model/BidModel.java	(revision 53)
@@ -7,9 +7,11 @@
 import java.util.logging.Level;
 
+import geniusweb.domaineditor.ProfileEditor;
 import geniusweb.issuevalue.Bid;
 import geniusweb.issuevalue.DiscreteValue;
 import geniusweb.issuevalue.NumberValue;
 import geniusweb.issuevalue.Value;
-import tudelft.utilities.listener.DefaultListenable;
+import tudelft.utilities.listener.DefaultThrowingListenable;
+import tudelft.utilities.listener.Unacceptable;
 import tudelft.utilities.logging.Reporter;
 import tudelft.utilities.mvc.model.BasicModel;
@@ -18,7 +20,8 @@
 import tudelft.utilities.mvc.model.MapFromKeys;
 import tudelft.utilities.mvc.model.MapModel;
+import tudelft.utilities.mvc.model.Model;
+import tudelft.utilities.mvc.model.ModelTime;
 import tudelft.utilities.mvc.model.SelectionModel;
 import tudelft.utilities.mvc.model.StringModel;
-import tudelft.utilities.mvc.model.TypedModel;
 import tudelft.utilities.mvc.model.events.Added;
 import tudelft.utilities.mvc.model.events.Changed;
@@ -38,6 +41,6 @@
  *
  */
-public class BidModel extends DefaultListenable<Event> implements
-		MapModel<StringModel, SelectionModel<BasicModel>>, TypedModel<Bid> {
+public class BidModel extends DefaultThrowingListenable<Event>
+		implements MapModel<StringModel, SelectionModel<BasicModel>>, Model {
 	private final MapModel<StringModel, ValueSetModel> issuevalues;
 	private final Map<StringModel, SelectionModel<BasicModel>> selections = new HashMap<>();
@@ -66,17 +69,17 @@
 
 	private void add(StringModel key, ListModel value) {
-		selections.put(key, new DefaultSelectionModel(value));
+		selections.put(key, new DefaultSelectionModel(value, log, true));
 	}
 
 	/**
 	 * Domain change occured. Handle it.
+	 * 
+	 * @throws Unacceptable
 	 */
-	private void handleChange(Event e) {
+	private void handleChange(Event e) throws Unacceptable {
 		// we only handle add/remove of issues. If a value is removed,
 		// this should automatically reflect into the selectionmodel.
-		if (!(e instanceof Changed)) {
-			System.out.println("Unexpected event " + e);
-			return;
-		}
+		if (!(e instanceof Changed))
+			throw new Unacceptable("Unexpected event " + e);
 		e = e.getChildEvent();
 		if (e instanceof Removed) {
@@ -101,5 +104,4 @@
 	}
 
-	@Override
 	public void remove(StringModel key) {
 		throw new UnsupportedOperationException();
@@ -121,5 +123,4 @@
 	}
 
-	@Override
 	public Bid getCurrentValue() throws IllegalStateException {
 		Map<String, Value> selectionmap = new HashMap<>();
@@ -134,5 +135,4 @@
 	}
 
-	@Override
 	public void setCurrentValue(Bid bid) throws IllegalArgumentException {
 		ListModel<StringModel> issues = issuevalues.getKeys();
@@ -186,3 +186,8 @@
 	}
 
+	@Override
+	public ModelTime getTime() {
+		return ProfileEditor.TIME;
+	}
+
 }
Index: /domaineditor/src/main/java/geniusweb/domaineditor/model/DiscreteValueSetModel.java
===================================================================
--- /domaineditor/src/main/java/geniusweb/domaineditor/model/DiscreteValueSetModel.java	(revision 52)
+++ /domaineditor/src/main/java/geniusweb/domaineditor/model/DiscreteValueSetModel.java	(revision 53)
@@ -7,4 +7,5 @@
 import java.util.logging.Level;
 
+import geniusweb.domaineditor.ProfileEditor;
 import geniusweb.issuevalue.DiscreteValue;
 import geniusweb.issuevalue.DiscreteValueSet;
@@ -25,9 +26,10 @@
 
 	public DiscreteValueSetModel(List<StringModel> values, Reporter log) {
-		super(values, log);
+		super(values, log, ProfileEditor.TIME);
 	}
 
 	public DiscreteValueSetModel(Reporter log) {
-		super(Arrays.asList(new StringModel("value", log)), log);
+		super(Arrays.asList(new StringModel("value", log, ProfileEditor.TIME)),
+				log, ProfileEditor.TIME);
 	}
 
@@ -78,5 +80,5 @@
 		// first add the new vals because minimum size.
 		for (DiscreteValue val : valset.getValues()) {
-			add(new StringModel(val.getValue(), log));
+			add(new StringModel(val.getValue(), log, ProfileEditor.TIME));
 		}
 		for (StringModel old : oldvals) {
Index: /domaineditor/src/main/java/geniusweb/domaineditor/model/DomainModel.java
===================================================================
--- /domaineditor/src/main/java/geniusweb/domaineditor/model/DomainModel.java	(revision 52)
+++ /domaineditor/src/main/java/geniusweb/domaineditor/model/DomainModel.java	(revision 53)
@@ -16,11 +16,11 @@
 import geniusweb.issuevalue.Domain;
 import geniusweb.issuevalue.ValueSet;
-import tudelft.utilities.listener.DefaultListenable;
+import tudelft.utilities.listener.DefaultThrowingListenable;
 import tudelft.utilities.logging.Reporter;
 import tudelft.utilities.mvc.model.DefaultMapModel;
 import tudelft.utilities.mvc.model.MapModel;
 import tudelft.utilities.mvc.model.Model;
+import tudelft.utilities.mvc.model.ModelTime;
 import tudelft.utilities.mvc.model.StringModel;
-import tudelft.utilities.mvc.model.TypedModel;
 import tudelft.utilities.mvc.model.events.Changed;
 import tudelft.utilities.mvc.model.events.Event;
@@ -33,6 +33,6 @@
  *
  */
-public class DomainModel extends DefaultListenable<Event>
-		implements TypedModel<Domain> {
+public class DomainModel extends DefaultThrowingListenable<Event>
+		implements Model { // model<Domain>
 	private static final ObjectMapper jackson = new ObjectMapper();
 	private final StringModel domainname;
@@ -57,7 +57,9 @@
 		this(new SimpleStringModel("domainname", log),
 				new DefaultMapModel<StringModel, ValueSetModel>(
-						Collections.singletonMap(new StringModel("issue", log),
+						Collections.singletonMap(
+								new StringModel("issue", log,
+										ProfileEditor.TIME),
 								new DiscreteValueSetModel(log)),
-						log) {
+						log, ProfileEditor.TIME) {
 					@Override
 					public int getMinimumSize() {
@@ -88,6 +90,7 @@
 		Domain domain = jackson.readValue(file, Domain.class);
 		// FIXME
-		return new DomainModel(new StringModel(domain.getName(), log), null,
-				log);
+		return new DomainModel(
+				new StringModel(domain.getName(), log, ProfileEditor.TIME),
+				null, log);
 	}
 
@@ -112,5 +115,4 @@
 	 * @return the {@link Domain} contained in this model.
 	 */
-	@Override
 	public Domain getCurrentValue() throws IllegalStateException {
 		Map<String, ValueSet> issues = new HashMap<>();
@@ -131,5 +133,4 @@
 	 *            {@link Model}s are created where needed.
 	 */
-	@Override
 	public void setCurrentValue(Domain dom) throws IllegalArgumentException {
 		domainname.setValue(dom.getName());
@@ -145,9 +146,15 @@
 					ValueSetModelType.fromModel(dom.getValues(iss)), log);
 			valsetmodel.setCurrentValue(dom.getValues(iss));
-			issuesmodel.put(new StringModel(iss, log), valsetmodel);
+			issuesmodel.put(new StringModel(iss, log, ProfileEditor.TIME),
+					valsetmodel);
 		}
 		// remove the old issues
 		for (StringModel iss : oldissues)
-			issuesmodel.remove(iss);
+			issuesmodel.getKeys().remove(iss);
+	}
+
+	@Override
+	public ModelTime getTime() {
+		return ProfileEditor.TIME;
 	}
 }
Index: /domaineditor/src/main/java/geniusweb/domaineditor/model/NumberValueSetModel.java
===================================================================
--- /domaineditor/src/main/java/geniusweb/domaineditor/model/NumberValueSetModel.java	(revision 52)
+++ /domaineditor/src/main/java/geniusweb/domaineditor/model/NumberValueSetModel.java	(revision 53)
@@ -5,11 +5,14 @@
 import java.util.Map;
 
+import geniusweb.domaineditor.ProfileEditor;
 import geniusweb.issuevalue.NumberValueSet;
 import geniusweb.issuevalue.ValueSet;
 import tudelft.utilities.immutablelist.Range;
-import tudelft.utilities.listener.DefaultListenable;
+import tudelft.utilities.listener.DefaultThrowingListenable;
+import tudelft.utilities.listener.Unacceptable;
 import tudelft.utilities.logging.Reporter;
 import tudelft.utilities.mvc.model.BasicModel;
 import tudelft.utilities.mvc.model.ListModel;
+import tudelft.utilities.mvc.model.ModelTime;
 import tudelft.utilities.mvc.model.NumberModel;
 import tudelft.utilities.mvc.model.events.Changed;
@@ -20,5 +23,5 @@
  *
  */
-public class NumberValueSetModel extends DefaultListenable<Event>
+public class NumberValueSetModel extends DefaultThrowingListenable<Event>
 		implements ValueSetModel {
 
@@ -27,5 +30,5 @@
 
 	public NumberValueSetModel(NumberModel lowv, NumberModel highv,
-			NumberModel stepv, Reporter log) {
+			NumberModel stepv, Reporter log) throws Unacceptable {
 		this.low = lowv;
 		this.high = highv;
@@ -41,9 +44,9 @@
 	}
 
-	private void check() throws IllegalStateException {
+	private void check() throws Unacceptable {
 		if (low.getValue().compareTo(high.getValue()) > 0)
-			throw new IllegalStateException("low must be <= high");
+			throw new Unacceptable("low must be <= high");
 		if (step.getValue().compareTo(BigDecimal.ZERO) <= 0)
-			throw new IllegalStateException("step must be >0");
+			throw new Unacceptable("step must be >0");
 		notifyListeners(new Changed(this, null));
 	}
@@ -51,9 +54,11 @@
 	/*
 	 * Default, bit arbitrary values.
+	 * 
+	 * @throws something that should never happen
 	 */
-	public NumberValueSetModel(Reporter log) {
-		this(new NumberModel(BigDecimal.ZERO, log),
-				new NumberModel(BigDecimal.TEN, log),
-				new NumberModel(BigDecimal.ONE, log), log);
+	public NumberValueSetModel(Reporter log) throws Unacceptable {
+		this(new NumberModel(BigDecimal.ZERO, log, ProfileEditor.TIME),
+				new NumberModel(BigDecimal.TEN, log, ProfileEditor.TIME),
+				new NumberModel(BigDecimal.ONE, log, ProfileEditor.TIME), log);
 	}
 
@@ -116,4 +121,9 @@
 	}
 
+	@Override
+	public ModelTime getTime() {
+		return ProfileEditor.TIME;
+	}
+
 }
 
@@ -122,5 +132,5 @@
  *
  */
-class MyListModel extends DefaultListenable<Event>
+class MyListModel extends DefaultThrowingListenable<Event>
 		implements ListModel<NumberModel> {
 
@@ -143,5 +153,6 @@
 		BigDecimal val = numvalset.getCurrentValue().getRange().get(n);
 		if (!itemsCache.containsKey(val))
-			itemsCache.put(val, new NumberModel(val, numvalset.log));
+			itemsCache.put(val,
+					new NumberModel(val, numvalset.log, ProfileEditor.TIME));
 		return itemsCache.get(val);
 	}
@@ -168,3 +179,8 @@
 	}
 
+	@Override
+	public ModelTime getTime() {
+		return ProfileEditor.TIME;
+	}
+
 }
Index: /domaineditor/src/main/java/geniusweb/domaineditor/model/SimpleStringModel.java
===================================================================
--- /domaineditor/src/main/java/geniusweb/domaineditor/model/SimpleStringModel.java	(revision 52)
+++ /domaineditor/src/main/java/geniusweb/domaineditor/model/SimpleStringModel.java	(revision 53)
@@ -1,4 +1,6 @@
 package geniusweb.domaineditor.model;
 
+import geniusweb.domaineditor.ProfileEditor;
+import tudelft.utilities.listener.Unacceptable;
 import tudelft.utilities.logging.Reporter;
 import tudelft.utilities.mvc.model.StringModel;
@@ -10,11 +12,11 @@
 
 	public SimpleStringModel(String val, Reporter log) {
-		super(val, log);
+		super(val, log, ProfileEditor.TIME);
 	}
 
 	@Override
-	protected void check() throws IllegalStateException {
+	protected void check() throws Unacceptable {
 		if (!(getValue().matches("[a-zA-Z0-9]+")))
-			throw new IllegalStateException(
+			throw new Unacceptable(
 					"Only lower and upper case letters and numbers are allowed");
 		super.check();
Index: /domaineditor/src/main/java/geniusweb/domaineditor/model/ValueSetModel.java
===================================================================
--- /domaineditor/src/main/java/geniusweb/domaineditor/model/ValueSetModel.java	(revision 52)
+++ /domaineditor/src/main/java/geniusweb/domaineditor/model/ValueSetModel.java	(revision 53)
@@ -4,5 +4,5 @@
 import tudelft.utilities.mvc.model.BasicModel;
 import tudelft.utilities.mvc.model.ListModel;
-import tudelft.utilities.mvc.model.TypedModel;
+import tudelft.utilities.mvc.model.Model;
 
 /**
@@ -11,5 +11,5 @@
  *
  */
-public interface ValueSetModel extends TypedModel<ValueSet> {
+public interface ValueSetModel extends Model {
 	/**
 	 * 
@@ -25,3 +25,28 @@
 	public ListModel<? extends BasicModel> getList();
 
+	/**
+	 * 
+	 * @return the currently contained value in the model. We do NOT specify the
+	 *         type of the returned object because it would have to be a type
+	 *         parameter added to Model, which leads to all kinds of issues with
+	 *         excessive parameterization and issues when a class extends eg a
+	 *         MapModel. NOTE: also derived classes like ListModel should not
+	 *         specify that they return {@link List} or so: further subclassing
+	 *         of eg a ListModel might be eg a ValueSet which would not return a
+	 *         List again.
+	 * @throws IllegalStateException if the model is not correctly filled in at
+	 *                               this moment.
+	 */
+	public ValueSet getCurrentValue() throws IllegalStateException;
+
+	/**
+	 * Sets the current value based on the proviced obj
+	 * 
+	 * @param obj the object to load the model with. Mirror of
+	 *            {@link #getCurrentValue()} and the Object is the same type.
+	 * @throws IllegalArgumentException if the object is not the expected object
+	 *                                  type
+	 */
+	public void setCurrentValue(ValueSet obj) throws IllegalArgumentException;
+
 }
Index: /domaineditor/src/main/java/geniusweb/domaineditor/model/ValueSetModelType.java
===================================================================
--- /domaineditor/src/main/java/geniusweb/domaineditor/model/ValueSetModelType.java	(revision 52)
+++ /domaineditor/src/main/java/geniusweb/domaineditor/model/ValueSetModelType.java	(revision 53)
@@ -4,4 +4,5 @@
 import geniusweb.issuevalue.NumberValueSet;
 import geniusweb.issuevalue.ValueSet;
+import tudelft.utilities.listener.Unacceptable;
 import tudelft.utilities.logging.Reporter;
 
@@ -57,5 +58,9 @@
 			return new DiscreteValueSetModel(log);
 		case NUMBER:
-			return new NumberValueSetModel(log);
+			try {
+				return new NumberValueSetModel(log);
+			} catch (Unacceptable e) {
+				throw new RuntimeException(e);// shouldn't happen
+			}
 		}
 		return null; // unreachable code
Index: /domaineditor/src/main/java/geniusweb/domaineditor/model/profile/DiscreteValueSetUtilitiesModel.java
===================================================================
--- /domaineditor/src/main/java/geniusweb/domaineditor/model/profile/DiscreteValueSetUtilitiesModel.java	(revision 52)
+++ /domaineditor/src/main/java/geniusweb/domaineditor/model/profile/DiscreteValueSetUtilitiesModel.java	(revision 53)
@@ -5,12 +5,15 @@
 import java.util.Map;
 
+import geniusweb.domaineditor.ProfileEditor;
 import geniusweb.domaineditor.model.DiscreteValueSetModel;
 import geniusweb.issuevalue.DiscreteValue;
 import geniusweb.profile.utilityspace.DiscreteValueSetUtilities;
 import geniusweb.profile.utilityspace.ValueSetUtilities;
-import tudelft.utilities.listener.DefaultListenable;
+import tudelft.utilities.listener.DefaultThrowingListenable;
+import tudelft.utilities.listener.Unacceptable;
 import tudelft.utilities.logging.Reporter;
 import tudelft.utilities.mvc.model.ListModel;
 import tudelft.utilities.mvc.model.MapModel;
+import tudelft.utilities.mvc.model.ModelTime;
 import tudelft.utilities.mvc.model.NumberModel;
 import tudelft.utilities.mvc.model.RestrictedNumberModel;
@@ -26,7 +29,8 @@
  *
  */
-public class DiscreteValueSetUtilitiesModel extends DefaultListenable<Event>
-		implements MapModel<StringModel, RestrictedNumberModel>,
-		ValueSetUtilitiesModel {
+public class DiscreteValueSetUtilitiesModel
+		extends DefaultThrowingListenable<Event> implements
+		MapModel<StringModel, RestrictedNumberModel>, ValueSetUtilitiesModel {
+
 	private final ListModel<StringModel> values;
 	private final Map<StringModel, RestrictedNumberModel> utilities = new HashMap<>();
@@ -37,7 +41,7 @@
 	private final static Reporter dummylog = new PopupReporter(null);
 	private final static NumberModel LOW = new NumberModel(BigDecimal.ZERO,
-			dummylog);
+			dummylog, ProfileEditor.TIME);
 	private final static NumberModel HIGH = new NumberModel(BigDecimal.ONE,
-			dummylog);
+			dummylog, ProfileEditor.TIME);
 
 	public DiscreteValueSetUtilitiesModel(DiscreteValueSetModel values,
@@ -50,6 +54,10 @@
 	public RestrictedNumberModel getValue(StringModel key) {
 		if (!utilities.containsKey(key)) {
-			utilities.put(key,
-					new RestrictedNumberModel(DEFAULT, LOW, HIGH, log));
+			try {
+				utilities.put(key, new RestrictedNumberModel(DEFAULT, LOW, HIGH,
+						log, ProfileEditor.TIME));
+			} catch (Unacceptable e) {
+				throw new RuntimeException(e);// this should not happen
+			}
 		}
 		return utilities.get(key);
@@ -61,5 +69,4 @@
 	}
 
-	@Override
 	public void remove(StringModel key) {
 		throw new UnsupportedOperationException();
@@ -113,3 +120,8 @@
 	}
 
+	@Override
+	public ModelTime getTime() {
+		return ProfileEditor.TIME;
+	}
+
 }
Index: /domaineditor/src/main/java/geniusweb/domaineditor/model/profile/LinearAdditiveUtilitySpaceModel.java
===================================================================
--- /domaineditor/src/main/java/geniusweb/domaineditor/model/profile/LinearAdditiveUtilitySpaceModel.java	(revision 52)
+++ /domaineditor/src/main/java/geniusweb/domaineditor/model/profile/LinearAdditiveUtilitySpaceModel.java	(revision 53)
@@ -8,4 +8,5 @@
 import java.util.stream.Collectors;
 
+import geniusweb.domaineditor.ProfileEditor;
 import geniusweb.domaineditor.model.BidModel;
 import geniusweb.domaineditor.model.DiscreteValueSetModel;
@@ -16,13 +17,15 @@
 import geniusweb.profile.utilityspace.LinearAdditiveUtilitySpace;
 import geniusweb.profile.utilityspace.ValueSetUtilities;
-import tudelft.utilities.listener.DefaultListenable;
+import tudelft.utilities.listener.DefaultThrowingListenable;
+import tudelft.utilities.listener.Unacceptable;
 import tudelft.utilities.logging.Reporter;
 import tudelft.utilities.mvc.model.ListModel;
 import tudelft.utilities.mvc.model.MapFromKeys;
 import tudelft.utilities.mvc.model.MapModel;
+import tudelft.utilities.mvc.model.Model;
+import tudelft.utilities.mvc.model.ModelTime;
 import tudelft.utilities.mvc.model.NumberModel;
 import tudelft.utilities.mvc.model.RestrictedNumberModel;
 import tudelft.utilities.mvc.model.StringModel;
-import tudelft.utilities.mvc.model.TypedModel;
 import tudelft.utilities.mvc.model.events.Event;
 import tudelft.utilities.mvc.panels.PopupReporter;
@@ -31,6 +34,6 @@
  * Model containing a {@link LinearAdditiveUtilitySpace}
  */
-public class LinearAdditiveUtilitySpaceModel extends DefaultListenable<Event>
-		implements ProfileModel, TypedModel<LinearAdditiveUtilitySpace> {
+public class LinearAdditiveUtilitySpaceModel extends
+		DefaultThrowingListenable<Event> implements ProfileModel, Model { // Model<<LinearAdditiveUtilitySpace>>
 	private final SimpleStringModel name;
 	/**
@@ -87,7 +90,7 @@
 	// we should never allow editing of these constants.
 	protected static final NumberModel CONSTANT0 = new NumberModel(
-			BigDecimal.ZERO, dummylog);
+			BigDecimal.ZERO, dummylog, ProfileEditor.TIME);
 	protected static final NumberModel CONSTANT1 = new NumberModel(
-			BigDecimal.ONE, dummylog);
+			BigDecimal.ONE, dummylog, ProfileEditor.TIME);
 
 	public LinearAdditiveUtilitySpaceModel(DomainModel domain,
@@ -108,10 +111,14 @@
 			final DomainModel domain2, final Reporter log) {
 		return new MapFromKeys<StringModel, RestrictedNumberModel>(
-				domain2.getIssues().getKeys(), log, true) {
+				domain2.getIssues().getKeys(), log, true, ProfileEditor.TIME) {
 
 			@Override
 			public RestrictedNumberModel create(StringModel key) {
-				return new RestrictedNumberModel(N05, CONSTANT0, CONSTANT1,
-						log);
+				try {
+					return new RestrictedNumberModel(N05, CONSTANT0, CONSTANT1,
+							log, ProfileEditor.TIME);
+				} catch (Unacceptable e) {
+					throw new RuntimeException(e); // shouldn't happen
+				}
 			}
 
@@ -129,5 +136,5 @@
 		// different type
 		return new MapFromKeys<StringModel, ValueSetUtilitiesModel>(
-				domain2.getIssues().getKeys(), log, false) {
+				domain2.getIssues().getKeys(), log, false, ProfileEditor.TIME) {
 			@Override
 			public ValueSetUtilitiesModel create(StringModel key) {
@@ -137,6 +144,10 @@
 							(DiscreteValueSetModel) val, log);
 				if (val instanceof NumberValueSetModel)
-					return new NumberValueSetUtilitiesModel(
-							(NumberValueSetModel) val, log);
+					try {
+						return new NumberValueSetUtilitiesModel(
+								(NumberValueSetModel) val, log);
+					} catch (Unacceptable e) {
+						throw new RuntimeException(e); // shouldn't happen
+					}
 				throw new RuntimeException(
 						"Unsupported type " + val + "for key" + key);
@@ -190,5 +201,4 @@
 	}
 
-	@Override
 	public LinearAdditiveUtilitySpace getCurrentValue()
 			throws IllegalStateException {
@@ -212,5 +222,4 @@
 	}
 
-	@Override
 	public void setCurrentValue(LinearAdditiveUtilitySpace obj)
 			throws IllegalArgumentException {
@@ -258,3 +267,8 @@
 	}
 
+	@Override
+	public ModelTime getTime() {
+		return ProfileEditor.TIME;
+	}
+
 }
Index: /domaineditor/src/main/java/geniusweb/domaineditor/model/profile/NumberValueSetUtilitiesModel.java
===================================================================
--- /domaineditor/src/main/java/geniusweb/domaineditor/model/profile/NumberValueSetUtilitiesModel.java	(revision 52)
+++ /domaineditor/src/main/java/geniusweb/domaineditor/model/profile/NumberValueSetUtilitiesModel.java	(revision 53)
@@ -3,9 +3,12 @@
 import java.math.BigDecimal;
 
+import geniusweb.domaineditor.ProfileEditor;
 import geniusweb.domaineditor.model.NumberValueSetModel;
 import geniusweb.profile.utilityspace.NumberValueSetUtilities;
 import geniusweb.profile.utilityspace.ValueSetUtilities;
-import tudelft.utilities.listener.DefaultListenable;
+import tudelft.utilities.listener.DefaultThrowingListenable;
+import tudelft.utilities.listener.Unacceptable;
 import tudelft.utilities.logging.Reporter;
+import tudelft.utilities.mvc.model.ModelTime;
 import tudelft.utilities.mvc.model.NumberModel;
 import tudelft.utilities.mvc.model.RestrictedNumberModel;
@@ -17,6 +20,6 @@
  *
  */
-public class NumberValueSetUtilitiesModel extends DefaultListenable<Event>
-		implements ValueSetUtilitiesModel {
+public class NumberValueSetUtilitiesModel extends
+		DefaultThrowingListenable<Event> implements ValueSetUtilitiesModel {
 
 	private static final BigDecimal DEFAULT = new BigDecimal("0.5");
@@ -25,7 +28,7 @@
 	private final static Reporter dummylog = new PopupReporter(null);
 	private final static NumberModel LOW = new NumberModel(BigDecimal.ZERO,
-			dummylog);
+			dummylog, ProfileEditor.TIME);
 	private final static NumberModel HIGH = new NumberModel(BigDecimal.ONE,
-			dummylog);
+			dummylog, ProfileEditor.TIME);
 	private final NumberModel lowValue;
 	private final RestrictedNumberModel lowUtility;
@@ -49,10 +52,11 @@
 	}
 
-	NumberValueSetUtilitiesModel(NumberValueSetModel valuesmodel,
-			Reporter log) {
+	NumberValueSetUtilitiesModel(NumberValueSetModel valuesmodel, Reporter log)
+			throws Unacceptable {
 		this(valuesmodel.getLow(),
-				new RestrictedNumberModel(DEFAULT, LOW, HIGH, log),
-				valuesmodel.getHigh(),
-				new RestrictedNumberModel(DEFAULT, LOW, HIGH, log));
+				new RestrictedNumberModel(DEFAULT, LOW, HIGH, log,
+						ProfileEditor.TIME),
+				valuesmodel.getHigh(), new RestrictedNumberModel(DEFAULT, LOW,
+						HIGH, log, ProfileEditor.TIME));
 	}
 
@@ -95,3 +99,8 @@
 		highUtility.setValue(utils.getHighUtility());
 	}
+
+	@Override
+	public ModelTime getTime() {
+		return ProfileEditor.TIME;
+	}
 };
Index: /domaineditor/src/main/java/geniusweb/domaineditor/model/profile/ValueSetUtilitiesModel.java
===================================================================
--- /domaineditor/src/main/java/geniusweb/domaineditor/model/profile/ValueSetUtilitiesModel.java	(revision 52)
+++ /domaineditor/src/main/java/geniusweb/domaineditor/model/profile/ValueSetUtilitiesModel.java	(revision 53)
@@ -2,5 +2,5 @@
 
 import geniusweb.profile.utilityspace.ValueSetUtilities;
-import tudelft.utilities.mvc.model.TypedModel;
+import tudelft.utilities.mvc.model.Model;
 
 /**
@@ -8,5 +8,9 @@
  *
  */
-public interface ValueSetUtilitiesModel extends TypedModel<ValueSetUtilities> {
+public interface ValueSetUtilitiesModel extends Model {
+
+	void setCurrentValue(ValueSetUtilities valueSetUtilities);
+
+	ValueSetUtilities getCurrentValue();
 
 }
Index: /domaineditor/src/main/java/geniusweb/domaineditor/panels/DiscreteValueSetPanel.java
===================================================================
--- /domaineditor/src/main/java/geniusweb/domaineditor/panels/DiscreteValueSetPanel.java	(revision 52)
+++ /domaineditor/src/main/java/geniusweb/domaineditor/panels/DiscreteValueSetPanel.java	(revision 53)
@@ -5,4 +5,5 @@
 import javax.swing.JPanel;
 
+import geniusweb.domaineditor.ProfileEditor;
 import geniusweb.domaineditor.model.DiscreteValueSetModel;
 import tudelft.utilities.logging.Reporter;
@@ -24,7 +25,9 @@
 		setLayout(new BorderLayout());
 		add(new EditableListViewPanel(model.getList()) {
+
 			@Override
 			protected void addItem() {
-				model.add(new StringModel("value " + (n++), log));
+				model.add(new StringModel("value " + (n++), log,
+						ProfileEditor.TIME));
 
 			}
Index: /domaineditor/src/main/java/geniusweb/domaineditor/panels/DomainEditorPanel.java
===================================================================
--- /domaineditor/src/main/java/geniusweb/domaineditor/panels/DomainEditorPanel.java	(revision 52)
+++ /domaineditor/src/main/java/geniusweb/domaineditor/panels/DomainEditorPanel.java	(revision 53)
@@ -9,8 +9,10 @@
 import javax.swing.JPanel;
 
+import geniusweb.domaineditor.ProfileEditor;
 import geniusweb.domaineditor.model.DiscreteValueSetModel;
 import geniusweb.domaineditor.model.DomainModel;
 import geniusweb.domaineditor.model.NumberValueSetModel;
 import geniusweb.domaineditor.model.ValueSetModel;
+import tudelft.utilities.listener.Unacceptable;
 import tudelft.utilities.logging.Reporter;
 import tudelft.utilities.mvc.model.MapModel;
@@ -39,6 +41,5 @@
 
 		add(new LabeledPanel("domain name ",
-				new StringPanel(domainmodel.getName())),
-				BorderLayout.NORTH);
+				new StringPanel(domainmodel.getName())), BorderLayout.NORTH);
 		add(new IssuesMapEditor(domainmodel.getIssues(), log),
 				BorderLayout.CENTER);
@@ -82,10 +83,15 @@
 		panel.add(combo, BorderLayout.CENTER);
 		JOptionPane.showMessageDialog(this, panel);
-		StringModel issuename = new StringModel("issue " + (n++), logger);
+		StringModel issuename = new StringModel("issue " + (n++), logger,
+				ProfileEditor.TIME);
 		ValueSetModel valuesetmodel;
 		if (combo.getSelectedItem().equals("discrete"))
 			valuesetmodel = new DiscreteValueSetModel(logger);
 		else
-			valuesetmodel = new NumberValueSetModel(logger);
+			try {
+				valuesetmodel = new NumberValueSetModel(logger);
+			} catch (Unacceptable e) {
+				throw new RuntimeException(e);// shouldn't happen
+			}
 		getModel().put(issuename, valuesetmodel);
 
Index: /domaineditor/src/test/java/geniusweb/domaineditor/DomainEditorPanelTest.java
===================================================================
--- /domaineditor/src/test/java/geniusweb/domaineditor/DomainEditorPanelTest.java	(revision 52)
+++ /domaineditor/src/test/java/geniusweb/domaineditor/DomainEditorPanelTest.java	(revision 53)
@@ -12,5 +12,5 @@
 import geniusweb.domaineditor.model.ValueSetModel;
 import geniusweb.domaineditor.panels.DomainEditorPanel;
-import tudelft.utilities.listener.Listener;
+import tudelft.utilities.listener.ThrowingListener;
 import tudelft.utilities.logging.Reporter;
 import tudelft.utilities.mvc.model.DefaultMapModel;
@@ -28,8 +28,10 @@
 		f.setLayout(new BorderLayout());
 
-		StringModel namemodel = new StringModel("issue1", log);
+		StringModel namemodel = new StringModel("issue1", log,
+				ProfileEditor.TIME);
 		ValueSetModel valuesmmodel = new DiscreteValueSetModel(log);
 		DefaultMapModel<StringModel, ValueSetModel> issuesmodel = new DefaultMapModel<StringModel, ValueSetModel>(
-				Collections.singletonMap(namemodel, valuesmmodel), log) {
+				Collections.singletonMap(namemodel, valuesmmodel), log,
+				ProfileEditor.TIME) {
 
 			@Override
@@ -50,7 +52,8 @@
 
 		};
-		DomainModel model = new DomainModel(new StringModel("testdomain", log),
+		DomainModel model = new DomainModel(
+				new StringModel("testdomain", log, ProfileEditor.TIME),
 				issuesmodel, log);
-		model.addListener(new Listener<Event>() {
+		model.addListener(new ThrowingListener<Event>() {
 
 			@Override
Index: /domaineditor/src/test/java/geniusweb/model/NumberValueSetModelTest.java
===================================================================
--- /domaineditor/src/test/java/geniusweb/model/NumberValueSetModelTest.java	(revision 52)
+++ /domaineditor/src/test/java/geniusweb/model/NumberValueSetModelTest.java	(revision 53)
@@ -11,8 +11,10 @@
 import org.junit.Test;
 
+import geniusweb.domaineditor.ProfileEditor;
 import geniusweb.domaineditor.model.NumberValueSetModel;
 import geniusweb.issuevalue.NumberValueSet;
 import geniusweb.issuevalue.ValueSet;
 import tudelft.utilities.immutablelist.Range;
+import tudelft.utilities.listener.Unacceptable;
 import tudelft.utilities.logging.Reporter;
 import tudelft.utilities.mvc.model.NumberModel;
@@ -22,10 +24,10 @@
 
 	@Test
-	public void smoke() {
+	public void smoke() throws Unacceptable {
 		new NumberValueSetModel(log);
 	}
 
 	@Test
-	public void testSomeGoodValues() {
+	public void testSomeGoodValues() throws Unacceptable {
 		NumberValueSetModel model = new NumberValueSetModel(log);
 		assertEquals(11, model.getList().getSize()); // default is 0...10
@@ -33,4 +35,6 @@
 		assertEquals(9, model.getList().getSize()); // 2..10
 		model.getHigh().setValue(new BigDecimal("3"));
+		assertEquals(2, model.getLow().getValue().intValue());
+		assertEquals(3, model.getHigh().getValue().intValue());
 		assertEquals(2, model.getList().getSize()); // 2..3
 		model.getStep().setValue(new BigDecimal("0.1"));
@@ -38,13 +42,14 @@
 	}
 
-	@Test(expected = IllegalStateException.class)
-	public void testIllegal1() {
-		new NumberValueSetModel(new NumberModel(BigDecimal.TEN, log),
-				new NumberModel(BigDecimal.ONE, log),
-				new NumberModel(BigDecimal.ONE, log), log);
+	@Test(expected = Unacceptable.class)
+	public void testIllegal1() throws Unacceptable {
+		new NumberValueSetModel(
+				new NumberModel(BigDecimal.TEN, log, ProfileEditor.TIME),
+				new NumberModel(BigDecimal.ONE, log, ProfileEditor.TIME),
+				new NumberModel(BigDecimal.ONE, log, ProfileEditor.TIME), log);
 	}
 
 	@Test
-	public void testIllegal12() {
+	public void testIllegal12() throws Unacceptable {
 		NumberValueSetModel n = new NumberValueSetModel(log);
 		// change low above high must log problem
@@ -53,19 +58,19 @@
 	}
 
-	@Test(expected = IllegalStateException.class)
-	public void testIllegal3() {
+	@Test(expected = Unacceptable.class)
+	public void testIllegal3() throws Unacceptable {
 		NumberValueSetModel model = new NumberValueSetModel(
-				new NumberModel(BigDecimal.TEN, log),
-				new NumberModel(BigDecimal.ONE, log),
-				new NumberModel(BigDecimal.ONE, log), log);
+				new NumberModel(BigDecimal.TEN, log, ProfileEditor.TIME),
+				new NumberModel(BigDecimal.ONE, log, ProfileEditor.TIME),
+				new NumberModel(BigDecimal.ONE, log, ProfileEditor.TIME), log);
 		model.getLow().setValue(BigDecimal.valueOf(20));
 	}
 
 	@Test
-	public void testLowIncrease() {
+	public void testLowIncrease() throws Unacceptable {
 		NumberValueSetModel set = new NumberValueSetModel(
-				new NumberModel(BigDecimal.ZERO, log),
-				new NumberModel(BigDecimal.TEN, log),
-				new NumberModel(BigDecimal.ONE, log), log);
+				new NumberModel(BigDecimal.ZERO, log, ProfileEditor.TIME),
+				new NumberModel(BigDecimal.TEN, log, ProfileEditor.TIME),
+				new NumberModel(BigDecimal.ONE, log, ProfileEditor.TIME), log);
 		ValueSet v = new NumberValueSet(
 				new Range(BigDecimal.ONE, BigDecimal.TEN, BigDecimal.ONE));
@@ -75,9 +80,9 @@
 
 	@Test
-	public void testHighDecrease() {
+	public void testHighDecrease() throws Unacceptable {
 		NumberValueSetModel set = new NumberValueSetModel(
-				new NumberModel(BigDecimal.ZERO, log),
-				new NumberModel(BigDecimal.TEN, log),
-				new NumberModel(BigDecimal.ONE, log), log);
+				new NumberModel(BigDecimal.ZERO, log, ProfileEditor.TIME),
+				new NumberModel(BigDecimal.TEN, log, ProfileEditor.TIME),
+				new NumberModel(BigDecimal.ONE, log, ProfileEditor.TIME), log);
 		ValueSet v = new NumberValueSet(
 				new Range(BigDecimal.ZERO, BigDecimal.ONE, BigDecimal.ONE));
@@ -87,9 +92,9 @@
 
 	@Test
-	public void testIncreaseBoth() {
+	public void testIncreaseBoth() throws Unacceptable {
 		NumberValueSetModel set = new NumberValueSetModel(
-				new NumberModel(BigDecimal.ZERO, log),
-				new NumberModel(BigDecimal.ONE, log),
-				new NumberModel(BigDecimal.ONE, log), log);
+				new NumberModel(BigDecimal.ZERO, log, ProfileEditor.TIME),
+				new NumberModel(BigDecimal.ONE, log, ProfileEditor.TIME),
+				new NumberModel(BigDecimal.ONE, log, ProfileEditor.TIME), log);
 		ValueSet v = new NumberValueSet(
 				new Range(BigDecimal.ONE, BigDecimal.TEN, BigDecimal.ONE));
@@ -98,9 +103,9 @@
 
 	@Test
-	public void testIncreaseBothMuch() {
+	public void testIncreaseBothMuch() throws Unacceptable {
 		NumberValueSetModel set = new NumberValueSetModel(
-				new NumberModel(BigDecimal.ZERO, log),
-				new NumberModel(BigDecimal.ONE, log),
-				new NumberModel(BigDecimal.ONE, log), log);
+				new NumberModel(BigDecimal.ZERO, log, ProfileEditor.TIME),
+				new NumberModel(BigDecimal.ONE, log, ProfileEditor.TIME),
+				new NumberModel(BigDecimal.ONE, log, ProfileEditor.TIME), log);
 		ValueSet v = new NumberValueSet(new Range(new BigDecimal("20"),
 				new BigDecimal("80"), BigDecimal.ONE));
@@ -109,9 +114,9 @@
 
 	@Test
-	public void testDecreaseBoth() {
+	public void testDecreaseBoth() throws Unacceptable {
 		NumberValueSetModel set = new NumberValueSetModel(
-				new NumberModel(BigDecimal.ONE, log),
-				new NumberModel(BigDecimal.TEN, log),
-				new NumberModel(BigDecimal.ONE, log), log);
+				new NumberModel(BigDecimal.ONE, log, ProfileEditor.TIME),
+				new NumberModel(BigDecimal.TEN, log, ProfileEditor.TIME),
+				new NumberModel(BigDecimal.ONE, log, ProfileEditor.TIME), log);
 		ValueSet v = new NumberValueSet(
 				new Range(BigDecimal.ZERO, BigDecimal.ONE, BigDecimal.ONE));
@@ -120,9 +125,9 @@
 
 	@Test
-	public void testDecreaseBothMuch() {
+	public void testDecreaseBothMuch() throws Unacceptable {
 		NumberValueSetModel set = new NumberValueSetModel(
-				new NumberModel(new BigDecimal("20"), log),
-				new NumberModel(new BigDecimal("80"), log),
-				new NumberModel(BigDecimal.ONE, log), log);
+				new NumberModel(new BigDecimal("20"), log, ProfileEditor.TIME),
+				new NumberModel(new BigDecimal("80"), log, ProfileEditor.TIME),
+				new NumberModel(BigDecimal.ONE, log, ProfileEditor.TIME), log);
 		ValueSet v = new NumberValueSet(
 				new Range(BigDecimal.ZERO, BigDecimal.ONE, BigDecimal.ONE));
Index: /domaineditor/src/test/java/geniusweb/panels/ComboBoxTest.java
===================================================================
--- /domaineditor/src/test/java/geniusweb/panels/ComboBoxTest.java	(revision 52)
+++ /domaineditor/src/test/java/geniusweb/panels/ComboBoxTest.java	(revision 53)
@@ -14,4 +14,5 @@
 import org.junit.Test;
 
+import geniusweb.domaineditor.ProfileEditor;
 import geniusweb.domaineditor.model.DiscreteValueSetModel;
 import geniusweb.domaineditor.model.DomainModel;
@@ -32,7 +33,7 @@
 	public void GuiTest() throws InterruptedException {
 
-		StringModel a = new StringModel("apples", log);
-		StringModel b = new StringModel("bears", log);
-		StringModel c = new StringModel("carrots", log);
+		StringModel a = new StringModel("apples", log, ProfileEditor.TIME);
+		StringModel b = new StringModel("bears", log, ProfileEditor.TIME);
+		StringModel c = new StringModel("carrots", log, ProfileEditor.TIME);
 
 		JFrame f = new JFrame();
@@ -40,9 +41,7 @@
 		f.getContentPane().add(panel);
 		DefaultListModel<StringModel> model = new DefaultListModel(
-				Arrays.asList(a, b, c), log) {
-
-		};
+				Arrays.asList(a, b, c), log, ProfileEditor.TIME);
 		DefaultSelectionModel<StringModel> selectionmodel1 = new DefaultSelectionModel(
-				model);
+				model, log, true);
 		panel.add(new ComboBox<StringModel>(selectionmodel1),
 				BorderLayout.NORTH);
@@ -60,17 +59,18 @@
 	public void testEqualsDeep() {
 
-		StringModel redvalue = new StringModel("red", log);
-		StringModel greenvalue = new StringModel("green", log);
+		StringModel redvalue = new StringModel("red", log, ProfileEditor.TIME);
+		StringModel greenvalue = new StringModel("green", log,
+				ProfileEditor.TIME);
 		DiscreteValueSetModel issue1values = new DiscreteValueSetModel(
 				Arrays.asList(redvalue, greenvalue), log);
 
-		StringModel issue1 = new StringModel("issue", log);
+		StringModel issue1 = new StringModel("issue", log, ProfileEditor.TIME);
 
-		SelectionModel issue1valuessel = new DefaultSelectionModel(
-				issue1values);
+		SelectionModel issue1valuessel = new DefaultSelectionModel(issue1values,
+				log, true);
 		Map<StringModel, SelectionModel> a = Collections.singletonMap(issue1,
 				issue1valuessel);
 		DefaultMapModel<StringModel, SelectionModel> issuevalues = new DefaultMapModel<StringModel, SelectionModel>(
-				a, log) {
+				a, log, ProfileEditor.TIME) {
 
 			@Override
@@ -92,5 +92,6 @@
 
 		MapModel<StringModel, ValueSetModel> issuevaluesmodel = new DefaultMapModel<StringModel, ValueSetModel>(
-				Collections.singletonMap(issue1, issue1values), log) {
+				Collections.singletonMap(issue1, issue1values), log,
+				ProfileEditor.TIME) {
 
 			@Override
@@ -110,5 +111,6 @@
 
 		};
-		DomainModel domain = new DomainModel(new StringModel("testdomain", log),
+		DomainModel domain = new DomainModel(
+				new StringModel("testdomain", log, ProfileEditor.TIME),
 				issuevaluesmodel, log);
 
Index: /events/pom.xml
===================================================================
--- /events/pom.xml	(revision 52)
+++ /events/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb</groupId>
 	<artifactId>events</artifactId>
-	<version>2.1.6</version>
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
Index: /exampleparties/anac2019/agentgg/pom.xml
===================================================================
--- /exampleparties/anac2019/agentgg/pom.xml	(revision 52)
+++ /exampleparties/anac2019/agentgg/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb.exampleparties.anac2019</groupId>
 	<artifactId>agentgg</artifactId>
-	<version>2.1.6</version>  <!-- equals the geniusweb version -->
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
@@ -60,5 +60,5 @@
 			<groupId>tudelft.utilities</groupId>
 			<artifactId>utilities</artifactId>
-			<version>1.2.1</version>
+			<version>1.3.1</version>
 		</dependency>
 
Index: /exampleparties/anac2019/agentgg/src/test/resources/jobs1partial20.json
===================================================================
--- /exampleparties/anac2019/agentgg/src/test/resources/jobs1partial20.json	(revision 52)
+++ /exampleparties/anac2019/agentgg/src/test/resources/jobs1partial20.json	(revision 53)
@@ -1,1018 +1,1761 @@
 {
-	"DefaultPartialOrdering": {
-		"name": "jobs1-partial-20",
-		"domain": {
-			"name": "jobs",
-			"issuesValues": {
-				"lease car": {
-					"values": [
-						"yes",
-						"no"
-					]
-				},
-				"permanent contract": {
-					"values": [
-						"yes",
-						"no"
-					]
-				},
-				"career development opportunities": {
-					"values": [
-						"low",
-						"medium",
-						"high"
-					]
-				},
-				"fte": {
-					"values": [
-						"0.6",
-						"0.8",
-						"1.0"
-					]
-				},
-				"salary": {
-					"values": [
-						"2000",
-						"2500",
-						"3000",
-						"3500",
-						"4000"
-					]
-				},
-				"work from home": {
-					"values": [
-						"0",
-						"1",
-						"2"
-					]
-				}
-			}
-		},
-		"reservationBid": {
-			"issuevalues": {
-				"lease car": "no",
-				"permanent contract": "no",
-				"career development opportunities": "medium",
-				"fte": "0.8",
-				"salary": "3000",
-				"work from home": "0"
-			}
-		},
-		"bids": [
-			{
-				"issuevalues": {
-					"lease car": "no",
-					"permanent contract": "no",
-					"career development opportunities": "low",
-					"fte": "1.0",
-					"salary": "3000",
-					"work from home": "1"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "yes",
-					"permanent contract": "no",
-					"career development opportunities": "high",
-					"fte": "0.6",
-					"salary": "3500",
-					"work from home": "0"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "no",
-					"permanent contract": "no",
-					"career development opportunities": "high",
-					"fte": "0.8",
-					"salary": "3000",
-					"work from home": "0"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "yes",
-					"permanent contract": "no",
-					"career development opportunities": "low",
-					"fte": "0.6",
-					"salary": "3500",
-					"work from home": "0"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "no",
-					"permanent contract": "yes",
-					"career development opportunities": "low",
-					"fte": "0.6",
-					"salary": "3000",
-					"work from home": "1"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "yes",
-					"permanent contract": "yes",
-					"career development opportunities": "low",
-					"fte": "1.0",
-					"salary": "2000",
-					"work from home": "2"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "no",
-					"permanent contract": "yes",
-					"career development opportunities": "low",
-					"fte": "0.8",
-					"salary": "2500",
-					"work from home": "1"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "no",
-					"permanent contract": "yes",
-					"career development opportunities": "low",
-					"fte": "0.6",
-					"salary": "2000",
-					"work from home": "2"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "yes",
-					"permanent contract": "no",
-					"career development opportunities": "medium",
-					"fte": "0.6",
-					"salary": "3500",
-					"work from home": "1"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "yes",
-					"permanent contract": "yes",
-					"career development opportunities": "low",
-					"fte": "0.6",
-					"salary": "2000",
-					"work from home": "2"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "yes",
-					"permanent contract": "yes",
-					"career development opportunities": "medium",
-					"fte": "0.6",
-					"salary": "2000",
-					"work from home": "0"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "yes",
-					"permanent contract": "yes",
-					"career development opportunities": "medium",
-					"fte": "0.8",
-					"salary": "3500",
-					"work from home": "2"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "no",
-					"permanent contract": "no",
-					"career development opportunities": "low",
-					"fte": "0.6",
-					"salary": "2000",
-					"work from home": "0"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "no",
-					"permanent contract": "no",
-					"career development opportunities": "high",
-					"fte": "1.0",
-					"salary": "4000",
-					"work from home": "2"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "yes",
-					"permanent contract": "yes",
-					"career development opportunities": "low",
-					"fte": "0.8",
-					"salary": "4000",
-					"work from home": "2"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "yes",
-					"permanent contract": "no",
-					"career development opportunities": "medium",
-					"fte": "1.0",
-					"salary": "3500",
-					"work from home": "2"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "no",
-					"permanent contract": "yes",
-					"career development opportunities": "high",
-					"fte": "0.8",
-					"salary": "2000",
-					"work from home": "1"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "yes",
-					"permanent contract": "yes",
-					"career development opportunities": "low",
-					"fte": "1.0",
-					"salary": "2500",
-					"work from home": "1"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "yes",
-					"permanent contract": "yes",
-					"career development opportunities": "high",
-					"fte": "1.0",
-					"salary": "4000",
-					"work from home": "2"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "no",
-					"permanent contract": "yes",
-					"career development opportunities": "medium",
-					"fte": "0.8",
-					"salary": "2500",
-					"work from home": "1"
-				}
-			}
-		],
-		"better": [
-			[
-				0,
-				12
-			],
-			[
-				0,
-				2
-			],
-			[
-				0,
-				3
-			],
-			[
-				0,
-				7
-			],
-			[
-				0,
-				10
-			],
-			[
-				1,
-				0
-			],
-			[
-				1,
-				12
-			],
-			[
-				1,
-				2
-			],
-			[
-				1,
-				3
-			],
-			[
-				1,
-				4
-			],
-			[
-				1,
-				7
-			],
-			[
-				1,
-				10
-			],
-			[
-				2,
-				12
-			],
-			[
-				3,
-				12
-			],
-			[
-				3,
-				2
-			],
-			[
-				3,
-				7
-			],
-			[
-				4,
-				12
-			],
-			[
-				4,
-				2
-			],
-			[
-				4,
-				3
-			],
-			[
-				4,
-				7
-			],
-			[
-				4,
-				10
-			],
-			[
-				5,
-				0
-			],
-			[
-				5,
-				1
-			],
-			[
-				5,
-				2
-			],
-			[
-				5,
-				3
-			],
-			[
-				5,
-				4
-			],
-			[
-				5,
-				6
-			],
-			[
-				5,
-				7
-			],
-			[
-				5,
-				8
-			],
-			[
-				5,
-				9
-			],
-			[
-				5,
-				10
-			],
-			[
-				5,
-				12
-			],
-			[
-				5,
-				16
-			],
-			[
-				5,
-				19
-			],
-			[
-				6,
-				0
-			],
-			[
-				6,
-				1
-			],
-			[
-				6,
-				12
-			],
-			[
-				6,
-				2
-			],
-			[
-				6,
-				3
-			],
-			[
-				6,
-				4
-			],
-			[
-				6,
-				16
-			],
-			[
-				6,
-				7
-			],
-			[
-				6,
-				8
-			],
-			[
-				6,
-				9
-			],
-			[
-				6,
-				10
-			],
-			[
-				7,
-				12
-			],
-			[
-				7,
-				2
-			],
-			[
-				8,
-				0
-			],
-			[
-				8,
-				1
-			],
-			[
-				8,
-				12
-			],
-			[
-				8,
-				2
-			],
-			[
-				8,
-				3
-			],
-			[
-				8,
-				4
-			],
-			[
-				8,
-				7
-			],
-			[
-				8,
-				9
-			],
-			[
-				8,
-				10
-			],
-			[
-				9,
-				0
-			],
-			[
-				9,
-				1
-			],
-			[
-				9,
-				12
-			],
-			[
-				9,
-				2
-			],
-			[
-				9,
-				3
-			],
-			[
-				9,
-				4
-			],
-			[
-				9,
-				7
-			],
-			[
-				9,
-				10
-			],
-			[
-				10,
-				12
-			],
-			[
-				10,
-				2
-			],
-			[
-				10,
-				7
-			],
-			[
-				11,
-				0
-			],
-			[
-				11,
-				1
-			],
-			[
-				11,
-				2
-			],
-			[
-				11,
-				3
-			],
-			[
-				11,
-				5
-			],
-			[
-				11,
-				4
-			],
-			[
-				11,
-				6
-			],
-			[
-				11,
-				7
-			],
-			[
-				11,
-				8
-			],
-			[
-				11,
-				9
-			],
-			[
-				11,
-				10
-			],
-			[
-				11,
-				12
-			],
-			[
-				11,
-				13
-			],
-			[
-				11,
-				15
-			],
-			[
-				11,
-				16
-			],
-			[
-				11,
-				17
-			],
-			[
-				11,
-				19
-			],
-			[
-				13,
-				0
-			],
-			[
-				13,
-				1
-			],
-			[
-				13,
-				2
-			],
-			[
-				13,
-				3
-			],
-			[
-				13,
-				5
-			],
-			[
-				13,
-				4
-			],
-			[
-				13,
-				6
-			],
-			[
-				13,
-				7
-			],
-			[
-				13,
-				8
-			],
-			[
-				13,
-				9
-			],
-			[
-				13,
-				10
-			],
-			[
-				13,
-				12
-			],
-			[
-				13,
-				15
-			],
-			[
-				13,
-				16
-			],
-			[
-				13,
-				17
-			],
-			[
-				13,
-				19
-			],
-			[
-				14,
-				0
-			],
-			[
-				14,
-				1
-			],
-			[
-				14,
-				2
-			],
-			[
-				14,
-				3
-			],
-			[
-				14,
-				5
-			],
-			[
-				14,
-				4
-			],
-			[
-				14,
-				6
-			],
-			[
-				14,
-				7
-			],
-			[
-				14,
-				8
-			],
-			[
-				14,
-				9
-			],
-			[
-				14,
-				10
-			],
-			[
-				14,
-				11
-			],
-			[
-				14,
-				12
-			],
-			[
-				14,
-				13
-			],
-			[
-				14,
-				15
-			],
-			[
-				14,
-				16
-			],
-			[
-				14,
-				17
-			],
-			[
-				14,
-				19
-			],
-			[
-				15,
-				0
-			],
-			[
-				15,
-				1
-			],
-			[
-				15,
-				2
-			],
-			[
-				15,
-				3
-			],
-			[
-				15,
-				5
-			],
-			[
-				15,
-				4
-			],
-			[
-				15,
-				6
-			],
-			[
-				15,
-				7
-			],
-			[
-				15,
-				8
-			],
-			[
-				15,
-				9
-			],
-			[
-				15,
-				10
-			],
-			[
-				15,
-				12
-			],
-			[
-				15,
-				16
-			],
-			[
-				15,
-				17
-			],
-			[
-				15,
-				19
-			],
-			[
-				16,
-				0
-			],
-			[
-				16,
-				1
-			],
-			[
-				16,
-				12
-			],
-			[
-				16,
-				2
-			],
-			[
-				16,
-				3
-			],
-			[
-				16,
-				4
-			],
-			[
-				16,
-				7
-			],
-			[
-				16,
-				8
-			],
-			[
-				16,
-				9
-			],
-			[
-				16,
-				10
-			],
-			[
-				17,
-				0
-			],
-			[
-				17,
-				1
-			],
-			[
-				17,
-				2
-			],
-			[
-				17,
-				3
-			],
-			[
-				17,
-				5
-			],
-			[
-				17,
-				4
-			],
-			[
-				17,
-				6
-			],
-			[
-				17,
-				7
-			],
-			[
-				17,
-				8
-			],
-			[
-				17,
-				9
-			],
-			[
-				17,
-				10
-			],
-			[
-				17,
-				12
-			],
-			[
-				17,
-				16
-			],
-			[
-				17,
-				19
-			],
-			[
-				18,
-				0
-			],
-			[
-				18,
-				1
-			],
-			[
-				18,
-				2
-			],
-			[
-				18,
-				3
-			],
-			[
-				18,
-				5
-			],
-			[
-				18,
-				4
-			],
-			[
-				18,
-				6
-			],
-			[
-				18,
-				7
-			],
-			[
-				18,
-				8
-			],
-			[
-				18,
-				9
-			],
-			[
-				18,
-				10
-			],
-			[
-				18,
-				11
-			],
-			[
-				18,
-				12
-			],
-			[
-				18,
-				13
-			],
-			[
-				18,
-				14
-			],
-			[
-				18,
-				15
-			],
-			[
-				18,
-				16
-			],
-			[
-				18,
-				17
-			],
-			[
-				18,
-				19
-			],
-			[
-				19,
-				0
-			],
-			[
-				19,
-				1
-			],
-			[
-				19,
-				12
-			],
-			[
-				19,
-				2
-			],
-			[
-				19,
-				3
-			],
-			[
-				19,
-				4
-			],
-			[
-				19,
-				6
-			],
-			[
-				19,
-				16
-			],
-			[
-				19,
-				7
-			],
-			[
-				19,
-				8
-			],
-			[
-				19,
-				9
-			],
-			[
-				19,
-				10
-			]
-		]
-	}
+  "DefaultPartialOrdering" : {
+    "name" : "jobs1-partial-20",
+    "domain" : {
+      "name" : "jobs",
+      "issuesValues" : {
+        "lease car" : {
+          "values" : [ "yes", "no" ]
+        },
+        "permanent contract" : {
+          "values" : [ "yes", "no" ]
+        },
+        "career development opportunities" : {
+          "values" : [ "low", "medium", "high" ]
+        },
+        "fte" : {
+          "values" : [ "0.6", "0.8", "1.0" ]
+        },
+        "salary" : {
+          "values" : [ "2000", "2500", "3000", "3500", "4000" ]
+        },
+        "work from home" : {
+          "values" : [ "0", "1", "2" ]
+        }
+      }
+    },
+    "better" : {
+      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"yes\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"2000\",\"work from home\":\"2\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"0.6\",\"salary\":\"3500\",\"work from home\":\"0\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"1.0\",\"salary\":\"2000\",\"work from home\":\"1\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"medium\",\"fte\":\"1.0\",\"salary\":\"3500\",\"work from home\":\"1\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.8",
+          "salary" : "4000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "2"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"3000\",\"work from home\":\"0\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"medium\",\"fte\":\"1.0\",\"salary\":\"2500\",\"work from home\":\"2\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "1.0",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.8",
+          "salary" : "4000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"0.6\",\"salary\":\"2000\",\"work from home\":\"1\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"3000\",\"work from home\":\"1\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"0.8\",\"salary\":\"3500\",\"work from home\":\"1\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"medium\",\"fte\":\"0.8\",\"salary\":\"2000\",\"work from home\":\"1\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"high\",\"fte\":\"0.6\",\"salary\":\"2000\",\"work from home\":\"1\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"0.6\",\"salary\":\"2000\",\"work from home\":\"0\"}}" : [ ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"low\",\"fte\":\"0.8\",\"salary\":\"4000\",\"work from home\":\"2\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "1.0",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "1.0",
+          "salary" : "2500",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.8",
+          "salary" : "4000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "4000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"0.8\",\"salary\":\"4000\",\"work from home\":\"2\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"0.6\",\"salary\":\"3500\",\"work from home\":\"1\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"4000\",\"work from home\":\"2\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "1.0",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "1.0",
+          "salary" : "2500",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "low",
+          "fte" : "0.8",
+          "salary" : "4000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.8",
+          "salary" : "4000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "4000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"4000\",\"work from home\":\"2\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "1.0",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "1.0",
+          "salary" : "2500",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.8",
+          "salary" : "4000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"medium\",\"fte\":\"0.8\",\"salary\":\"2500\",\"work from home\":\"1\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"medium\",\"fte\":\"0.8\",\"salary\":\"2500\",\"work from home\":\"2\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"yes\",\"career development opportunities\":\"low\",\"fte\":\"1.0\",\"salary\":\"3500\",\"work from home\":\"0\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "1.0",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.8",
+          "salary" : "4000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "2"
+        }
+      } ]
+    },
+    "reservationbid" : {
+      "issuevalues" : {
+        "lease car" : "no",
+        "permanent contract" : "yes",
+        "career development opportunities" : "medium",
+        "fte" : "0.8",
+        "salary" : "3500",
+        "work from home" : "1"
+      }
+    }
+  }
 }
Index: /exampleparties/anac2019/winkyagent/pom.xml
===================================================================
--- /exampleparties/anac2019/winkyagent/pom.xml	(revision 52)
+++ /exampleparties/anac2019/winkyagent/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb.exampleparties.anac2019</groupId>
 	<artifactId>winkyagent</artifactId>
-	<version>2.1.6</version>  <!-- equals the geniusweb version -->
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
@@ -60,5 +60,5 @@
 			<groupId>tudelft.utilities</groupId>
 			<artifactId>utilities</artifactId>
-			<version>1.2.1</version>
+			<version>1.3.1</version>
 		</dependency>
 
Index: /exampleparties/anac2019/winkyagent/src/test/resources/jobs1partial20.json
===================================================================
--- /exampleparties/anac2019/winkyagent/src/test/resources/jobs1partial20.json	(revision 52)
+++ /exampleparties/anac2019/winkyagent/src/test/resources/jobs1partial20.json	(revision 53)
@@ -1,1018 +1,1761 @@
 {
-	"DefaultPartialOrdering": {
-		"name": "jobs1-partial-20",
-		"domain": {
-			"name": "jobs",
-			"issuesValues": {
-				"lease car": {
-					"values": [
-						"yes",
-						"no"
-					]
-				},
-				"permanent contract": {
-					"values": [
-						"yes",
-						"no"
-					]
-				},
-				"career development opportunities": {
-					"values": [
-						"low",
-						"medium",
-						"high"
-					]
-				},
-				"fte": {
-					"values": [
-						"0.6",
-						"0.8",
-						"1.0"
-					]
-				},
-				"salary": {
-					"values": [
-						"2000",
-						"2500",
-						"3000",
-						"3500",
-						"4000"
-					]
-				},
-				"work from home": {
-					"values": [
-						"0",
-						"1",
-						"2"
-					]
-				}
-			}
-		},
-		"reservationBid": {
-			"issuevalues": {
-				"lease car": "no",
-				"permanent contract": "no",
-				"career development opportunities": "medium",
-				"fte": "0.8",
-				"salary": "3000",
-				"work from home": "0"
-			}
-		},
-		"bids": [
-			{
-				"issuevalues": {
-					"lease car": "no",
-					"permanent contract": "no",
-					"career development opportunities": "low",
-					"fte": "1.0",
-					"salary": "3000",
-					"work from home": "1"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "yes",
-					"permanent contract": "no",
-					"career development opportunities": "high",
-					"fte": "0.6",
-					"salary": "3500",
-					"work from home": "0"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "no",
-					"permanent contract": "no",
-					"career development opportunities": "high",
-					"fte": "0.8",
-					"salary": "3000",
-					"work from home": "0"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "yes",
-					"permanent contract": "no",
-					"career development opportunities": "low",
-					"fte": "0.6",
-					"salary": "3500",
-					"work from home": "0"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "no",
-					"permanent contract": "yes",
-					"career development opportunities": "low",
-					"fte": "0.6",
-					"salary": "3000",
-					"work from home": "1"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "yes",
-					"permanent contract": "yes",
-					"career development opportunities": "low",
-					"fte": "1.0",
-					"salary": "2000",
-					"work from home": "2"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "no",
-					"permanent contract": "yes",
-					"career development opportunities": "low",
-					"fte": "0.8",
-					"salary": "2500",
-					"work from home": "1"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "no",
-					"permanent contract": "yes",
-					"career development opportunities": "low",
-					"fte": "0.6",
-					"salary": "2000",
-					"work from home": "2"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "yes",
-					"permanent contract": "no",
-					"career development opportunities": "medium",
-					"fte": "0.6",
-					"salary": "3500",
-					"work from home": "1"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "yes",
-					"permanent contract": "yes",
-					"career development opportunities": "low",
-					"fte": "0.6",
-					"salary": "2000",
-					"work from home": "2"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "yes",
-					"permanent contract": "yes",
-					"career development opportunities": "medium",
-					"fte": "0.6",
-					"salary": "2000",
-					"work from home": "0"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "yes",
-					"permanent contract": "yes",
-					"career development opportunities": "medium",
-					"fte": "0.8",
-					"salary": "3500",
-					"work from home": "2"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "no",
-					"permanent contract": "no",
-					"career development opportunities": "low",
-					"fte": "0.6",
-					"salary": "2000",
-					"work from home": "0"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "no",
-					"permanent contract": "no",
-					"career development opportunities": "high",
-					"fte": "1.0",
-					"salary": "4000",
-					"work from home": "2"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "yes",
-					"permanent contract": "yes",
-					"career development opportunities": "low",
-					"fte": "0.8",
-					"salary": "4000",
-					"work from home": "2"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "yes",
-					"permanent contract": "no",
-					"career development opportunities": "medium",
-					"fte": "1.0",
-					"salary": "3500",
-					"work from home": "2"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "no",
-					"permanent contract": "yes",
-					"career development opportunities": "high",
-					"fte": "0.8",
-					"salary": "2000",
-					"work from home": "1"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "yes",
-					"permanent contract": "yes",
-					"career development opportunities": "low",
-					"fte": "1.0",
-					"salary": "2500",
-					"work from home": "1"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "yes",
-					"permanent contract": "yes",
-					"career development opportunities": "high",
-					"fte": "1.0",
-					"salary": "4000",
-					"work from home": "2"
-				}
-			},
-			{
-				"issuevalues": {
-					"lease car": "no",
-					"permanent contract": "yes",
-					"career development opportunities": "medium",
-					"fte": "0.8",
-					"salary": "2500",
-					"work from home": "1"
-				}
-			}
-		],
-		"better": [
-			[
-				0,
-				12
-			],
-			[
-				0,
-				2
-			],
-			[
-				0,
-				3
-			],
-			[
-				0,
-				7
-			],
-			[
-				0,
-				10
-			],
-			[
-				1,
-				0
-			],
-			[
-				1,
-				12
-			],
-			[
-				1,
-				2
-			],
-			[
-				1,
-				3
-			],
-			[
-				1,
-				4
-			],
-			[
-				1,
-				7
-			],
-			[
-				1,
-				10
-			],
-			[
-				2,
-				12
-			],
-			[
-				3,
-				12
-			],
-			[
-				3,
-				2
-			],
-			[
-				3,
-				7
-			],
-			[
-				4,
-				12
-			],
-			[
-				4,
-				2
-			],
-			[
-				4,
-				3
-			],
-			[
-				4,
-				7
-			],
-			[
-				4,
-				10
-			],
-			[
-				5,
-				0
-			],
-			[
-				5,
-				1
-			],
-			[
-				5,
-				2
-			],
-			[
-				5,
-				3
-			],
-			[
-				5,
-				4
-			],
-			[
-				5,
-				6
-			],
-			[
-				5,
-				7
-			],
-			[
-				5,
-				8
-			],
-			[
-				5,
-				9
-			],
-			[
-				5,
-				10
-			],
-			[
-				5,
-				12
-			],
-			[
-				5,
-				16
-			],
-			[
-				5,
-				19
-			],
-			[
-				6,
-				0
-			],
-			[
-				6,
-				1
-			],
-			[
-				6,
-				12
-			],
-			[
-				6,
-				2
-			],
-			[
-				6,
-				3
-			],
-			[
-				6,
-				4
-			],
-			[
-				6,
-				16
-			],
-			[
-				6,
-				7
-			],
-			[
-				6,
-				8
-			],
-			[
-				6,
-				9
-			],
-			[
-				6,
-				10
-			],
-			[
-				7,
-				12
-			],
-			[
-				7,
-				2
-			],
-			[
-				8,
-				0
-			],
-			[
-				8,
-				1
-			],
-			[
-				8,
-				12
-			],
-			[
-				8,
-				2
-			],
-			[
-				8,
-				3
-			],
-			[
-				8,
-				4
-			],
-			[
-				8,
-				7
-			],
-			[
-				8,
-				9
-			],
-			[
-				8,
-				10
-			],
-			[
-				9,
-				0
-			],
-			[
-				9,
-				1
-			],
-			[
-				9,
-				12
-			],
-			[
-				9,
-				2
-			],
-			[
-				9,
-				3
-			],
-			[
-				9,
-				4
-			],
-			[
-				9,
-				7
-			],
-			[
-				9,
-				10
-			],
-			[
-				10,
-				12
-			],
-			[
-				10,
-				2
-			],
-			[
-				10,
-				7
-			],
-			[
-				11,
-				0
-			],
-			[
-				11,
-				1
-			],
-			[
-				11,
-				2
-			],
-			[
-				11,
-				3
-			],
-			[
-				11,
-				5
-			],
-			[
-				11,
-				4
-			],
-			[
-				11,
-				6
-			],
-			[
-				11,
-				7
-			],
-			[
-				11,
-				8
-			],
-			[
-				11,
-				9
-			],
-			[
-				11,
-				10
-			],
-			[
-				11,
-				12
-			],
-			[
-				11,
-				13
-			],
-			[
-				11,
-				15
-			],
-			[
-				11,
-				16
-			],
-			[
-				11,
-				17
-			],
-			[
-				11,
-				19
-			],
-			[
-				13,
-				0
-			],
-			[
-				13,
-				1
-			],
-			[
-				13,
-				2
-			],
-			[
-				13,
-				3
-			],
-			[
-				13,
-				5
-			],
-			[
-				13,
-				4
-			],
-			[
-				13,
-				6
-			],
-			[
-				13,
-				7
-			],
-			[
-				13,
-				8
-			],
-			[
-				13,
-				9
-			],
-			[
-				13,
-				10
-			],
-			[
-				13,
-				12
-			],
-			[
-				13,
-				15
-			],
-			[
-				13,
-				16
-			],
-			[
-				13,
-				17
-			],
-			[
-				13,
-				19
-			],
-			[
-				14,
-				0
-			],
-			[
-				14,
-				1
-			],
-			[
-				14,
-				2
-			],
-			[
-				14,
-				3
-			],
-			[
-				14,
-				5
-			],
-			[
-				14,
-				4
-			],
-			[
-				14,
-				6
-			],
-			[
-				14,
-				7
-			],
-			[
-				14,
-				8
-			],
-			[
-				14,
-				9
-			],
-			[
-				14,
-				10
-			],
-			[
-				14,
-				11
-			],
-			[
-				14,
-				12
-			],
-			[
-				14,
-				13
-			],
-			[
-				14,
-				15
-			],
-			[
-				14,
-				16
-			],
-			[
-				14,
-				17
-			],
-			[
-				14,
-				19
-			],
-			[
-				15,
-				0
-			],
-			[
-				15,
-				1
-			],
-			[
-				15,
-				2
-			],
-			[
-				15,
-				3
-			],
-			[
-				15,
-				5
-			],
-			[
-				15,
-				4
-			],
-			[
-				15,
-				6
-			],
-			[
-				15,
-				7
-			],
-			[
-				15,
-				8
-			],
-			[
-				15,
-				9
-			],
-			[
-				15,
-				10
-			],
-			[
-				15,
-				12
-			],
-			[
-				15,
-				16
-			],
-			[
-				15,
-				17
-			],
-			[
-				15,
-				19
-			],
-			[
-				16,
-				0
-			],
-			[
-				16,
-				1
-			],
-			[
-				16,
-				12
-			],
-			[
-				16,
-				2
-			],
-			[
-				16,
-				3
-			],
-			[
-				16,
-				4
-			],
-			[
-				16,
-				7
-			],
-			[
-				16,
-				8
-			],
-			[
-				16,
-				9
-			],
-			[
-				16,
-				10
-			],
-			[
-				17,
-				0
-			],
-			[
-				17,
-				1
-			],
-			[
-				17,
-				2
-			],
-			[
-				17,
-				3
-			],
-			[
-				17,
-				5
-			],
-			[
-				17,
-				4
-			],
-			[
-				17,
-				6
-			],
-			[
-				17,
-				7
-			],
-			[
-				17,
-				8
-			],
-			[
-				17,
-				9
-			],
-			[
-				17,
-				10
-			],
-			[
-				17,
-				12
-			],
-			[
-				17,
-				16
-			],
-			[
-				17,
-				19
-			],
-			[
-				18,
-				0
-			],
-			[
-				18,
-				1
-			],
-			[
-				18,
-				2
-			],
-			[
-				18,
-				3
-			],
-			[
-				18,
-				5
-			],
-			[
-				18,
-				4
-			],
-			[
-				18,
-				6
-			],
-			[
-				18,
-				7
-			],
-			[
-				18,
-				8
-			],
-			[
-				18,
-				9
-			],
-			[
-				18,
-				10
-			],
-			[
-				18,
-				11
-			],
-			[
-				18,
-				12
-			],
-			[
-				18,
-				13
-			],
-			[
-				18,
-				14
-			],
-			[
-				18,
-				15
-			],
-			[
-				18,
-				16
-			],
-			[
-				18,
-				17
-			],
-			[
-				18,
-				19
-			],
-			[
-				19,
-				0
-			],
-			[
-				19,
-				1
-			],
-			[
-				19,
-				12
-			],
-			[
-				19,
-				2
-			],
-			[
-				19,
-				3
-			],
-			[
-				19,
-				4
-			],
-			[
-				19,
-				6
-			],
-			[
-				19,
-				16
-			],
-			[
-				19,
-				7
-			],
-			[
-				19,
-				8
-			],
-			[
-				19,
-				9
-			],
-			[
-				19,
-				10
-			]
-		]
-	}
+  "DefaultPartialOrdering" : {
+    "name" : "jobs1-partial-20",
+    "domain" : {
+      "name" : "jobs",
+      "issuesValues" : {
+        "lease car" : {
+          "values" : [ "yes", "no" ]
+        },
+        "permanent contract" : {
+          "values" : [ "yes", "no" ]
+        },
+        "career development opportunities" : {
+          "values" : [ "low", "medium", "high" ]
+        },
+        "fte" : {
+          "values" : [ "0.6", "0.8", "1.0" ]
+        },
+        "salary" : {
+          "values" : [ "2000", "2500", "3000", "3500", "4000" ]
+        },
+        "work from home" : {
+          "values" : [ "0", "1", "2" ]
+        }
+      }
+    },
+    "better" : {
+      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"yes\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"2000\",\"work from home\":\"2\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"0.6\",\"salary\":\"3500\",\"work from home\":\"0\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"1.0\",\"salary\":\"2000\",\"work from home\":\"1\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"medium\",\"fte\":\"1.0\",\"salary\":\"3500\",\"work from home\":\"1\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.8",
+          "salary" : "4000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "2"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"3000\",\"work from home\":\"0\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"medium\",\"fte\":\"1.0\",\"salary\":\"2500\",\"work from home\":\"2\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "1.0",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.8",
+          "salary" : "4000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"0.6\",\"salary\":\"2000\",\"work from home\":\"1\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"3000\",\"work from home\":\"1\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"0.8\",\"salary\":\"3500\",\"work from home\":\"1\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"medium\",\"fte\":\"0.8\",\"salary\":\"2000\",\"work from home\":\"1\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"high\",\"fte\":\"0.6\",\"salary\":\"2000\",\"work from home\":\"1\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"0.6\",\"salary\":\"2000\",\"work from home\":\"0\"}}" : [ ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"low\",\"fte\":\"0.8\",\"salary\":\"4000\",\"work from home\":\"2\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "1.0",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "1.0",
+          "salary" : "2500",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.8",
+          "salary" : "4000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "4000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"0.8\",\"salary\":\"4000\",\"work from home\":\"2\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"0.6\",\"salary\":\"3500\",\"work from home\":\"1\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"4000\",\"work from home\":\"2\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "1.0",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "1.0",
+          "salary" : "2500",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "low",
+          "fte" : "0.8",
+          "salary" : "4000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.8",
+          "salary" : "4000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "4000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"4000\",\"work from home\":\"2\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "1.0",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "1.0",
+          "salary" : "2500",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.8",
+          "salary" : "4000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"medium\",\"fte\":\"0.8\",\"salary\":\"2500\",\"work from home\":\"1\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"medium\",\"fte\":\"0.8\",\"salary\":\"2500\",\"work from home\":\"2\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"yes\",\"career development opportunities\":\"low\",\"fte\":\"1.0\",\"salary\":\"3500\",\"work from home\":\"0\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "1.0",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.8",
+          "salary" : "4000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "2"
+        }
+      } ]
+    },
+    "reservationbid" : {
+      "issuevalues" : {
+        "lease car" : "no",
+        "permanent contract" : "yes",
+        "career development opportunities" : "medium",
+        "fte" : "0.8",
+        "salary" : "3500",
+        "work from home" : "1"
+      }
+    }
+  }
 }
Index: /exampleparties/boulware/pom.xml
===================================================================
--- /exampleparties/boulware/pom.xml	(revision 52)
+++ /exampleparties/boulware/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb.exampleparties</groupId>
 	<artifactId>boulware</artifactId>
-	<version>2.1.6</version>  <!-- equals the geniusweb version -->
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
Index: /exampleparties/comparebids/pom.xml
===================================================================
--- /exampleparties/comparebids/pom.xml	(revision 52)
+++ /exampleparties/comparebids/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb.exampleparties</groupId>
 	<artifactId>comparebids</artifactId>
-	<version>2.1.6</version>
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
@@ -53,5 +53,5 @@
 			<groupId>tudelft.utilities</groupId>
 			<artifactId>utilities</artifactId>
-			<version>1.2.1</version>
+			<version>1.3.1</version>
 		</dependency>
 
Index: /exampleparties/conceder/pom.xml
===================================================================
--- /exampleparties/conceder/pom.xml	(revision 52)
+++ /exampleparties/conceder/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb.exampleparties</groupId>
 	<artifactId>conceder</artifactId>
-	<version>2.1.6</version>  <!-- equals the geniusweb version -->
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
Index: /exampleparties/hardliner/pom.xml
===================================================================
--- /exampleparties/hardliner/pom.xml	(revision 52)
+++ /exampleparties/hardliner/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb.exampleparties</groupId>
 	<artifactId>hardliner</artifactId>
-	<version>2.1.6</version>  <!-- equals the geniusweb version -->
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
Index: /exampleparties/humangui/pom.xml
===================================================================
--- /exampleparties/humangui/pom.xml	(revision 52)
+++ /exampleparties/humangui/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb.exampleparties</groupId>
 	<artifactId>humangui</artifactId>
-	<version>2.1.6</version>
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
Index: /exampleparties/linear/pom.xml
===================================================================
--- /exampleparties/linear/pom.xml	(revision 52)
+++ /exampleparties/linear/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb.exampleparties</groupId>
 	<artifactId>linear</artifactId>
-	<version>2.1.6</version>  <!-- equals the geniusweb version -->
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
Index: /exampleparties/randomparty/pom.xml
===================================================================
--- /exampleparties/randomparty/pom.xml	(revision 52)
+++ /exampleparties/randomparty/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb.exampleparties</groupId>
 	<artifactId>randomparty</artifactId>
-	<version>2.1.6</version>  <!-- equals the geniusweb version -->
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
@@ -55,5 +55,5 @@
 			<groupId>tudelft.utilities</groupId>
 			<artifactId>utilities</artifactId>
-			<version>1.2.1</version>
+			<version>1.3.1</version>
 		</dependency>
 
Index: /exampleparties/randompartypy/pom.xml
===================================================================
--- /exampleparties/randompartypy/pom.xml	(revision 52)
+++ /exampleparties/randompartypy/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb.exampleparties</groupId>
 	<artifactId>randompyparty</artifactId>
-	<version>2.1.6</version>  <!-- equals the geniusweb version -->
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
Index: /exampleparties/simpleboa/pom.xml
===================================================================
--- /exampleparties/simpleboa/pom.xml	(revision 52)
+++ /exampleparties/simpleboa/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb.exampleparties</groupId>
 	<artifactId>simpleboaparty</artifactId>
-	<version>2.1.6</version>  <!-- equals the geniusweb version -->
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
Index: /exampleparties/simpleshaop/pom.xml
===================================================================
--- /exampleparties/simpleshaop/pom.xml	(revision 52)
+++ /exampleparties/simpleshaop/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb.exampleparties</groupId>
 	<artifactId>simpleshaop</artifactId>
-	<version>2.1.6</version>
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
@@ -53,5 +53,5 @@
 			<groupId>tudelft.utilities</groupId>
 			<artifactId>utilities</artifactId>
-			<version>1.2.1</version>
+			<version>1.3.1</version>
 		</dependency>
 
Index: /exampleparties/simpleshaop/src/test/resources/testprofile.json
===================================================================
--- /exampleparties/simpleshaop/src/test/resources/testprofile.json	(revision 52)
+++ /exampleparties/simpleshaop/src/test/resources/testprofile.json	(revision 53)
@@ -29,154 +29,110 @@
 			}
 		},
-		"bids": [
-			{
-				"issuevalues": {
-					"iss1": "1",
-					"iss2": "1"
+		"better": {
+			"{\"issuevalues\": { \"iss1\": \"1\",\"iss2\": \"1\"}}": [
+				{
+					"issuevalues": {
+						"iss1": "2",
+						"iss2": "1"
+					}
 				}
-			},
-			{
-				"issuevalues": {
-					"iss1": "2",
-					"iss2": "1"
+			],
+			"{\"issuevalues\": {\"iss1\": \"2\",\"iss2\": \"1\"}}": [
+				{
+					"issuevalues": {
+						"iss1": "3",
+						"iss2": "1"
+					}
 				}
-			},
-			{
-				"issuevalues": {
-					"iss1": "3",
-					"iss2": "1"
+			],
+			"{\"issuevalues\": {\"iss1\": \"3\",\"iss2\": \"1\"}}": [
+				{
+					"issuevalues": {
+						"iss1": "4",
+						"iss2": "1"
+					}
 				}
-			},
-			{
-				"issuevalues": {
-					"iss1": "4",
-					"iss2": "1"
+			],
+			"{\"issuevalues\": {\"iss1\": \"4\",\"iss2\": \"1\"}}": [
+				{
+					"issuevalues": {
+						"iss1": "1",
+						"iss2": "2"
+					}
 				}
-			},
-			{
-				"issuevalues": {
-					"iss1": "1",
-					"iss2": "2"
+			],
+			"{\"issuevalues\": {\"iss1\": \"1\",\"iss2\": \"2\"}}": [
+				{
+					"issuevalues": {
+						"iss1": "2",
+						"iss2": "2"
+					}
 				}
-			},
-			{
-				"issuevalues": {
-					"iss1": "2",
-					"iss2": "2"
+			],
+			"{\"issuevalues\": {\"iss1\": \"2\",\"iss2\": \"2\"}}": [
+				{
+					"issuevalues": {
+						"iss1": "3",
+						"iss2": "2"
+					}
 				}
-			},
-			{
-				"issuevalues": {
-					"iss1": "3",
-					"iss2": "2"
+			],
+			"{\"issuevalues\": { \"iss1\": \"4\",\"iss2\": \"2\"}}": [
+				{
+					"issuevalues": {
+						"iss1": "1",
+						"iss2": "3"
+					}
 				}
-			},
-			{
-				"issuevalues": {
-					"iss1": "4",
-					"iss2": "2"
+			],
+			"{\"issuevalues\": {\"iss1\": \"1\", \"iss2\": \"3\"}}": [
+				{
+					"issuevalues": {
+						"iss1": "2",
+						"iss2": "3"
+					}
 				}
-			},
-			{
-				"issuevalues": {
-					"iss1": "1",
-					"iss2": "3"
+			],
+			"{\"issuevalues\": { \"iss1\": \"2\",\"iss2\": \"3\" }}": [
+				{
+					"issuevalues": {
+						"iss1": "4",
+						"iss2": "3"
+					}
 				}
-			},
-			{
-				"issuevalues": {
-					"iss1": "2",
-					"iss2": "3"
+			],
+			"{\"issuevalues\": {\"iss1\": \"4\", \"iss2\": \"3\"}}": [
+				{
+					"issuevalues": {
+						"iss1": "1",
+						"iss2": "4"
+					}
 				}
-			},
-			{
-				"issuevalues": {
-					"iss1": "4",
-					"iss2": "3"
+			],
+			"{\"issuevalues\": { \"iss1\": \"1\",\"iss2\": \"4\" }}": [
+				{
+					"issuevalues": {
+						"iss1": "2",
+						"iss2": "4"
+					}
 				}
-			},
-			{
-				"issuevalues": {
-					"iss1": "1",
-					"iss2": "4"
+			],
+			"{\"issuevalues\": { \"iss1\": \"2\", \"iss2\": \"4\"}}": [
+				{
+					"issuevalues": {
+						"iss1": "3",
+						"iss2": "4"
+					}
 				}
-			},
-			{
-				"issuevalues": {
-					"iss1": "2",
-					"iss2": "4"
+			],
+			"{\"issuevalues\": { \"iss1\": \"3\",\"iss2\": \"4\"}}": [
+				{
+					"issuevalues": {
+						"iss1": "4",
+						"iss2": "4"
+					}
 				}
-			},
-			{
-				"issuevalues": {
-					"iss1": "3",
-					"iss2": "4"
-				}
-			},
-			{
-				"issuevalues": {
-					"iss1": "4",
-					"iss2": "4"
-				}
-			}
-		],
-		"better": [
-			[
-				0,
-				1
-			],
-			[
-				1,
-				2
-			],
-			[
-				2,
-				3
-			],
-			[
-				3,
-				4
-			],
-			[
-				4,
-				5
-			],
-			[
-				5,
-				6
-			],
-			[
-				6,
-				7
-			],
-			[
-				7,
-				8
-			],
-			[
-				8,
-				9
-			],
-			[
-				9,
-				10
-			],
-			[
-				10,
-				11
-			],
-			[
-				11,
-				12
-			],
-			[
-				12,
-				13
-			],
-			[
-				13,
-				14
 			]
-		]
+		}
 	}
 }
Index: /exampleparties/timedependentparty/pom.xml
===================================================================
--- /exampleparties/timedependentparty/pom.xml	(revision 52)
+++ /exampleparties/timedependentparty/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb.exampleparties</groupId>
 	<artifactId>timedependentparty</artifactId>
-	<version>2.1.6</version>  <!-- equals the geniusweb version -->
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
@@ -53,5 +53,5 @@
 			<groupId>tudelft.utilities</groupId>
 			<artifactId>utilities</artifactId>
-			<version>1.2.1</version>
+			<version>1.3.1</version>
 		</dependency>
 
Index: /exampleparties/timedependentparty/src/main/java/geniusweb/exampleparties/timedependentparty/ExtendedUtilSpace.java
===================================================================
--- /exampleparties/timedependentparty/src/main/java/geniusweb/exampleparties/timedependentparty/ExtendedUtilSpace.java	(revision 52)
+++ /exampleparties/timedependentparty/src/main/java/geniusweb/exampleparties/timedependentparty/ExtendedUtilSpace.java	(revision 53)
@@ -9,16 +9,30 @@
 import geniusweb.bidspace.Interval;
 import geniusweb.bidspace.IssueInfo;
+import geniusweb.bidspace.SumOfGroupsLinAdditiveAdapter;
 import geniusweb.issuevalue.Bid;
 import geniusweb.issuevalue.Value;
 import geniusweb.profile.utilityspace.LinearAdditive;
+import geniusweb.profile.utilityspace.SumOfGroupsUtilitySpace;
+import geniusweb.profile.utilityspace.UtilitySpace;
 import tudelft.utilities.immutablelist.ImmutableList;
+import tudelft.utilities.immutablelist.MapList;
 
 /**
- * Inner class for TimeDependentParty, made public for testing purposes. This
- * class may change in the future, use at your own risk.
+ * Inner class for TimeDependentParty, Handles mechanisms for searching the bid
+ * space, and using adapters to handle the nonlinear
+ * {@link SumOfGroupsUtilitySpace}.
+ * 
+ * This class is public for testing purposes. This class may change in the
+ * future, use at your own risk.
  *
  */
 public class ExtendedUtilSpace {
-	private LinearAdditive utilspace;
+	private UtilitySpace utilspace;
+	// linear approximation of utilspace (possibly utilspace itself)
+	// thsi may have different utilityes issues and values than utilspace.
+	private LinearAdditive linapprox;
+
+	// bidutils tolerance minUtil maxUtil all work on linapprox
+	private BidsWithUtility bidutils;
 	/**
 	 * The tolerance for a utility. Generally utilities can be this amount
@@ -26,15 +40,18 @@
 	 */
 	private BigDecimal tolerance;
-	private BidsWithUtility bidutils;
 	// min and max achievable utility
 	private BigDecimal minUtil;
 	private BigDecimal maxUtil;
 
-	public ExtendedUtilSpace(LinearAdditive space) {
+	public ExtendedUtilSpace(UtilitySpace space) {
 		this.utilspace = space;
-		bidutils = new BidsWithUtility(utilspace);
+		if (space instanceof LinearAdditive)
+			linapprox = (LinearAdditive) space;
+		else
+			linapprox = SumOfGroupsLinAdditiveAdapter
+					.create((SumOfGroupsUtilitySpace) space);
+		bidutils = new BidsWithUtility(linapprox);
 		computeMinMax();
 		this.tolerance = computeTolerance();
-
 	}
 
@@ -52,7 +69,7 @@
 		this.maxUtil = range.getMax();
 
-		Bid rvbid = utilspace.getReservationBid();
+		Bid rvbid = linapprox.getReservationBid();
 		if (rvbid != null) {
-			BigDecimal rv = utilspace.getUtility(rvbid);
+			BigDecimal rv = linapprox.getUtility(rvbid);
 			if (rv.compareTo(minUtil) > 0)
 				minUtil = rv;
@@ -65,7 +82,7 @@
 	 * best and one-but-best utility.
 	 * 
-	 * @return the minimum tolerance required, which is the minimum difference
-	 *         between the weighted utility of the best and one-but-best issue
-	 *         value.
+	 * @return the minimum tolerance required in the {@link #linapprox} space,
+	 *         which is the minimum difference between the weighted utility of
+	 *         the best and one-but-best issue value.
 	 */
 	protected BigDecimal computeTolerance() {
@@ -87,8 +104,14 @@
 	}
 
+	/**
+	 * @return the minimum utility in the {@link #linapprox} space
+	 */
 	public BigDecimal getMin() {
 		return minUtil;
 	}
 
+	/**
+	 * @return the maximum utility in the {@link #linapprox} space
+	 */
 	public BigDecimal getMax() {
 		return maxUtil;
@@ -96,11 +119,22 @@
 
 	/**
-	 * @param utilityGoal the requested utility
+	 * @param utilityGoal the requested utility in the {@link #linapprox} space
 	 * @return bids with utility inside [utilitygoal-{@link #tolerance},
-	 *         utilitygoal]
+	 *         utilitygoal], converted back to bids in the utilspace
 	 */
 	public ImmutableList<Bid> getBids(BigDecimal utilityGoal) {
-		return bidutils.getBids(
+		ImmutableList<Bid> bidslist = bidutils.getBids(
 				new Interval(utilityGoal.subtract(tolerance), utilityGoal));
+		return new MapList<>((Bid b) -> realBid(b), bidslist);
+	}
+
+	/**
+	 * @param b a bid in the linapprox space
+	 * @return a bid in the original space
+	 */
+	private Bid realBid(Bid b) {
+		if (linapprox instanceof SumOfGroupsLinAdditiveAdapter)
+			return ((SumOfGroupsLinAdditiveAdapter) linapprox).toGroupBid(b);
+		return b;
 	}
 
Index: /exampleparties/timedependentparty/src/main/java/geniusweb/exampleparties/timedependentparty/TimeDependentParty.java
===================================================================
--- /exampleparties/timedependentparty/src/main/java/geniusweb/exampleparties/timedependentparty/TimeDependentParty.java	(revision 52)
+++ /exampleparties/timedependentparty/src/main/java/geniusweb/exampleparties/timedependentparty/TimeDependentParty.java	(revision 53)
@@ -74,10 +74,10 @@
  * </table>
  * <p>
- * TimeDependentParty requires a {@link UtilitySpace}
+ * TimeDependentParty requires a {@link LinearAdditive} utilityspace.
  */
 public class TimeDependentParty extends DefaultParty {
 
 	private ProfileInterface profileint = null;
-	private LinearAdditive utilspace = null; // last received space
+	private UtilitySpace utilspace = null; // last received space
 	private PartyId me;
 	private Progress progress;
@@ -238,8 +238,8 @@
 	}
 
-	private LinearAdditive updateUtilSpace() throws IOException {
+	private UtilitySpace updateUtilSpace() throws IOException {
 		Profile newutilspace = profileint.getProfile();
 		if (!newutilspace.equals(utilspace)) {
-			utilspace = (LinearAdditive) newutilspace;
+			utilspace = (UtilitySpace) newutilspace;
 			extendedspace = new ExtendedUtilSpace(utilspace);
 		}
Index: /exampleparties/timedependentparty/src/test/java/geniusweb/exampleparties/timedependentparty/ExtendedUtilSpaceTest.java
===================================================================
--- /exampleparties/timedependentparty/src/test/java/geniusweb/exampleparties/timedependentparty/ExtendedUtilSpaceTest.java	(revision 52)
+++ /exampleparties/timedependentparty/src/test/java/geniusweb/exampleparties/timedependentparty/ExtendedUtilSpaceTest.java	(revision 53)
@@ -1,8 +1,7 @@
 package geniusweb.exampleparties.timedependentparty;
 
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertEquals;
 
 import java.io.IOException;
-import java.math.BigDecimal;
 import java.nio.file.Files;
 import java.nio.file.Paths;
@@ -19,10 +18,10 @@
 
 import geniusweb.profile.Profile;
-import geniusweb.profile.utilityspace.LinearAdditiveUtilitySpace;
+import geniusweb.profile.utilityspace.UtilitySpace;
 
 @RunWith(Parameterized.class)
 public class ExtendedUtilSpaceTest {
 	private final static ObjectMapper jackson = new ObjectMapper();
-	private final static BigDecimal SMALL = new BigDecimal("0.0001");
+	private final static double SMALL = 0.0001;
 
 	@Parameters
@@ -31,14 +30,17 @@
 				{ "src/test/resources/jobs/jobs1.json", 0.02 },
 				{ "src/test/resources/7issues/7issues1.json", 0.0055 },
-				{ "src/test/resources/9issues/9issues1.json", 0.0013 } });
+				{ "src/test/resources/9issues/9issues1.json", 0.0013 },
+				// tolerance in computerbuy is quite small because approximation
+				// scales the space
+				{ "src/test/resources/computer/computerbuy.json", 0.0016 } });
 	}
 
 	private String filename;
-	private BigDecimal expectedTolerance;
+	private double expectedTolerance;
 	private ExtendedUtilSpace space;
 
 	public ExtendedUtilSpaceTest(String filename, double expectedTolerance) {
 		this.filename = filename;
-		this.expectedTolerance = BigDecimal.valueOf(expectedTolerance);
+		this.expectedTolerance = expectedTolerance;
 	}
 
@@ -46,6 +48,6 @@
 	public void before() throws IOException {
 		String file = new String(Files.readAllBytes(Paths.get(filename)));
-		LinearAdditiveUtilitySpace profile = (LinearAdditiveUtilitySpace) jackson
-				.readValue(file, Profile.class);
+		UtilitySpace profile = (UtilitySpace) jackson.readValue(file,
+				Profile.class);
 		space = new ExtendedUtilSpace(profile);
 	}
@@ -58,6 +60,6 @@
 	@Test
 	public void testTolerance() {
-		assertTrue(space.computeTolerance().subtract(expectedTolerance).abs()
-				.compareTo(SMALL) < 0);
+		assertEquals(expectedTolerance, space.computeTolerance().doubleValue(),
+				SMALL);
 	}
 }
Index: /exampleparties/timedependentparty/src/test/resources/computer/computerbuy.json
===================================================================
--- /exampleparties/timedependentparty/src/test/resources/computer/computerbuy.json	(revision 53)
+++ /exampleparties/timedependentparty/src/test/resources/computer/computerbuy.json	(revision 53)
@@ -0,0 +1,618 @@
+{
+	"SumOfGroupsUtilitySpace": {
+		"domain": {
+			"name": "computer",
+			"issuesValues": {
+				"box": {
+					"values": [
+						"all-in-one",
+						"small box",
+						"tower"
+					]
+				},
+				"graphics": {
+					"values": [
+						"built-in",
+						"low 8G",
+						"medium 16G",
+						"high 32G"
+					]
+				},
+				"main mem": {
+					"values": [
+						"8GB",
+						"16GB",
+						"32GB",
+						"64GB"
+					]
+				},
+				"SSD": {
+					"values": [
+						"64GB",
+						"1TB",
+						"2TB",
+						"4TB",
+						"8TB"
+					]
+				},
+				"display": {
+					"values": [
+						"24-1K",
+						"27-4K",
+						"32-4K",
+						"27-4K gaming",
+						"34-4K gaming"
+					]
+				},
+				"input": {
+					"values": [
+						"standard keybd,mouse",
+						"wireless keybd,mouse",
+						"gaming keybd,mouse"
+					]
+				},
+				"price": {
+					"values": [
+						"614",
+						"663",
+						"716",
+						"773",
+						"835",
+						"902",
+						"974",
+						"1052",
+						"1136",
+						"1227",
+						"1326",
+						"1432",
+						"1546",
+						"1670",
+						"1803",
+						"1948",
+						"2104",
+						"2272",
+						"2454",
+						"2650",
+						"2862",
+						"3091",
+						"3338",
+						"3605",
+						"3893",
+						"4205",
+						"4541",
+						"4905",
+						"5297"
+					]
+				},
+				"rounding": {
+					"values": [
+						"1"
+					]
+				}
+			}
+		},
+		"name": "computerbuy",
+		"partUtilities": {
+			"boxandgraphics": {
+				"PartsUtilities": {
+					"issues": [
+						"box",
+						"graphics"
+					],
+					"utilslist": [
+						{
+							"values": [
+								"all-in-one",
+								"built-in"
+							],
+							"util": 0.09
+						},
+						{
+							"values": [
+								"all-in-one",
+								"low 8G"
+							],
+							"util": 0
+						},
+						{
+							"values": [
+								"all-in-one",
+								"medium 16G"
+							],
+							"util": 0
+						},
+						{
+							"values": [
+								"all-in-one",
+								"high 32G"
+							],
+							"util": 0
+						},
+						{
+							"values": [
+								"small box",
+								"built-in"
+							],
+							"util": 0.12
+						},
+						{
+							"values": [
+								"small box",
+								"low 8G"
+							],
+							"util": 0.15
+						},
+						{
+							"values": [
+								"small box",
+								"medium 16G"
+							],
+							"util": 0.003
+						},
+						{
+							"values": [
+								"small box",
+								"high 32G"
+							],
+							"util": 0.003
+						},
+						{
+							"values": [
+								"tower",
+								"built-in"
+							],
+							"util": 0.09
+						},
+						{
+							"values": [
+								"tower",
+								"low 8G"
+							],
+							"util": 0.18
+						},
+						{
+							"values": [
+								"tower",
+								"medium 16G"
+							],
+							"util": 0.24
+						},
+						{
+							"values": [
+								"tower",
+								"high 32G"
+							],
+							"util": 0.003
+						}
+					]
+				}
+			},
+			"display": {
+				"PartsUtilities": {
+					"issues": [
+						"display"
+					],
+					"utilslist": [
+						{
+							"values": [
+								"24-1K"
+							],
+							"util": 0.08
+						},
+						{
+							"values": [
+								"27-4K"
+							],
+							"util": 0.12
+						},
+						{
+							"values": [
+								"32-4K"
+							],
+							"util": 0.18
+						},
+						{
+							"values": [
+								"27-4K gaming"
+							],
+							"util": 0.18
+						},
+						{
+							"values": [
+								"34-4K gaming"
+							],
+							"util": 0.2
+						}
+					]
+				}
+			},
+			"input": {
+				"PartsUtilities": {
+					"issues": [
+						"input"
+					],
+					"utilslist": [
+						{
+							"values": [
+								"standard keybd,mouse"
+							],
+							"util": 0.04
+						},
+						{
+							"values": [
+								"wireless keybd,mouse"
+							],
+							"util": 0.06
+						},
+						{
+							"values": [
+								"gaming keybd,mouse"
+							],
+							"util": 0.09
+						}
+					]
+				}
+			},
+			"rounding": {
+				"PartsUtilities": {
+					"issues": [
+						"rounding"
+					],
+					"utilslist": [
+						{
+							"values": [
+								"1"
+							],
+							"util": 0.0
+						}
+					]
+				}
+			},
+			"memory": {
+				"PartsUtilities": {
+					"issues": [
+						"main mem",
+						"SSD"
+					],
+					"utilslist": [
+						{
+							"values": [
+								"8GB",
+								"64GB"
+							],
+							"util": 0.005
+						},
+						{
+							"values": [
+								"16GB",
+								"64GB"
+							],
+							"util": 0.01
+						},
+						{
+							"values": [
+								"32GB",
+								"64GB"
+							],
+							"util": 0.01
+						},
+						{
+							"values": [
+								"64GB",
+								"64GB"
+							],
+							"util": 0.01
+						},
+						{
+							"values": [
+								"8GB",
+								"1TB"
+							],
+							"util": 0.015
+						},
+						{
+							"values": [
+								"16GB",
+								"1TB"
+							],
+							"util": 0.02
+						},
+						{
+							"values": [
+								"32GB",
+								"1TB"
+							],
+							"util": 0.02
+						},
+						{
+							"values": [
+								"64GB",
+								"1TB"
+							],
+							"util": 0.02
+						},
+						{
+							"values": [
+								"8GB",
+								"2TB"
+							],
+							"util": 0.03
+						},
+						{
+							"values": [
+								"16GB",
+								"2TB"
+							],
+							"util": 0.04
+						},
+						{
+							"values": [
+								"32GB",
+								"2TB"
+							],
+							"util": 0.04
+						},
+						{
+							"values": [
+								"64GB",
+								"2TB"
+							],
+							"util": 0.04
+						},
+						{
+							"values": [
+								"8GB",
+								"4TB"
+							],
+							"util": 0.04
+						},
+						{
+							"values": [
+								"16GB",
+								"4TB"
+							],
+							"util": 0.05
+						},
+						{
+							"values": [
+								"32GB",
+								"4TB"
+							],
+							"util": 0.07
+						},
+						{
+							"values": [
+								"64GB",
+								"4TB"
+							],
+							"util": 0.09
+						},
+						{
+							"values": [
+								"8GB",
+								"8TB"
+							],
+							"util": 0.06
+						},
+						{
+							"values": [
+								"16GB",
+								"8TB"
+							],
+							"util": 0.07
+						},
+						{
+							"values": [
+								"32GB",
+								"8TB"
+							],
+							"util": 0.08
+						},
+						{
+							"values": [
+								"64GB",
+								"8TB"
+							],
+							"util": 0.10
+						}
+					]
+				}
+			},
+			"price": {
+				"PartsUtilities": {
+					"issues": [
+						"price"
+					],
+					"utilslist": [
+						{
+							"values": [
+								"614"
+							],
+							"util": 0.3
+						},
+						{
+							"values": [
+								"663"
+							],
+							"util": 0.29
+						},
+						{
+							"values": [
+								"716"
+							],
+							"util": 0.28
+						},
+						{
+							"values": [
+								"773"
+							],
+							"util": 0.27
+						},
+						{
+							"values": [
+								"835"
+							],
+							"util": 0.26
+						},
+						{
+							"values": [
+								"902"
+							],
+							"util": 0.25
+						},
+						{
+							"values": [
+								"974"
+							],
+							"util": 0.24
+						},
+						{
+							"values": [
+								"1052"
+							],
+							"util": 0.23
+						},
+						{
+							"values": [
+								"1136"
+							],
+							"util": 0.22
+						},
+						{
+							"values": [
+								"1227"
+							],
+							"util": 0.21
+						},
+						{
+							"values": [
+								"1326"
+							],
+							"util": 0.2
+						},
+						{
+							"values": [
+								"1432"
+							],
+							"util": 0.19
+						},
+						{
+							"values": [
+								"1546"
+							],
+							"util": 0.18
+						},
+						{
+							"values": [
+								"1670"
+							],
+							"util": 0.17
+						},
+						{
+							"values": [
+								"1803"
+							],
+							"util": 0.16
+						},
+						{
+							"values": [
+								"1948"
+							],
+							"util": 0.15
+						},
+						{
+							"values": [
+								"2104"
+							],
+							"util": 0.14
+						},
+						{
+							"values": [
+								"2272"
+							],
+							"util": 0.13
+						},
+						{
+							"values": [
+								"2454"
+							],
+							"util": 0.12
+						},
+						{
+							"values": [
+								"2650"
+							],
+							"util": 0.11
+						},
+						{
+							"values": [
+								"2862"
+							],
+							"util": 0.1
+						},
+						{
+							"values": [
+								"3091"
+							],
+							"util": 0.09
+						},
+						{
+							"values": [
+								"3338"
+							],
+							"util": 0.08
+						},
+						{
+							"values": [
+								"3605"
+							],
+							"util": 0.07
+						},
+						{
+							"values": [
+								"3893"
+							],
+							"util": 0.06
+						},
+						{
+							"values": [
+								"4205"
+							],
+							"util": 0.05
+						},
+						{
+							"values": [
+								"4541"
+							],
+							"util": 0.04
+						},
+						{
+							"values": [
+								"4905"
+							],
+							"util": 0.03
+						},
+						{
+							"values": [
+								"5297"
+							],
+							"util": 0.02
+						}
+					]
+				}
+			}
+		},
+		"reservationBid": {
+			"issuevalues": {
+				"box": "small box",
+				"graphics": "low 8G",
+				"main mem": "8GB",
+				"SSD": "1TB",
+				"display": "32-4K",
+				"input": "gaming keybd,mouse",
+				"price": "1432",
+				"rounding":"1"
+			}
+		}
+	}
+}
Index: /ip/pom.xml
===================================================================
--- /ip/pom.xml	(revision 52)
+++ /ip/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb</groupId>
 	<artifactId>ip</artifactId>
-	<version>2.1.6</version>
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
Index: /issuevalue/pom.xml
===================================================================
--- /issuevalue/pom.xml	(revision 52)
+++ /issuevalue/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb</groupId>
 	<artifactId>issuevalue</artifactId>
-	<version>2.1.6</version>
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
@@ -93,5 +93,5 @@
 			<groupId>tudelft.utilities</groupId>
 			<artifactId>utilities</artifactId>
-			<version>1.2.1</version>
+			<version>1.3.1</version>
 		</dependency>
 
Index: /logconverter/pom.xml
===================================================================
--- /logconverter/pom.xml	(revision 52)
+++ /logconverter/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb</groupId>
 	<artifactId>logconverter</artifactId>
-	<version>2.1.6</version>
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
Index: /opponentmodel/pom.xml
===================================================================
--- /opponentmodel/pom.xml	(revision 52)
+++ /opponentmodel/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb</groupId>
 	<artifactId>opponentmodel</artifactId>
-	<version>2.1.6</version>
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
Index: /party/pom.xml
===================================================================
--- /party/pom.xml	(revision 52)
+++ /party/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb</groupId>
 	<artifactId>party</artifactId>
-	<version>2.1.6</version>
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
@@ -52,5 +52,5 @@
 			<groupId>tudelft.utilities</groupId>
 			<artifactId>utilities</artifactId>
-			<version>1.2.1</version>
+			<version>1.3.1</version>
 		</dependency>
 		<dependency>
Index: /profile/pom.xml
===================================================================
--- /profile/pom.xml	(revision 52)
+++ /profile/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb</groupId>
 	<artifactId>profile</artifactId>
-	<version>2.1.6</version>
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
@@ -42,5 +42,5 @@
 			<groupId>tudelft.utilities</groupId>
 			<artifactId>utilities</artifactId>
-			<version>1.2.1</version>
+			<version>1.3.1</version>
 		</dependency>
 
Index: /profile/src/main/java/geniusweb/profile/DefaultPartialOrdering.java
===================================================================
--- /profile/src/main/java/geniusweb/profile/DefaultPartialOrdering.java	(revision 52)
+++ /profile/src/main/java/geniusweb/profile/DefaultPartialOrdering.java	(revision 53)
@@ -1,7 +1,7 @@
 package geniusweb.profile;
 
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedList;
@@ -10,10 +10,53 @@
 import java.util.Set;
 
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
 import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.annotation.JsonGetter;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.KeyDeserializer;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 
 import geniusweb.issuevalue.Bid;
 import geniusweb.issuevalue.Domain;
+
+/**
+ * Strange that we need to do this. Bid is completely standard. The complication
+ * that this solves is that the keys are places as STRING in the json code
+ * because json allows only strings as key.
+ */
+@SuppressWarnings("serial")
+class BidDeserializer extends KeyDeserializer {
+	private ObjectMapper jackson = new ObjectMapper();
+
+	@Override
+	public Bid deserializeKey(String key, DeserializationContext ctxt)
+			throws IOException {
+		return jackson.readValue(key, Bid.class);
+	}
+
+}
+
+/**
+ * Serializes a Bid to string. Unfortunately by default jackson uses
+ * key.toString() for serializing (rather than
+ * {@link ObjectMapper#writeValueAsString(Object)}).
+ *
+ */
+class BidSerializer extends JsonSerializer<Bid> {
+	private ObjectMapper jackson = new ObjectMapper();
+
+	@Override
+	public void serialize(Bid bid, JsonGenerator gen,
+			SerializerProvider serializers) throws IOException {
+		gen.writeFieldName(jackson.writeValueAsString(bid));
+	}
+
+}
 
 /**
@@ -26,4 +69,5 @@
  * limited anyway.
  */
+@JsonAutoDetect(fieldVisibility = Visibility.ANY, getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE)
 public class DefaultPartialOrdering extends DefaultProfile
 		implements PartialOrdering {
@@ -33,17 +77,14 @@
 	 * other bid.
 	 */
-	private final Map<Bid, Set<Bid>> isBetter;
+	@JsonDeserialize(keyUsing = BidDeserializer.class)
+	@JsonSerialize(keyUsing = BidSerializer.class)
+	private final Map<Bid, Set<Bid>> better;
 
 	/**
-	 * 
-	 * @param name           name of the profile
-	 * @param domain         the {@link Domain}
-	 * @param reservationbid the reservation bid, this is the minimum acceptable
-	 *                       bid
-	 * @param bids           a list of bids that this ordering contains
-	 *                       comparisons for
-	 * @param isbetterList   a list of tuples [bid1index, bid2index]. It
-	 *                       indicates that bids[bid1index] isbetterthan
-	 *                       bids[bid2index].
+	 * @param name           the name for the profile
+	 * @param domain         the {@link Domain} description
+	 * @param reservationbid the reservation {@link Bid}
+	 * @param better         a map with keys = a better bid and value=a less
+	 *                       good bid.
 	 */
 	@JsonCreator
@@ -51,27 +92,14 @@
 			@JsonProperty("domain") Domain domain,
 			@JsonProperty("reservationBid") Bid reservationbid,
-			@JsonProperty("bids") List<Bid> bids,
-			@JsonProperty("better") List<List<Integer>> isbetterList) {
-		this(name, domain, reservationbid, makeBidMap(bids, isbetterList));
-	}
-
-	/**
-	 * @param name           the name for the profile
-	 * @param domain         the {@link Domain} description
-	 * @param reservationbid the reservation {@link Bid}
-	 * @param isBetterMap    a map with keys = a better bid and value=a less
-	 *                       good bid.
-	 */
-	public DefaultPartialOrdering(String name, Domain domain,
-			Bid reservationbid, Map<Bid, Set<Bid>> isBetterMap) {
+			@JsonProperty("better") Map<Bid, Set<Bid>> better) {
 		super(name, domain, reservationbid);
-		this.isBetter = isBetterMap;
+		this.better = better;
 	}
 
 	@Override
 	public boolean isPreferredOrEqual(Bid bid1, Bid bid2) {
-		if (!isBetter.containsKey(bid1))
+		if (!better.containsKey(bid1))
 			return false;
-		return isBetter.get(bid1).contains(bid2);
+		return better.get(bid1).contains(bid2);
 	}
 
@@ -81,16 +109,14 @@
 	 *         or as worse than another bid
 	 */
-	@JsonGetter
 	public List<Bid> getBids() {
 		// FIXME the iteration order may not be guaranteed!
 		Set<Bid> bids = new HashSet<>();
-		for (Bid bid : isBetter.keySet()) {
+		for (Bid bid : better.keySet()) {
 			bids.add(bid);
-			bids.addAll(isBetter.get(bid));
+			bids.addAll(better.get(bid));
 		}
 		return new ArrayList<Bid>(bids);
 	}
 
-	@JsonGetter
 	/**
 	 * 
@@ -103,6 +129,6 @@
 
 		for (Bid bid : bidslist) {
-			if (isBetter.containsKey(bid)) {
-				for (Bid worsebid : isBetter.get(bid)) {
+			if (better.containsKey(bid)) {
+				for (Bid worsebid : better.get(bid)) {
 					betterlist.add(Arrays.asList(bidslist.indexOf(bid),
 							bidslist.indexOf(worsebid)));
@@ -116,27 +142,6 @@
 	@Override
 	public String toString() {
-		return "DefaultPartialOrdering[" + getValuesString() + "," + isBetter
+		return "DefaultPartialOrdering[" + getValuesString() + "," + better
 				+ "]";
-	}
-
-	private static Map<Bid, Set<Bid>> makeBidMap(List<Bid> bids,
-			List<List<Integer>> isBetterList) {
-		Map<Bid, Set<Bid>> betterMap = new HashMap<>();
-
-		for (List<Integer> tuple : isBetterList) {
-			if (tuple.size() != 2) {
-				throw new IllegalArgumentException("Expected tuple but found "
-						+ tuple + "in " + isBetterList);
-			}
-			Bid betterbid = bids.get(tuple.get(0));
-			Set<Bid> map = betterMap.get(betterbid);
-			if (map == null) {
-				map = new HashSet<>();
-				betterMap.put(betterbid, map);
-			}
-			map.add(bids.get(tuple.get(1)));
-		}
-
-		return betterMap;
 	}
 
@@ -145,6 +150,5 @@
 		final int prime = 31;
 		int result = super.hashCode();
-		result = prime * result
-				+ ((isBetter == null) ? 0 : isBetter.hashCode());
+		result = prime * result + ((better == null) ? 0 : better.hashCode());
 		return result;
 	}
@@ -159,8 +163,8 @@
 			return false;
 		DefaultPartialOrdering other = (DefaultPartialOrdering) obj;
-		if (isBetter == null) {
-			if (other.isBetter != null)
+		if (better == null) {
+			if (other.better != null)
 				return false;
-		} else if (!isBetter.equals(other.isBetter))
+		} else if (!better.equals(other.better))
 			return false;
 		return true;
Index: /profile/src/main/java/geniusweb/profile/utilityspace/LinearAdditiveUtilitySpace.java
===================================================================
--- /profile/src/main/java/geniusweb/profile/utilityspace/LinearAdditiveUtilitySpace.java	(revision 52)
+++ /profile/src/main/java/geniusweb/profile/utilityspace/LinearAdditiveUtilitySpace.java	(revision 53)
@@ -49,12 +49,12 @@
 	 * @param domain  the {@link Domain} in which this profile is defined.
 	 * @param name    the name of this profile. Must be simple name (a-Z, 0-9)
-	 * @param utils   a map with key: issue names (String) and value: the values
+	 * @param issueUtilities   a map with key: issue names (String) and value: the values
 	 *                for that issue. There MUST NOT be a null issue. All values
 	 *                MUST NOT be null.
-	 * @param weights the weight of each issue in the computation of the
+	 * @param issueWeights the weight of each issue in the computation of the
 	 *                weighted sum. The issues must be the same as those in the
 	 *                utils map. All weights MUST NOT be null. The weights MUST
 	 *                sum to 1.
-	 * @param resBid  the reservation bid. Only bids that are
+	 * @param reservationBid  the reservation bid. Only bids that are
 	 *                {@link #isPreferredOrEqual(Bid, Bid)} should be accepted.
 	 *                Can be null, meaning that there is no reservation bid and
@@ -66,31 +66,26 @@
 	public LinearAdditiveUtilitySpace(@JsonProperty("domain") Domain domain,
 			@JsonProperty("name") String name,
-			@JsonProperty("issueUtilities") Map<String, ValueSetUtilities> utils,
-			@JsonProperty("issueWeights") Map<String, BigDecimal> weights,
-			@JsonProperty("reservationBid") Bid resBid) {
-		this.domain = domain;
-		this.name = name;
-		this.reservationBid = resBid;
-		this.issueUtilities.putAll(utils);
-		this.issueWeights.putAll(weights);
+			@JsonProperty("issueUtilities") Map<String, ValueSetUtilities> issueUtilities,
+			@JsonProperty("issueWeights") Map<String, BigDecimal> issueWeights,
+			@JsonProperty("reservationBid") Bid reservationBid) {
 
 		if (domain == null) {
 			throw new NullPointerException("domain=null");
 		}
-		if (utils == null) {
+		if (issueUtilities == null) {
 			throw new NullPointerException("utils=null");
 		}
-		if (weights == null) {
+		if (issueWeights == null) {
 			throw new NullPointerException("weights=null");
 		}
-		if (utils.values().contains(null)) {
+		if (issueUtilities.values().contains(null)) {
 			throw new NullPointerException(
 					"One of the ValueSetUtilities in issueUtilitiesis null:"
-							+ utils);
-		}
-		if (weights.values().contains(null)) {
+							+ issueUtilities);
+		}
+		if (issueWeights.values().contains(null)) {
 			throw new NullPointerException("One of the weights is null");
 		}
-		if (utils.keySet().contains(null)) {
+		if (issueUtilities.keySet().contains(null)) {
 			throw new NullPointerException("One of the issue names is null");
 		}
@@ -99,14 +94,14 @@
 					"Name must be simple (a-Z, 0-9) but got " + name);
 		}
-		if (!(utils.keySet().equals(domain.getIssues()))) {
+		if (!(issueUtilities.keySet().equals(domain.getIssues()))) {
 			throw new IllegalArgumentException(
 					"The issues in  utilityspace and domain do not match: utilityspace has issues "
-							+ utils.keySet() + " but domain contains "
+							+ issueUtilities.keySet() + " but domain contains "
 							+ domain.getIssues());
 		}
-		if (!(weights.keySet().equals(domain.getIssues()))) {
+		if (!(issueWeights.keySet().equals(domain.getIssues()))) {
 			throw new IllegalArgumentException(
 					"The issues in weights and domain do not match: weights has "
-							+ weights.keySet() + " but domain contains "
+							+ issueWeights.keySet() + " but domain contains "
 							+ domain.getIssues());
 		}
@@ -118,17 +113,24 @@
 		}
 
-		BigDecimal sum = weights.values().stream().reduce(BigDecimal.ZERO,
+		BigDecimal sum = issueWeights.values().stream().reduce(BigDecimal.ZERO,
 				BigDecimal::add);
 		if (BigDecimal.ONE.compareTo(sum) != 0) { // equals does NOT work for
 													// comparing BigDecimals!!
 			throw new IllegalArgumentException("The sum of the weights ("
-					+ weights.values() + ") must be 1");
-		}
-		if (resBid != null) {
-			String message = domain.isFitting(resBid);
+					+ issueWeights.values() + ") must be 1");
+		}
+		if (reservationBid != null) {
+			String message = domain.isFitting(reservationBid);
 			if (message != null)
 				throw new IllegalArgumentException(
 						"reservationbid is not fitting domain: " + message);
 		}
+
+		this.domain = domain;
+		this.name = name;
+		this.reservationBid = reservationBid;
+		this.issueUtilities.putAll(issueUtilities);
+		this.issueWeights.putAll(issueWeights);
+
 	}
 
Index: /profile/src/main/java/geniusweb/profile/utilityspace/PartsUtilities.java
===================================================================
--- /profile/src/main/java/geniusweb/profile/utilityspace/PartsUtilities.java	(revision 52)
+++ /profile/src/main/java/geniusweb/profile/utilityspace/PartsUtilities.java	(revision 53)
@@ -7,4 +7,5 @@
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
@@ -13,6 +14,9 @@
 import com.fasterxml.jackson.annotation.JsonProperty;
 
+import geniusweb.issuevalue.Domain;
 import geniusweb.issuevalue.Value;
 import geniusweb.issuevalue.ValueSet;
+import tudelft.utilities.immutablelist.ImmutableList;
+import tudelft.utilities.immutablelist.Outer;
 
 /**
@@ -41,14 +45,15 @@
 	 * 
 	 * @param issues list of issues
-	 * @param utils  with keys: list of values and value: utility value for that
-	 *               list of values. All list-of-values missing from the map are
-	 *               assumed to have utility 0. This includes partial bids where
-	 *               list-of-values contain null objects.
+	 * @param utils  with keys: list of values, one for each issue in issues (in
+	 *               the order of the list of issues) and value: utility value
+	 *               for that list of values. All list-of-values missing from
+	 *               the map are assumed to have utility 0. This includes
+	 *               partial bids where list-of-values contain null objects.
 	 */
 	public PartsUtilities(List<String> issues,
 			Map<ProductOfValue, BigDecimal> utils) {
-		if (issues == null || utils == null) {
+		if (issues == null || utils == null || issues.isEmpty()) {
 			throw new IllegalArgumentException(
-					"issues and utils must be not null");
+					"issues and utils must be not null or empty");
 		}
 
@@ -149,4 +154,25 @@
 	}
 
+	/**
+	 * Check that all needed values have been set to a utility.
+	 * 
+	 * @param domain the domain for which this should be parts. We need this to
+	 *               check that the values used are actually from the dmoain
+	 * @throws IllegalArgumentException if a problem is found
+	 */
+	public void checkComplete(Domain domain) {
+
+		final List<ImmutableList<Value>> valuesofissues = issues.stream()
+				.map(iss -> domain.getValues(iss)).collect(Collectors.toList());
+
+		// check that all possible value combinations are handled
+		for (ImmutableList<Value> vals : new Outer<Value>(valuesofissues)) {
+			ProductOfValue expected = ProductOfValue.create(vals);
+			if (!utilities.containsKey(expected))
+				throw new IllegalArgumentException(
+						"Values " + vals + " must be assigned a utility");
+		}
+	}
+
 	@Override
 	public boolean equals(Object obj) {
@@ -176,10 +202,15 @@
 	}
 
+	/**
+	 * Check that the set of utilities is complete and no weird utility values
+	 * were used
+	 * 
+	 */
 	private void checkUtilities() {
-		if (utilities.values().stream()
-				.anyMatch(v -> v == null || v.compareTo(BigDecimal.ZERO) < 0
-						|| v.compareTo(BigDecimal.ONE) > 0)) {
-			throw new IllegalArgumentException(
-					"part weights must all be in [0,1]");
+		for (BigDecimal value : utilities.values()) {
+			if (value == null || value.compareTo(BigDecimal.ZERO) < 0
+					|| value.compareTo(BigDecimal.ONE) > 0)
+				throw new IllegalArgumentException(
+						"part weights must all be in [0,1] but found " + value);
 		}
 	}
@@ -196,5 +227,4 @@
 
 	/**
-	 * 
 	 * @return the max utility of all values contained here.
 	 */
Index: /profile/src/main/java/geniusweb/profile/utilityspace/ProductOfValue.java
===================================================================
--- /profile/src/main/java/geniusweb/profile/utilityspace/ProductOfValue.java	(revision 52)
+++ /profile/src/main/java/geniusweb/profile/utilityspace/ProductOfValue.java	(revision 53)
@@ -2,4 +2,5 @@
 
 import java.util.ArrayList;
+import java.util.LinkedList;
 import java.util.List;
 
@@ -10,7 +11,8 @@
 
 import geniusweb.issuevalue.Value;
+import tudelft.utilities.immutablelist.ImmutableList;
 
 /**
- * A {@link Value} that is the product of some existing values
+ * A {@link Value} that is a list of a number of values in the space
  */
 @JsonDeserialize(using = JsonDeserializer.None.class)
@@ -24,4 +26,12 @@
 	public ProductOfValue(List<Value> newvals) {
 		values.addAll(newvals);
+	}
+
+	public static ProductOfValue create(ImmutableList<Value> vals) {
+		List<Value> list = new LinkedList<>();
+		for (Value val : vals) {
+			list.add(val);
+		}
+		return new ProductOfValue(list);
 	}
 
Index: /profile/src/main/java/geniusweb/profile/utilityspace/SumOfGroupsUtilitySpace.java
===================================================================
--- /profile/src/main/java/geniusweb/profile/utilityspace/SumOfGroupsUtilitySpace.java	(revision 52)
+++ /profile/src/main/java/geniusweb/profile/utilityspace/SumOfGroupsUtilitySpace.java	(revision 53)
@@ -3,4 +3,5 @@
 import java.math.BigDecimal;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -51,11 +52,14 @@
 	 * @param partutils a map with key: part names (String) and value: the
 	 *                  {@link PartsUtilities} for that part. There MUST NOT be
-	 *                  a null part name. All values MUST NOT be null. The
-	 *                  PartsUtilities must match the
+	 *                  a null part name. The PartsUtilities must be complete:
+	 *                  all possible combinations of all parts must cover all
+	 *                  combinations of issue values and assign a proper utility
+	 *                  in [0,1].
 	 * @param resBid    the reservation bid. Only bids that are
 	 *                  {@link #isPreferredOrEqual(Bid, Bid)} should be
 	 *                  accepted. Can be null, meaning that there is no
 	 *                  reservation bid and any agreement is better than no
-	 *                  agreement.
+	 *                  agreement. Read the note about partial bids in
+	 *                  {@link #getUtility(Bid)}.
 	 * @throws NullPointerException     if values are incorrectly null.
 	 * @throws IllegalArgumentException if preconditions not met.
@@ -69,34 +73,47 @@
 		this.partUtilities.putAll(partutils);
 
-		String err = checkParts();
-		if (err != null) {
-			throw new IllegalArgumentException(err);
-		}
-	}
-
-	/**
-	 * Copy settings in las. This will have the exact same utilities as the las
-	 * but this then gives you the power to change it into a non-linear space by
-	 * grouping.
+		checkParts();
+	}
+
+	/**
+	 * Copy settings in las. This will have the exact same utilities as the
+	 * {@link LinearAdditive} space but this then gives you the power to change
+	 * it into a non-linear space by grouping.
 	 * 
 	 * @param las the {@link LinearAdditive} to be converted/copied.
 	 * 
 	 */
-	public SumOfGroupsUtilitySpace(LinearAdditive las) {
-		this(las.getDomain(), las.getName(), las2parts(las),
-				las.getReservationBid());
-	}
-
+	public static SumOfGroupsUtilitySpace create(LinearAdditive las) {
+		return new SumOfGroupsUtilitySpace(las.getDomain(), las.getName(),
+				las2parts(las), las.getReservationBid());
+	}
+
+	/**
+	 * 
+	 * @return all partsutilities
+	 */
+	public Map<String, PartsUtilities> getPartsUtilities() {
+		return Collections.unmodifiableMap(partUtilities);
+	}
+
+	/**
+	 * 
+	 * Note: If bid is partial for a group, the utility of that group can not be
+	 * evaluated and is set to 0.
+	 * 
+	 */
 	@Override
 	public BigDecimal getUtility(Bid bid) {
-		return partUtilities.keySet().stream()
-				.map(partname -> util(partname, bid))
-				.reduce(BigDecimal.ZERO, BigDecimal::add);
+		BigDecimal sum = BigDecimal.ZERO;
+		for (String partname : partUtilities.keySet()) {
+			sum = sum.add(util(partname, bid));
+		}
+		return sum;
 	}
 
 	@Override
 	public String toString() {
-		return "PartialAdditive[" + partUtilities + "," + getReservationBid()
-				+ "]";
+		return "SumOfGroupsUtilitySpace[" + getName() + "," + partUtilities
+				+ "," + getReservationBid() + "]";
 	}
 
@@ -235,5 +252,5 @@
 	 * @return error string, or null if no error (all parts seem fine)
 	 */
-	private String checkParts() {
+	private void checkParts() throws IllegalArgumentException {
 
 		Set<String> collectedIssues = new HashSet<>();
@@ -241,5 +258,6 @@
 			PartsUtilities part = partUtilities.get(partname);
 			if (part == null) {
-				return "partUtilities " + partname + " contains null value";
+				throw new IllegalArgumentException(
+						"partUtilities " + partname + " contains null value");
 			}
 			List<String> issues = part.getIssues();
@@ -247,17 +265,21 @@
 			intersection.retainAll(issues);
 			if (!intersection.isEmpty()) {
-				return "issues " + intersection + " occur multiple times";
-			}
+				throw new IllegalArgumentException(
+						"issues " + intersection + " occur multiple times");
+			}
+			part.checkComplete(getDomain());
 			collectedIssues.addAll(issues);
 		}
 
 		if (!collectedIssues.equals(getDomain().getIssues())) {
-			return "parts must cover the domain issues "
-					+ getDomain().getIssues() + " but cover " + collectedIssues;
+			throw new IllegalArgumentException(
+					"parts must cover the domain issues "
+							+ getDomain().getIssues() + " but cover "
+							+ collectedIssues);
 		}
 		if (getMaxUtility().compareTo(BigDecimal.ONE) > 0) {
-			return "Max utility of the space exceedds 1";
-		}
-		return null;
+			throw new IllegalArgumentException(
+					"Max utility of the space exceedds 1");
+		}
 
 	}
Index: /profile/src/test/java/geniusweb/profile/DefaultPartialOrderingTest.java
===================================================================
--- /profile/src/test/java/geniusweb/profile/DefaultPartialOrderingTest.java	(revision 52)
+++ /profile/src/test/java/geniusweb/profile/DefaultPartialOrderingTest.java	(revision 53)
@@ -27,15 +27,17 @@
 import tudelft.utilities.junit.GeneralTests;
 
-public class DefaultPartialOrderingTest extends GeneralTests<DefaultPartialOrdering> {
+public class DefaultPartialOrderingTest
+		extends GeneralTests<DefaultPartialOrdering> {
 
-	private final String serialized = "{\"DefaultPartialOrdering\":{" + "\"name\":\"ordering1\","
+	private final String serialized = "{\"DefaultPartialOrdering\":{"
+			+ "\"name\":\"ordering1\","
 			+ "\"domain\":{\"name\":\"dom1\",\"issuesValues\":{\"iss1\":{\"values\":[\"1\",\"2\",\"3\"]}}},"
-			+ "\"reservationBid\":{\"issuevalues\":{\"iss1\":\"1\"}},"
-			+ "\"bids\":[{\"issuevalues\":{\"iss1\":\"1\"}},{\"issuevalues\":{\"iss1\":\"3\"}},{\"issuevalues\":{\"iss1\":\"2\"}}],"
-			+ "\"better\":[[0,2],[1,2]]}}";
+			+ "\"better\":{\"{\\\"issuevalues\\\":{\\\"iss1\\\":\\\"1\\\"}}\":[{\"issuevalues\":{\"iss1\":\"2\"}}],\"{\\\"issuevalues\\\":{\\\"iss1\\\":\\\"3\\\"}}\":[{\"issuevalues\":{\"iss1\":\"2\"}}]},"
+			+ "\"reservationbid\":{\"issuevalues\":{\"iss1\":\"1\"}}}}";
 
 	// we need real (not mock) values otherwise serializer crashes..
 	private String issue1 = "iss1";
-	private DefaultPartialOrdering ordering1, ordering1b, ordering2, ordering3, ordering4, ordering5;
+	private DefaultPartialOrdering ordering1, ordering1b, ordering2, ordering3,
+			ordering4, ordering5;
 
 	private Bid bid1, bid2, bid3;
@@ -47,5 +49,6 @@
 		DiscreteValue val2 = new DiscreteValue("2");
 		DiscreteValue val3 = new DiscreteValue("3");
-		issues.put(issue1, new DiscreteValueSet(new HashSet<>(Arrays.asList(val1, val2, val3))));
+		issues.put(issue1, new DiscreteValueSet(
+				new HashSet<>(Arrays.asList(val1, val2, val3))));
 		Domain domain1 = new Domain("dom1", issues);
 		Domain domain2 = new Domain("dom2", issues);
@@ -62,10 +65,16 @@
 		map2.put(bid3, new HashSet<Bid>(Arrays.asList(bid1)));
 
-		ordering1 = new DefaultPartialOrdering("ordering1", domain1, bid1, map1);
-		ordering1b = new DefaultPartialOrdering("ordering1", domain1, bid1, map1);
-		ordering2 = new DefaultPartialOrdering("ordering2", domain1, bid1, map1);
-		ordering3 = new DefaultPartialOrdering("ordering1", domain2, bid1, map1);
-		ordering4 = new DefaultPartialOrdering("ordering1", domain1, bid2, map1);
-		ordering5 = new DefaultPartialOrdering("ordering1", domain1, bid1, map2);
+		ordering1 = new DefaultPartialOrdering("ordering1", domain1, bid1,
+				map1);
+		ordering1b = new DefaultPartialOrdering("ordering1", domain1, bid1,
+				map1);
+		ordering2 = new DefaultPartialOrdering("ordering2", domain1, bid1,
+				map1);
+		ordering3 = new DefaultPartialOrdering("ordering1", domain2, bid1,
+				map1);
+		ordering4 = new DefaultPartialOrdering("ordering1", domain1, bid2,
+				map1);
+		ordering5 = new DefaultPartialOrdering("ordering1", domain1, bid1,
+				map2);
 
 	}
@@ -73,5 +82,6 @@
 	@Override
 	public List<List<DefaultPartialOrdering>> getGeneralTestData() {
-		return Arrays.asList(Arrays.asList(ordering1, ordering1b), Arrays.asList(ordering2), Arrays.asList(ordering3),
+		return Arrays.asList(Arrays.asList(ordering1, ordering1b),
+				Arrays.asList(ordering2), Arrays.asList(ordering3),
 				Arrays.asList(ordering4), Arrays.asList(ordering5));
 	}
@@ -79,5 +89,6 @@
 	@Override
 	public List<String> getGeneralTestStrings() {
-		return Arrays.asList("DefaultPartialOrdering.*", "DefaultPartialOrdering.*", "DefaultPartialOrdering.*",
+		return Arrays.asList("DefaultPartialOrdering.*",
+				"DefaultPartialOrdering.*", "DefaultPartialOrdering.*",
 				"DefaultPartialOrdering.*", "DefaultPartialOrdering.*");
 	}
Index: /profile/src/test/java/geniusweb/profile/utilityspace/LinearAdditiveTest.java
===================================================================
--- /profile/src/test/java/geniusweb/profile/utilityspace/LinearAdditiveTest.java	(revision 52)
+++ /profile/src/test/java/geniusweb/profile/utilityspace/LinearAdditiveTest.java	(revision 53)
@@ -22,4 +22,5 @@
 
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.exc.ValueInstantiationException;
 
 import geniusweb.issuevalue.Bid;
@@ -309,3 +310,18 @@
 	}
 
+	/**
+	 * This should throw because computersell-domainmismatch has a mismatch: it
+	 * has "high 32G" as graphics option, but the utilities have no value for
+	 * that. Instead it talks about "high 24G"
+	 */
+	@Test(expected = ValueInstantiationException.class)
+	public void testIsFitting() throws IOException {
+		String profile = new String(
+				Files.readAllBytes(Paths.get(
+						"src/test/resources/computersell-domainmismatch.json")),
+				StandardCharsets.UTF_8);
+		UtilitySpace space = jackson.readValue(profile, UtilitySpace.class);
+
+	}
+
 }
Index: /profile/src/test/java/geniusweb/profile/utilityspace/SumOfGroupsUtilitySpaceTest.java
===================================================================
--- /profile/src/test/java/geniusweb/profile/utilityspace/SumOfGroupsUtilitySpaceTest.java	(revision 52)
+++ /profile/src/test/java/geniusweb/profile/utilityspace/SumOfGroupsUtilitySpaceTest.java	(revision 53)
@@ -21,6 +21,9 @@
 import org.junit.Test;
 
+import com.fasterxml.jackson.core.JsonParseException;
 import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonMappingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.exc.ValueInstantiationException;
 
 import geniusweb.issuevalue.Bid;
@@ -34,6 +37,8 @@
 import tudelft.utilities.immutablelist.ImmutableList;
 import tudelft.utilities.immutablelist.Outer;
-
-public class SumOfGroupsUtilitySpaceTest {
+import tudelft.utilities.junit.GeneralTests;
+
+public class SumOfGroupsUtilitySpaceTest
+		extends GeneralTests<SumOfGroupsUtilitySpace> {
 	private final ObjectMapper jackson = new ObjectMapper();
 	private SumOfGroupsUtilitySpace pa1;
@@ -49,6 +54,7 @@
 
 	private Domain domain;
-	private PartsUtilities putils12, putils3;
+	private PartsUtilities putils12, putils3, putils3b;
 	private String serialized = "{\"SumOfGroupsUtilitySpace\":{\"domain\":{\"name\":\"domain\",\"issuesValues\":{\"issue3\":{\"values\":[\"low\",\"high\"]},\"issue2\":{\"values\":[\"low\",\"high\"]},\"issue1\":{\"values\":[\"low\",\"high\"]}}},\"name\":\"testspace\",\"partUtilities\":{\"1and2\":{\"PartsUtilities\":{\"issues\":[\"issue1\",\"issue2\"],\"utilslist\":[{\"values\":[\"low\",\"low\"],\"util\":0.16},{\"values\":[\"high\",\"high\"],\"util\":0.72},{\"values\":[\"low\",\"high\"],\"util\":0.16},{\"values\":[\"high\",\"low\"],\"util\":0.16}]}},\"3\":{\"PartsUtilities\":{\"issues\":[\"issue3\"],\"utilslist\":[{\"values\":[\"low\"],\"util\":0.16},{\"values\":[\"high\"],\"util\":0.14}]}}},\"reservationbid\":{\"issuevalues\":{\"issue1\":\"high\"}}}}";
+	private SumOfGroupsUtilitySpace sog1, sog1a, sog2, sog3;
 
 	@Before
@@ -78,4 +84,41 @@
 		putils3 = new PartsUtilities(Arrays.asList(iss3), utils3);
 
+		Map<ProductOfValue, BigDecimal> utils3b = new HashMap<>();
+		utils3b.put(new ProductOfValue(Arrays.asList(lo)), N07.multiply(N02));
+		utils3b.put(new ProductOfValue(Arrays.asList(hi)), N08.multiply(N02));
+		putils3b = new PartsUtilities(Arrays.asList(iss3), utils3b);
+
+		HashMap<String, PartsUtilities> partutils = new HashMap<>();
+		partutils.put("1and2", putils12);
+		partutils.put("3", putils3);
+
+		sog1 = new SumOfGroupsUtilitySpace(domain, "testspace", partutils,
+				resBid);
+		sog1a = new SumOfGroupsUtilitySpace(domain, "testspace", partutils,
+				resBid);
+		sog2 = new SumOfGroupsUtilitySpace(domain, "testspace2", partutils,
+				resBid);
+
+		// reuse partutils. Also checks that the values have been copied
+		partutils = new HashMap<>();
+		partutils.put("1and2", putils12);
+		partutils.put("3", putils3b);
+		sog3 = new SumOfGroupsUtilitySpace(domain, "testspace", partutils,
+				resBid);
+
+	}
+
+	@Override
+	public List<List<SumOfGroupsUtilitySpace>> getGeneralTestData() {
+		return Arrays.asList(Arrays.asList(sog1, sog1a), Arrays.asList(sog2),
+				Arrays.asList(sog3));
+	}
+
+	@Override
+	public List<String> getGeneralTestStrings() {
+		return Arrays.asList(
+				"SumOfGroupsUtilitySpace.*testspace.*1and2.*PartsUtilities.*issue1.*issue2.*3.*PartsUtilities.*Bid.*issue1.*high.*",
+				"SumOfGroupsUtilitySpace.*testspace2.*1and2.*PartsUtilities.*issue1.*issue2.*3.*PartsUtilities.*Bid.*issue1.*high.*",
+				"SumOfGroupsUtilitySpace.*testspace.*1and2.*PartsUtilities.*issue1.*issue2.*3.*PartsUtilities.*Bid.*issue1.*high.*");
 	}
 
@@ -161,5 +204,5 @@
 		LinearAdditiveUtilitySpace las = jackson.readValue(profile,
 				LinearAdditiveUtilitySpace.class);
-		SumOfGroupsUtilitySpace pas = new SumOfGroupsUtilitySpace(las);
+		SumOfGroupsUtilitySpace pas = SumOfGroupsUtilitySpace.create(las);
 		checkUtilitiesAllEqual(las, pas);
 		System.out.println("Generated partial profile:\n" + pas);
@@ -178,5 +221,5 @@
 		LinearAdditiveUtilitySpace las = jackson.readValue(profile,
 				LinearAdditiveUtilitySpace.class);
-		SumOfGroupsUtilitySpace pas = new SumOfGroupsUtilitySpace(las);
+		SumOfGroupsUtilitySpace pas = SumOfGroupsUtilitySpace.create(las);
 		pas = pas.group(Arrays.asList("Food", "Drinks"), "food&drinks");
 		checkUtilitiesAllEqual(las, pas);
@@ -235,4 +278,50 @@
 	}
 
+	@Test
+	public void loadComputerBuy() throws IOException {
+		UtilitySpace space = jackson.readValue(
+				getClass().getResourceAsStream("/computerbuy.json"),
+				UtilitySpace.class);
+		assertTrue(space instanceof SumOfGroupsUtilitySpace);
+
+	}
+
+	@Test
+	public void loadComputerSell() throws IOException {
+		UtilitySpace space = jackson.readValue(
+				getClass().getResourceAsStream("/computersell.json"),
+				UtilitySpace.class);
+		assertTrue(space instanceof LinearAdditiveUtilitySpace);
+
+	}
+
+	@Test(expected = ValueInstantiationException.class)
+	public void loadComputerBuyIncomplete() throws IOException {
+		UtilitySpace space = jackson.readValue(
+				getClass().getResourceAsStream("/computerbuyincomplete.json"),
+				UtilitySpace.class);
+		assertTrue(space instanceof LinearAdditiveUtilitySpace);
+
+	}
+
+	@Test
+	public void loadComputerBuyNumbers() throws IOException {
+		UtilitySpace space = jackson.readValue(
+				getClass().getResourceAsStream("/computerbuynumbers.json"),
+				UtilitySpace.class);
+		assertTrue(space instanceof SumOfGroupsUtilitySpace);
+
+	}
+
+	@Test
+	public void testComputerBuyUtility()
+			throws JsonParseException, JsonMappingException, IOException {
+		SumOfGroupsUtilitySpace space = jackson.readValue(
+				getClass().getResourceAsStream("/computerbuy.json"),
+				SumOfGroupsUtilitySpace.class);
+		Bid bid = space.getReservationBid();
+		assertEquals(new BigDecimal("0.625"), space.getUtility(bid));
+	}
+
 	/************************ PRIVATE FUNCTIONS *******************/
 
Index: /profile/src/test/resources/computerbuy.json
===================================================================
--- /profile/src/test/resources/computerbuy.json	(revision 53)
+++ /profile/src/test/resources/computerbuy.json	(revision 53)
@@ -0,0 +1,618 @@
+{
+	"SumOfGroupsUtilitySpace": {
+		"domain": {
+			"name": "computer",
+			"issuesValues": {
+				"box": {
+					"values": [
+						"all-in-one",
+						"small box",
+						"tower"
+					]
+				},
+				"graphics": {
+					"values": [
+						"built-in",
+						"low 8G",
+						"medium 16G",
+						"high 32G"
+					]
+				},
+				"main mem": {
+					"values": [
+						"8GB",
+						"16GB",
+						"32GB",
+						"64GB"
+					]
+				},
+				"SSD": {
+					"values": [
+						"64GB",
+						"1TB",
+						"2TB",
+						"4TB",
+						"8TB"
+					]
+				},
+				"display": {
+					"values": [
+						"24-1K",
+						"27-4K",
+						"32-4K",
+						"27-4K gaming",
+						"34-4K gaming"
+					]
+				},
+				"input": {
+					"values": [
+						"standard keybd,mouse",
+						"wireless keybd,mouse",
+						"gaming keybd,mouse"
+					]
+				},
+				"price": {
+					"values": [
+						"614",
+						"663",
+						"716",
+						"773",
+						"835",
+						"902",
+						"974",
+						"1052",
+						"1136",
+						"1227",
+						"1326",
+						"1432",
+						"1546",
+						"1670",
+						"1803",
+						"1948",
+						"2104",
+						"2272",
+						"2454",
+						"2650",
+						"2862",
+						"3091",
+						"3338",
+						"3605",
+						"3893",
+						"4205",
+						"4541",
+						"4905",
+						"5297"
+					]
+				},
+				"rounding": {
+					"values": [
+						"1"
+					]
+				}
+			}
+		},
+		"name": "computerbuy",
+		"partUtilities": {
+			"boxandgraphics": {
+				"PartsUtilities": {
+					"issues": [
+						"box",
+						"graphics"
+					],
+					"utilslist": [
+						{
+							"values": [
+								"all-in-one",
+								"built-in"
+							],
+							"util": 0.09
+						},
+						{
+							"values": [
+								"all-in-one",
+								"low 8G"
+							],
+							"util": 0
+						},
+						{
+							"values": [
+								"all-in-one",
+								"medium 16G"
+							],
+							"util": 0
+						},
+						{
+							"values": [
+								"all-in-one",
+								"high 32G"
+							],
+							"util": 0
+						},
+						{
+							"values": [
+								"small box",
+								"built-in"
+							],
+							"util": 0.12
+						},
+						{
+							"values": [
+								"small box",
+								"low 8G"
+							],
+							"util": 0.15
+						},
+						{
+							"values": [
+								"small box",
+								"medium 16G"
+							],
+							"util": 0.003
+						},
+						{
+							"values": [
+								"small box",
+								"high 32G"
+							],
+							"util": 0.003
+						},
+						{
+							"values": [
+								"tower",
+								"built-in"
+							],
+							"util": 0.09
+						},
+						{
+							"values": [
+								"tower",
+								"low 8G"
+							],
+							"util": 0.18
+						},
+						{
+							"values": [
+								"tower",
+								"medium 16G"
+							],
+							"util": 0.24
+						},
+						{
+							"values": [
+								"tower",
+								"high 32G"
+							],
+							"util": 0.003
+						}
+					]
+				}
+			},
+			"display": {
+				"PartsUtilities": {
+					"issues": [
+						"display"
+					],
+					"utilslist": [
+						{
+							"values": [
+								"24-1K"
+							],
+							"util": 0.08
+						},
+						{
+							"values": [
+								"27-4K"
+							],
+							"util": 0.12
+						},
+						{
+							"values": [
+								"32-4K"
+							],
+							"util": 0.18
+						},
+						{
+							"values": [
+								"27-4K gaming"
+							],
+							"util": 0.18
+						},
+						{
+							"values": [
+								"34-4K gaming"
+							],
+							"util": 0.2
+						}
+					]
+				}
+			},
+			"input": {
+				"PartsUtilities": {
+					"issues": [
+						"input"
+					],
+					"utilslist": [
+						{
+							"values": [
+								"standard keybd,mouse"
+							],
+							"util": 0.04
+						},
+						{
+							"values": [
+								"wireless keybd,mouse"
+							],
+							"util": 0.06
+						},
+						{
+							"values": [
+								"gaming keybd,mouse"
+							],
+							"util": 0.09
+						}
+					]
+				}
+			},
+			"rounding": {
+				"PartsUtilities": {
+					"issues": [
+						"rounding"
+					],
+					"utilslist": [
+						{
+							"values": [
+								"1"
+							],
+							"util": 0.0
+						}
+					]
+				}
+			},
+			"memory": {
+				"PartsUtilities": {
+					"issues": [
+						"main mem",
+						"SSD"
+					],
+					"utilslist": [
+						{
+							"values": [
+								"8GB",
+								"64GB"
+							],
+							"util": 0.005
+						},
+						{
+							"values": [
+								"16GB",
+								"64GB"
+							],
+							"util": 0.01
+						},
+						{
+							"values": [
+								"32GB",
+								"64GB"
+							],
+							"util": 0.01
+						},
+						{
+							"values": [
+								"64GB",
+								"64GB"
+							],
+							"util": 0.01
+						},
+						{
+							"values": [
+								"8GB",
+								"1TB"
+							],
+							"util": 0.015
+						},
+						{
+							"values": [
+								"16GB",
+								"1TB"
+							],
+							"util": 0.02
+						},
+						{
+							"values": [
+								"32GB",
+								"1TB"
+							],
+							"util": 0.02
+						},
+						{
+							"values": [
+								"64GB",
+								"1TB"
+							],
+							"util": 0.02
+						},
+						{
+							"values": [
+								"8GB",
+								"2TB"
+							],
+							"util": 0.03
+						},
+						{
+							"values": [
+								"16GB",
+								"2TB"
+							],
+							"util": 0.04
+						},
+						{
+							"values": [
+								"32GB",
+								"2TB"
+							],
+							"util": 0.04
+						},
+						{
+							"values": [
+								"64GB",
+								"2TB"
+							],
+							"util": 0.04
+						},
+						{
+							"values": [
+								"8GB",
+								"4TB"
+							],
+							"util": 0.04
+						},
+						{
+							"values": [
+								"16GB",
+								"4TB"
+							],
+							"util": 0.05
+						},
+						{
+							"values": [
+								"32GB",
+								"4TB"
+							],
+							"util": 0.07
+						},
+						{
+							"values": [
+								"64GB",
+								"4TB"
+							],
+							"util": 0.09
+						},
+						{
+							"values": [
+								"8GB",
+								"8TB"
+							],
+							"util": 0.06
+						},
+						{
+							"values": [
+								"16GB",
+								"8TB"
+							],
+							"util": 0.07
+						},
+						{
+							"values": [
+								"32GB",
+								"8TB"
+							],
+							"util": 0.08
+						},
+						{
+							"values": [
+								"64GB",
+								"8TB"
+							],
+							"util": 0.10
+						}
+					]
+				}
+			},
+			"price": {
+				"PartsUtilities": {
+					"issues": [
+						"price"
+					],
+					"utilslist": [
+						{
+							"values": [
+								"614"
+							],
+							"util": 0.3
+						},
+						{
+							"values": [
+								"663"
+							],
+							"util": 0.29
+						},
+						{
+							"values": [
+								"716"
+							],
+							"util": 0.28
+						},
+						{
+							"values": [
+								"773"
+							],
+							"util": 0.27
+						},
+						{
+							"values": [
+								"835"
+							],
+							"util": 0.26
+						},
+						{
+							"values": [
+								"902"
+							],
+							"util": 0.25
+						},
+						{
+							"values": [
+								"974"
+							],
+							"util": 0.24
+						},
+						{
+							"values": [
+								"1052"
+							],
+							"util": 0.23
+						},
+						{
+							"values": [
+								"1136"
+							],
+							"util": 0.22
+						},
+						{
+							"values": [
+								"1227"
+							],
+							"util": 0.21
+						},
+						{
+							"values": [
+								"1326"
+							],
+							"util": 0.2
+						},
+						{
+							"values": [
+								"1432"
+							],
+							"util": 0.19
+						},
+						{
+							"values": [
+								"1546"
+							],
+							"util": 0.18
+						},
+						{
+							"values": [
+								"1670"
+							],
+							"util": 0.17
+						},
+						{
+							"values": [
+								"1803"
+							],
+							"util": 0.16
+						},
+						{
+							"values": [
+								"1948"
+							],
+							"util": 0.15
+						},
+						{
+							"values": [
+								"2104"
+							],
+							"util": 0.14
+						},
+						{
+							"values": [
+								"2272"
+							],
+							"util": 0.13
+						},
+						{
+							"values": [
+								"2454"
+							],
+							"util": 0.12
+						},
+						{
+							"values": [
+								"2650"
+							],
+							"util": 0.11
+						},
+						{
+							"values": [
+								"2862"
+							],
+							"util": 0.1
+						},
+						{
+							"values": [
+								"3091"
+							],
+							"util": 0.09
+						},
+						{
+							"values": [
+								"3338"
+							],
+							"util": 0.08
+						},
+						{
+							"values": [
+								"3605"
+							],
+							"util": 0.07
+						},
+						{
+							"values": [
+								"3893"
+							],
+							"util": 0.06
+						},
+						{
+							"values": [
+								"4205"
+							],
+							"util": 0.05
+						},
+						{
+							"values": [
+								"4541"
+							],
+							"util": 0.04
+						},
+						{
+							"values": [
+								"4905"
+							],
+							"util": 0.03
+						},
+						{
+							"values": [
+								"5297"
+							],
+							"util": 0.02
+						}
+					]
+				}
+			}
+		},
+		"reservationBid": {
+			"issuevalues": {
+				"box": "small box",
+				"graphics": "low 8G",
+				"main mem": "8GB",
+				"SSD": "1TB",
+				"display": "32-4K",
+				"input": "gaming keybd,mouse",
+				"price": "1432",
+				"rounding":"1"
+			}
+		}
+	}
+}
Index: /profile/src/test/resources/computerbuyincomplete.json
===================================================================
--- /profile/src/test/resources/computerbuyincomplete.json	(revision 53)
+++ /profile/src/test/resources/computerbuyincomplete.json	(revision 53)
@@ -0,0 +1,612 @@
+{
+	"SumOfGroupsUtilitySpace": {
+		"domain": {
+			"name": "computer",
+			"issuesValues": {
+				"box": {
+					"values": [
+						"all-in-one",
+						"small box",
+						"tower"
+					]
+				},
+				"graphics": {
+					"values": [
+						"built-in",
+						"low 8G",
+						"medium 16G",
+						"high 32G"
+					]
+				},
+				"main mem": {
+					"values": [
+						"8GB",
+						"16GB",
+						"32GB",
+						"64GB"
+					]
+				},
+				"SSD": {
+					"values": [
+						"64GB",
+						"1TB",
+						"2TB",
+						"4TB",
+						"8TB"
+					]
+				},
+				"display": {
+					"values": [
+						"24-1K",
+						"27-4K",
+						"32-4K",
+						"27-4K gaming",
+						"34-4K gaming"
+					]
+				},
+				"input": {
+					"values": [
+						"standard keybd,mouse",
+						"wireless keybd,mouse",
+						"gaming keybd,mouse"
+					]
+				},
+				"price": {
+					"values": [
+						"614",
+						"663",
+						"716",
+						"773",
+						"835",
+						"902",
+						"974",
+						"1052",
+						"1136",
+						"1227",
+						"1326",
+						"1432",
+						"1546",
+						"1670",
+						"1803",
+						"1948",
+						"2104",
+						"2272",
+						"2454",
+						"2650",
+						"2862",
+						"3091",
+						"3338",
+						"3605",
+						"3893",
+						"4205",
+						"4541",
+						"4905",
+						"5297"
+					]
+				},
+				"rounding": {
+					"values": [
+						"1"
+					]
+				}
+			}
+		},
+		"name": "computerbuy",
+		"partUtilities": {
+			"boxandgraphics": {
+				"PartsUtilities": {
+					"issues": [
+						"box",
+						"graphics"
+					],
+					"utilslist": [
+						{
+							"values": [
+								"all-in-one",
+								"built-in"
+							],
+							"util": 0.09
+						},
+						{
+							"values": [
+								"all-in-one",
+								"low 8G"
+							],
+							"util": 0
+						},
+						{
+							"values": [
+								"all-in-one",
+								"medium 16G"
+							],
+							"util": 0
+						},
+						{
+							"values": [
+								"all-in-one",
+								"high 32G"
+							],
+							"util": 0
+						},
+						{
+							"values": [
+								"small box",
+								"built-in"
+							],
+							"util": 0.12
+						},
+						{
+							"values": [
+								"small box",
+								"low 8G"
+							],
+							"util": 0.15
+						},
+						{
+							"values": [
+								"small box",
+								"medium 16G"
+							],
+							"util": 0.003
+						},
+						{
+							"values": [
+								"small box",
+								"high 32G"
+							],
+							"util": 0.003
+						},
+						
+						{
+							"values": [
+								"tower",
+								"low 8G"
+							],
+							"util": 0.18
+						},
+						{
+							"values": [
+								"tower",
+								"medium 16G"
+							],
+							"util": 0.24
+						},
+						{
+							"values": [
+								"tower",
+								"high 32G"
+							],
+							"util": 0.003
+						}
+					]
+				}
+			},
+			"display": {
+				"PartsUtilities": {
+					"issues": [
+						"display"
+					],
+					"utilslist": [
+						{
+							"values": [
+								"24-1K"
+							],
+							"util": 0.08
+						},
+						{
+							"values": [
+								"27-4K"
+							],
+							"util": 0.12
+						},
+						{
+							"values": [
+								"32-4K"
+							],
+							"util": 0.18
+						},
+						{
+							"values": [
+								"27-4K gaming"
+							],
+							"util": 0.18
+						},
+						{
+							"values": [
+								"34-4K gaming"
+							],
+							"util": 0.2
+						}
+					]
+				}
+			},
+			"input": {
+				"PartsUtilities": {
+					"issues": [
+						"input"
+					],
+					"utilslist": [
+						{
+							"values": [
+								"standard keybd,mouse"
+							],
+							"util": 0.04
+						},
+						{
+							"values": [
+								"wireless keybd,mouse"
+							],
+							"util": 0.06
+						},
+						{
+							"values": [
+								"gaming keybd,mouse"
+							],
+							"util": 0.09
+						}
+					]
+				}
+			},
+			"rounding": {
+				"PartsUtilities": {
+					"issues": [
+						"rounding"
+					],
+					"utilslist": [
+						{
+							"values": [
+								"1"
+							],
+							"util": 0.0
+						}
+					]
+				}
+			},
+			"memory": {
+				"PartsUtilities": {
+					"issues": [
+						"main mem",
+						"SSD"
+					],
+					"utilslist": [
+						{
+							"values": [
+								"8GB",
+								"64GB"
+							],
+							"util": 0.005
+						},
+						{
+							"values": [
+								"16GB",
+								"64GB"
+							],
+							"util": 0.01
+						},
+						{
+							"values": [
+								"32GB",
+								"64GB"
+							],
+							"util": 0.01
+						},
+						{
+							"values": [
+								"64GB",
+								"64GB"
+							],
+							"util": 0.01
+						},
+						{
+							"values": [
+								"8GB",
+								"1TB"
+							],
+							"util": 0.015
+						},
+						{
+							"values": [
+								"16GB",
+								"1TB"
+							],
+							"util": 0.02
+						},
+						{
+							"values": [
+								"32GB",
+								"1TB"
+							],
+							"util": 0.02
+						},
+						{
+							"values": [
+								"64GB",
+								"1TB"
+							],
+							"util": 0.02
+						},
+						{
+							"values": [
+								"8GB",
+								"2TB"
+							],
+							"util": 0.03
+						},
+						{
+							"values": [
+								"16GB",
+								"2TB"
+							],
+							"util": 0.04
+						},
+						{
+							"values": [
+								"32GB",
+								"2TB"
+							],
+							"util": 0.04
+						},
+						{
+							"values": [
+								"64GB",
+								"2TB"
+							],
+							"util": 0.04
+						},
+						{
+							"values": [
+								"8GB",
+								"4TB"
+							],
+							"util": 0.04
+						},
+						{
+							"values": [
+								"16GB",
+								"4TB"
+							],
+							"util": 0.05
+						},
+						{
+							"values": [
+								"32GB",
+								"4TB"
+							],
+							"util": 0.07
+						},
+						{
+							"values": [
+								"64GB",
+								"4TB"
+							],
+							"util": 0.09
+						},
+						{
+							"values": [
+								"8GB",
+								"8TB"
+							],
+							"util": 0.06
+						},
+						{
+							"values": [
+								"16GB",
+								"8TB"
+							],
+							"util": 0.07
+						},
+						{
+							"values": [
+								"32GB",
+								"8TB"
+							],
+							"util": 0.08
+						},
+						{
+							"values": [
+								"64GB",
+								"8TB"
+							],
+							"util": 0.10
+						}
+					]
+				}
+			},
+			"price": {
+				"PartsUtilities": {
+					"issues": [
+						"price"
+					],
+					"utilslist": [
+						{
+							"values": [
+								"614"
+							],
+							"util": 0.3
+						},
+						{
+							"values": [
+								"663"
+							],
+							"util": 0.29
+						},
+						{
+							"values": [
+								"716"
+							],
+							"util": 0.28
+						},
+						{
+							"values": [
+								"773"
+							],
+							"util": 0.27
+						},
+						{
+							"values": [
+								"835"
+							],
+							"util": 0.26
+						},
+						{
+							"values": [
+								"902"
+							],
+							"util": 0.25
+						},
+						{
+							"values": [
+								"974"
+							],
+							"util": 0.24
+						},
+						{
+							"values": [
+								"1052"
+							],
+							"util": 0.23
+						},
+						{
+							"values": [
+								"1136"
+							],
+							"util": 0.22
+						},
+						{
+							"values": [
+								"1227"
+							],
+							"util": 0.21
+						},
+						{
+							"values": [
+								"1326"
+							],
+							"util": 0.2
+						},
+						{
+							"values": [
+								"1432"
+							],
+							"util": 0.19
+						},
+						{
+							"values": [
+								"1546"
+							],
+							"util": 0.18
+						},
+						{
+							"values": [
+								"1670"
+							],
+							"util": 0.17
+						},
+						{
+							"values": [
+								"1803"
+							],
+							"util": 0.16
+						},
+						{
+							"values": [
+								"1948"
+							],
+							"util": 0.15
+						},
+						{
+							"values": [
+								"2104"
+							],
+							"util": 0.14
+						},
+						{
+							"values": [
+								"2272"
+							],
+							"util": 0.13
+						},
+						{
+							"values": [
+								"2454"
+							],
+							"util": 0.12
+						},
+						{
+							"values": [
+								"2650"
+							],
+							"util": 0.11
+						},
+						{
+							"values": [
+								"2862"
+							],
+							"util": 0.1
+						},
+						{
+							"values": [
+								"3091"
+							],
+							"util": 0.09
+						},
+						{
+							"values": [
+								"3338"
+							],
+							"util": 0.08
+						},
+						{
+							"values": [
+								"3605"
+							],
+							"util": 0.07
+						},
+						{
+							"values": [
+								"3893"
+							],
+							"util": 0.06
+						},
+						{
+							"values": [
+								"4205"
+							],
+							"util": 0.05
+						},
+						{
+							"values": [
+								"4541"
+							],
+							"util": 0.04
+						},
+						{
+							"values": [
+								"4905"
+							],
+							"util": 0.03
+						},
+						{
+							"values": [
+								"5297"
+							],
+							"util": 0.02
+						}
+					]
+				}
+			}
+		},
+		"reservationbid": {
+			"issuevalues": {
+				"box": "small box",
+				"graphics": "low 8GB",
+				"main mem": "8GB",
+				"SSD": "1TB",
+				"display": "32-4K",
+				"input": "gamin keybd,mouse",
+				"price": "1432",
+				"rounding":"1"
+			}
+		}
+	}
+}
Index: /profile/src/test/resources/computerbuynumbers.json
===================================================================
--- /profile/src/test/resources/computerbuynumbers.json	(revision 53)
+++ /profile/src/test/resources/computerbuynumbers.json	(revision 53)
@@ -0,0 +1,508 @@
+{
+	"SumOfGroupsUtilitySpace": {
+		"domain": {
+			"name": "computer",
+			"issuesValues": {
+				"box": {
+					"values": [
+						"all-in-one",
+						"small box",
+						"tower"
+					]
+				},
+				"graphics": {
+					"values": [
+						"built-in",
+						"low 8G",
+						"medium 16G",
+						"high 32G"
+					]
+				},
+				"main mem": {
+					"values": [
+						"8GB",
+						"16GB",
+						"32GB",
+						"64GB"
+					]
+				},
+				"SSD": {
+					"values": [
+						"64GB",
+						"1TB",
+						"2TB",
+						"4TB",
+						"8TB"
+					]
+				},
+				"display": {
+					"values": [
+						"24-1K",
+						"27-4K",
+						"32-4K",
+						"27-4K gaming",
+						"34-4K gaming"
+					]
+				},
+				"input": {
+					"values": [
+						"standard keybd,mouse",
+						"wireless keybd,mouse",
+						"gaming keybd,mouse"
+					]
+				},
+				"price": {
+					"range": {
+						"low": 600,
+						"high": 2000,
+						"step": 100
+					}
+				},
+				"rounding": {
+					"values": [
+						"1"
+					]
+				}
+			}
+		},
+		"name": "computerbuy",
+		"partUtilities": {
+			"boxandgraphics": {
+				"PartsUtilities": {
+					"issues": [
+						"box",
+						"graphics"
+					],
+					"utilslist": [
+						{
+							"values": [
+								"all-in-one",
+								"built-in"
+							],
+							"util": 0.09
+						},
+						{
+							"values": [
+								"all-in-one",
+								"low 8G"
+							],
+							"util": 0
+						},
+						{
+							"values": [
+								"all-in-one",
+								"medium 16G"
+							],
+							"util": 0
+						},
+						{
+							"values": [
+								"all-in-one",
+								"high 32G"
+							],
+							"util": 0
+						},
+						{
+							"values": [
+								"small box",
+								"built-in"
+							],
+							"util": 0.12
+						},
+						{
+							"values": [
+								"small box",
+								"low 8G"
+							],
+							"util": 0.15
+						},
+						{
+							"values": [
+								"small box",
+								"medium 16G"
+							],
+							"util": 0.003
+						},
+						{
+							"values": [
+								"small box",
+								"high 32G"
+							],
+							"util": 0.003
+						},
+						{
+							"values": [
+								"tower",
+								"built-in"
+							],
+							"util": 0.09
+						},
+						{
+							"values": [
+								"tower",
+								"low 8G"
+							],
+							"util": 0.18
+						},
+						{
+							"values": [
+								"tower",
+								"medium 16G"
+							],
+							"util": 0.24
+						},
+						{
+							"values": [
+								"tower",
+								"high 32G"
+							],
+							"util": 0.003
+						}
+					]
+				}
+			},
+			"display": {
+				"PartsUtilities": {
+					"issues": [
+						"display"
+					],
+					"utilslist": [
+						{
+							"values": [
+								"24-1K"
+							],
+							"util": 0.08
+						},
+						{
+							"values": [
+								"27-4K"
+							],
+							"util": 0.12
+						},
+						{
+							"values": [
+								"32-4K"
+							],
+							"util": 0.18
+						},
+						{
+							"values": [
+								"27-4K gaming"
+							],
+							"util": 0.18
+						},
+						{
+							"values": [
+								"34-4K gaming"
+							],
+							"util": 0.2
+						}
+					]
+				}
+			},
+			"input": {
+				"PartsUtilities": {
+					"issues": [
+						"input"
+					],
+					"utilslist": [
+						{
+							"values": [
+								"standard keybd,mouse"
+							],
+							"util": 0.04
+						},
+						{
+							"values": [
+								"wireless keybd,mouse"
+							],
+							"util": 0.06
+						},
+						{
+							"values": [
+								"gaming keybd,mouse"
+							],
+							"util": 0.09
+						}
+					]
+				}
+			},
+			"rounding": {
+				"PartsUtilities": {
+					"issues": [
+						"rounding"
+					],
+					"utilslist": [
+						{
+							"values": [
+								"1"
+							],
+							"util": 0.0
+						}
+					]
+				}
+			},
+			"memory": {
+				"PartsUtilities": {
+					"issues": [
+						"main mem",
+						"SSD"
+					],
+					"utilslist": [
+						{
+							"values": [
+								"8GB",
+								"64GB"
+							],
+							"util": 0.005
+						},
+						{
+							"values": [
+								"16GB",
+								"64GB"
+							],
+							"util": 0.01
+						},
+						{
+							"values": [
+								"32GB",
+								"64GB"
+							],
+							"util": 0.01
+						},
+						{
+							"values": [
+								"64GB",
+								"64GB"
+							],
+							"util": 0.01
+						},
+						{
+							"values": [
+								"8GB",
+								"1TB"
+							],
+							"util": 0.015
+						},
+						{
+							"values": [
+								"16GB",
+								"1TB"
+							],
+							"util": 0.02
+						},
+						{
+							"values": [
+								"32GB",
+								"1TB"
+							],
+							"util": 0.02
+						},
+						{
+							"values": [
+								"64GB",
+								"1TB"
+							],
+							"util": 0.02
+						},
+						{
+							"values": [
+								"8GB",
+								"2TB"
+							],
+							"util": 0.03
+						},
+						{
+							"values": [
+								"16GB",
+								"2TB"
+							],
+							"util": 0.04
+						},
+						{
+							"values": [
+								"32GB",
+								"2TB"
+							],
+							"util": 0.04
+						},
+						{
+							"values": [
+								"64GB",
+								"2TB"
+							],
+							"util": 0.04
+						},
+						{
+							"values": [
+								"8GB",
+								"4TB"
+							],
+							"util": 0.04
+						},
+						{
+							"values": [
+								"16GB",
+								"4TB"
+							],
+							"util": 0.05
+						},
+						{
+							"values": [
+								"32GB",
+								"4TB"
+							],
+							"util": 0.07
+						},
+						{
+							"values": [
+								"64GB",
+								"4TB"
+							],
+							"util": 0.09
+						},
+						{
+							"values": [
+								"8GB",
+								"8TB"
+							],
+							"util": 0.06
+						},
+						{
+							"values": [
+								"16GB",
+								"8TB"
+							],
+							"util": 0.07
+						},
+						{
+							"values": [
+								"32GB",
+								"8TB"
+							],
+							"util": 0.08
+						},
+						{
+							"values": [
+								"64GB",
+								"8TB"
+							],
+							"util": 0.10
+						}
+					]
+				}
+			},
+			"price": {
+				"PartsUtilities": {
+					"issues": [
+						"price"
+					],
+					"utilslist": [
+						{
+							"values": [
+								600
+							],
+							"util": 0.3
+						},
+						{
+							"values": [
+								700
+							],
+							"util": 0.29
+						},
+						{
+							"values": [
+								800
+							],
+							"util": 0.28
+						},
+						{
+							"values": [
+								900
+							],
+							"util": 0.27
+						},
+						{
+							"values": [
+								1000
+							],
+							"util": 0.26
+						},
+						{
+							"values": [
+								1100
+							],
+							"util": 0.25
+						},
+						{
+							"values": [
+								1200
+							],
+							"util": 0.24
+						},
+						{
+							"values": [
+								1300
+							],
+							"util": 0.23
+						},
+						{
+							"values": [
+								1400
+							],
+							"util": 0.22
+						},
+						{
+							"values": [
+								1500
+							],
+							"util": 0.21
+						},
+						{
+							"values": [
+								1600
+							],
+							"util": 0.2
+						},
+						{
+							"values": [
+								1700
+							],
+							"util": 0.19
+						},
+						{
+							"values": [
+								1800
+							],
+							"util": 0.18
+						},
+						{
+							"values": [
+								1900
+							],
+							"util": 0.17
+						},
+						{
+							"values": [
+								2000
+							],
+							"util": 0.16
+						}
+					]
+				}
+			}
+		},
+		"reservationBid": {
+			"issuevalues": {
+				"box": "small box",
+				"graphics": "low 8G",
+				"main mem": "8GB",
+				"SSD": "1TB",
+				"display": "32-4K",
+				"input": "gaming keybd,mouse",
+				"price": 1400,
+				"rounding": "1"
+			}
+		}
+	}
+}
Index: /profile/src/test/resources/computersell-domainmismatch.json
===================================================================
--- /profile/src/test/resources/computersell-domainmismatch.json	(revision 53)
+++ /profile/src/test/resources/computersell-domainmismatch.json	(revision 53)
@@ -0,0 +1,222 @@
+{
+	"LinearAdditiveUtilitySpace": {
+		"issueUtilities": {
+			"box": {
+				"DiscreteValueSetUtilities": {
+					"valueUtilities": {
+						"all-in-one": 0.899045,
+						"small box": 0.83017,
+						"tower": 0.758464
+					}
+				}
+			},
+			"graphics": {
+				"DiscreteValueSetUtilities": {
+					"valueUtilities": {
+						"built-in": 1.0,
+						"low 8G": 0.90565,
+						"medium 12G": 0.8113,
+						"high 24G": 0.58486
+					}
+				}
+			},
+			"main mem": {
+				"DiscreteValueSetUtilities": {
+					"valueUtilities": {
+						"8GB": 0.995471,
+						"16GB": 0.988678,
+						"32GB": 0.979243,
+						"64GB": 0.958486
+					}
+				}
+			},
+			"SSD": {
+				"DiscreteValueSetUtilities": {
+					"valueUtilities": {
+						"64GB": 0.998113,
+						"1TB": 0.979243,
+						"2TB": 0.961128,
+						"4TB": 0.92452,
+						"8TB": 0.885837
+					}
+				}
+			},
+			"display": {
+				"DiscreteValueSetUtilities": {
+					"valueUtilities": {
+						"24-1K": 0.993395,
+						"27-4K": 0.909424,
+						"32-4K": 0.92169,
+						"27-4K gaming": 0.882063,
+						"34-4K gaming": 0.901876
+					}
+				}
+			},
+			"input": {
+				"DiscreteValueSetUtilities": {
+					"valueUtilities": {
+						"standard keybd,mouse": 0.998113,
+						"wireless keybd,mouse": 0.992452,
+						"gaming keybd,mouse": 0.967921
+					}
+				}
+			},
+			"rounding": {
+				"DiscreteValueSetUtilities": {
+					"valueUtilities": {
+						"1": 0
+					}
+				}
+			},
+			"price": {
+				"DiscreteValueSetUtilities": {
+					"valueUtilities": {
+						"614": 0.115862,
+						"663": 0.125108,
+						"716": 0.135109,
+						"773": 0.145865,
+						"835": 0.157565,
+						"902": 0.170207,
+						"974": 0.183794,
+						"1052": 0.198512,
+						"1136": 0.214363,
+						"1227": 0.231535,
+						"1326": 0.250216,
+						"1432": 0.270218,
+						"1546": 0.29173,
+						"1670": 0.315129,
+						"1803": 0.340226,
+						"1948": 0.367588,
+						"2104": 0.397025,
+						"2272": 0.428726,
+						"2454": 0.46307,
+						"2650": 0.500055,
+						"2862": 0.540059,
+						"3091": 0.583272,
+						"3338": 0.629881,
+						"3605": 0.680264,
+						"3893": 0.734609,
+						"4205": 0.793484,
+						"4541": 0.856887,
+						"4905": 0.925574,
+						"5297": 0.999544
+					}
+				}
+			}
+		},
+		"issueWeights": {
+			"box": 0.142857,
+			"graphics": 0.142857,
+			"main mem": 0.142857,
+			"SSD": 0.142857,
+			"display": 0.142857,
+			"input": 0.142857,
+			"price": 0.142857,
+			"rounding": 0.000001
+		},
+		"domain": {
+			"name": "computer",
+			"issuesValues": {
+				"box": {
+					"values": [
+						"all-in-one",
+						"small box",
+						"tower"
+					]
+				},
+				"graphics": {
+					"values": [
+						"built-in",
+						"low 8G",
+						"medium 16G",
+						"high 32G"
+					]
+				},
+				"main mem": {
+					"values": [
+						"8GB",
+						"16GB",
+						"32GB",
+						"64GB"
+					]
+				},
+				"SSD": {
+					"values": [
+						"64GB",
+						"1TB",
+						"2TB",
+						"4TB",
+						"8TB"
+					]
+				},
+				"display": {
+					"values": [
+						"24-1K",
+						"27-4K",
+						"32-4K",
+						"27-4K gaming",
+						"34-4K gaming"
+					]
+				},
+				"input": {
+					"values": [
+						"standard keybd,mouse",
+						"wireless keybd,mouse",
+						"gaming keybd,mouse"
+					]
+				},
+				"price": {
+					"values": [
+						"614",
+						"663",
+						"716",
+						"773",
+						"835",
+						"902",
+						"974",
+						"1052",
+						"1136",
+						"1227",
+						"1326",
+						"1432",
+						"1546",
+						"1670",
+						"1803",
+						"1948",
+						"2104",
+						"2272",
+						"2454",
+						"2650",
+						"2862",
+						"3091",
+						"3338",
+						"3605",
+						"3893",
+						"4205",
+						"4541",
+						"4905",
+						"5297"
+					]
+				},
+				"rounding": {
+					"values": [
+						"1"
+					]
+				}
+			}
+		},
+		"name": "computersell",
+		"reservationBid": {
+			"issuevalues": {
+				"box": "all-in-one",
+				"graphics": "built-in",
+				"main mem": "8GB",
+				"SSD": "64GB",
+				"display": "24-1K",
+				"input": "standard keybd,mouse",
+				"price": "614",
+				"rounding": "1"
+			}
+		}
+	}
+}
Index: /profile/src/test/resources/computersell.json
===================================================================
--- /profile/src/test/resources/computersell.json	(revision 53)
+++ /profile/src/test/resources/computersell.json	(revision 53)
@@ -0,0 +1,222 @@
+{
+	"LinearAdditiveUtilitySpace": {
+		"issueUtilities": {
+			"box": {
+				"DiscreteValueSetUtilities": {
+					"valueUtilities": {
+						"all-in-one": 0.899045,
+						"small box": 0.83017,
+						"tower": 0.758464
+					}
+				}
+			},
+			"graphics": {
+				"DiscreteValueSetUtilities": {
+					"valueUtilities": {
+						"built-in": 1.0,
+						"low 8G": 0.90565,
+						"medium 16G": 0.8113,
+						"high 32G": 0.58486
+					}
+				}
+			},
+			"main mem": {
+				"DiscreteValueSetUtilities": {
+					"valueUtilities": {
+						"8GB": 0.995471,
+						"16GB": 0.988678,
+						"32GB": 0.979243,
+						"64GB": 0.958486
+					}
+				}
+			},
+			"SSD": {
+				"DiscreteValueSetUtilities": {
+					"valueUtilities": {
+						"64GB": 0.998113,
+						"1TB": 0.979243,
+						"2TB": 0.961128,
+						"4TB": 0.92452,
+						"8TB": 0.885837
+					}
+				}
+			},
+			"display": {
+				"DiscreteValueSetUtilities": {
+					"valueUtilities": {
+						"24-1K": 0.993395,
+						"27-4K": 0.909424,
+						"32-4K": 0.92169,
+						"27-4K gaming": 0.882063,
+						"34-4K gaming": 0.901876
+					}
+				}
+			},
+			"input": {
+				"DiscreteValueSetUtilities": {
+					"valueUtilities": {
+						"standard keybd,mouse": 0.998113,
+						"wireless keybd,mouse": 0.992452,
+						"gaming keybd,mouse": 0.967921
+					}
+				}
+			},
+			"rounding": {
+				"DiscreteValueSetUtilities": {
+					"valueUtilities": {
+						"1": 0
+					}
+				}
+			},
+			"price": {
+				"DiscreteValueSetUtilities": {
+					"valueUtilities": {
+						"614": 0.115862,
+						"663": 0.125108,
+						"716": 0.135109,
+						"773": 0.145865,
+						"835": 0.157565,
+						"902": 0.170207,
+						"974": 0.183794,
+						"1052": 0.198512,
+						"1136": 0.214363,
+						"1227": 0.231535,
+						"1326": 0.250216,
+						"1432": 0.270218,
+						"1546": 0.29173,
+						"1670": 0.315129,
+						"1803": 0.340226,
+						"1948": 0.367588,
+						"2104": 0.397025,
+						"2272": 0.428726,
+						"2454": 0.46307,
+						"2650": 0.500055,
+						"2862": 0.540059,
+						"3091": 0.583272,
+						"3338": 0.629881,
+						"3605": 0.680264,
+						"3893": 0.734609,
+						"4205": 0.793484,
+						"4541": 0.856887,
+						"4905": 0.925574,
+						"5297": 0.999544
+					}
+				}
+			}
+		},
+		"issueWeights": {
+			"box": 0.142857,
+			"graphics": 0.142857,
+			"main mem": 0.142857,
+			"SSD": 0.142857,
+			"display": 0.142857,
+			"input": 0.142857,
+			"price": 0.142857,
+			"rounding": 0.000001
+		},
+		"domain": {
+			"name": "computer",
+			"issuesValues": {
+				"box": {
+					"values": [
+						"all-in-one",
+						"small box",
+						"tower"
+					]
+				},
+				"graphics": {
+					"values": [
+						"built-in",
+						"low 8G",
+						"medium 16G",
+						"high 32G"
+					]
+				},
+				"main mem": {
+					"values": [
+						"8GB",
+						"16GB",
+						"32GB",
+						"64GB"
+					]
+				},
+				"SSD": {
+					"values": [
+						"64GB",
+						"1TB",
+						"2TB",
+						"4TB",
+						"8TB"
+					]
+				},
+				"display": {
+					"values": [
+						"24-1K",
+						"27-4K",
+						"32-4K",
+						"27-4K gaming",
+						"34-4K gaming"
+					]
+				},
+				"input": {
+					"values": [
+						"standard keybd,mouse",
+						"wireless keybd,mouse",
+						"gaming keybd,mouse"
+					]
+				},
+				"price": {
+					"values": [
+						"614",
+						"663",
+						"716",
+						"773",
+						"835",
+						"902",
+						"974",
+						"1052",
+						"1136",
+						"1227",
+						"1326",
+						"1432",
+						"1546",
+						"1670",
+						"1803",
+						"1948",
+						"2104",
+						"2272",
+						"2454",
+						"2650",
+						"2862",
+						"3091",
+						"3338",
+						"3605",
+						"3893",
+						"4205",
+						"4541",
+						"4905",
+						"5297"
+					]
+				},
+				"rounding": {
+					"values": [
+						"1"
+					]
+				}
+			}
+		},
+		"name": "computersell",
+		"reservationBid": {
+			"issuevalues": {
+				"box": "all-in-one",
+				"graphics": "built-in",
+				"main mem": "8GB",
+				"SSD": "64GB",
+				"display": "24-1K",
+				"input": "standard keybd,mouse",
+				"price": "614",
+				"rounding": "1"
+			}
+		}
+	}
+}
Index: /profileconnection/pom.xml
===================================================================
--- /profileconnection/pom.xml	(revision 52)
+++ /profileconnection/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb</groupId>
 	<artifactId>profileconnection</artifactId>
-	<version>2.1.6</version>
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
Index: /profileconnection/src/test/resources/jobs1_20.json
===================================================================
--- /profileconnection/src/test/resources/jobs1_20.json	(revision 52)
+++ /profileconnection/src/test/resources/jobs1_20.json	(revision 53)
@@ -1,403 +1,1761 @@
 {
-	"DefaultPartialOrdering": {
-		"name": "jobs1_20",
-		"domain": {
-			"name": "jobs",
-			"issuesValues": {
-				"lease car": {
-					"values": ["yes", "no"]
-				},
-				"permanent contract": {
-					"values": ["yes", "no"]
-				},
-				"career development opportunities": {
-					"values": ["low", "medium", "high"]
-				},
-				"fte": {
-					"values": ["0.6", "0.8", "1.0"]
-				},
-				"salary": {
-					"values": ["2000", "2500", "3000", "3500", "4000"]
-				},
-				"work from home": {
-					"values": ["0", "1", "2"]
-				}
-			}
-		},
-		"better": [
-			[0, 34],
-			[2, 9],
-			[3, 5],
-			[6, 23],
-			[12, 18],
-			[13, 27],
-			[14, 28],
-			[15, 37],
-			[17, 28],
-			[19, 1],
-			[20, 29],
-			[21, 24],
-			[22, 8],
-			[25, 10],
-			[26, 16],
-			[30, 24],
-			[31, 32],
-			[33, 7],
-			[35, 4],
-			[36, 11]
-		],
-		"bids": [{
-			"issuevalues": {
-				"lease car": "yes",
-				"permanent contract": "yes",
-				"career development opportunities": "low",
-				"fte": "0.8",
-				"salary": "4000",
-				"work from home": "0"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "no",
-				"permanent contract": "no",
-				"career development opportunities": "high",
-				"fte": "0.6",
-				"salary": "2000",
-				"work from home": "1"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "yes",
-				"permanent contract": "no",
-				"career development opportunities": "low",
-				"fte": "0.8",
-				"salary": "2000",
-				"work from home": "0"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "no",
-				"permanent contract": "yes",
-				"career development opportunities": "high",
-				"fte": "0.8",
-				"salary": "2500",
-				"work from home": "2"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "no",
-				"permanent contract": "yes",
-				"career development opportunities": "low",
-				"fte": "0.6",
-				"salary": "2000",
-				"work from home": "2"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "no",
-				"permanent contract": "no",
-				"career development opportunities": "high",
-				"fte": "0.6",
-				"salary": "2500",
-				"work from home": "2"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "no",
-				"permanent contract": "yes",
-				"career development opportunities": "low",
-				"fte": "1.0",
-				"salary": "3500",
-				"work from home": "2"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "no",
-				"permanent contract": "yes",
-				"career development opportunities": "medium",
-				"fte": "1.0",
-				"salary": "3000",
-				"work from home": "0"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "no",
-				"permanent contract": "yes",
-				"career development opportunities": "high",
-				"fte": "0.6",
-				"salary": "3500",
-				"work from home": "1"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "no",
-				"permanent contract": "no",
-				"career development opportunities": "medium",
-				"fte": "0.6",
-				"salary": "2000",
-				"work from home": "1"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "yes",
-				"permanent contract": "no",
-				"career development opportunities": "high",
-				"fte": "0.6",
-				"salary": "2000",
-				"work from home": "0"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "no",
-				"permanent contract": "no",
-				"career development opportunities": "medium",
-				"fte": "0.8",
-				"salary": "3500",
-				"work from home": "2"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "yes",
-				"permanent contract": "yes",
-				"career development opportunities": "high",
-				"fte": "0.6",
-				"salary": "2500",
-				"work from home": "2"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "no",
-				"permanent contract": "yes",
-				"career development opportunities": "low",
-				"fte": "0.8",
-				"salary": "3000",
-				"work from home": "1"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "yes",
-				"permanent contract": "yes",
-				"career development opportunities": "high",
-				"fte": "0.8",
-				"salary": "2000",
-				"work from home": "2"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "no",
-				"permanent contract": "yes",
-				"career development opportunities": "high",
-				"fte": "1.0",
-				"salary": "3500",
-				"work from home": "0"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "no",
-				"permanent contract": "yes",
-				"career development opportunities": "medium",
-				"fte": "0.8",
-				"salary": "4000",
-				"work from home": "0"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "yes",
-				"permanent contract": "no",
-				"career development opportunities": "medium",
-				"fte": "0.8",
-				"salary": "3000",
-				"work from home": "1"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "no",
-				"permanent contract": "yes",
-				"career development opportunities": "high",
-				"fte": "0.8",
-				"salary": "2000",
-				"work from home": "0"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "no",
-				"permanent contract": "yes",
-				"career development opportunities": "low",
-				"fte": "1.0",
-				"salary": "3000",
-				"work from home": "2"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "yes",
-				"permanent contract": "no",
-				"career development opportunities": "medium",
-				"fte": "1.0",
-				"salary": "4000",
-				"work from home": "1"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "no",
-				"permanent contract": "no",
-				"career development opportunities": "low",
-				"fte": "1.0",
-				"salary": "3500",
-				"work from home": "2"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "yes",
-				"permanent contract": "yes",
-				"career development opportunities": "medium",
-				"fte": "1.0",
-				"salary": "2500",
-				"work from home": "2"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "yes",
-				"permanent contract": "no",
-				"career development opportunities": "low",
-				"fte": "1.0",
-				"salary": "3000",
-				"work from home": "2"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "no",
-				"permanent contract": "yes",
-				"career development opportunities": "medium",
-				"fte": "0.8",
-				"salary": "3000",
-				"work from home": "2"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "no",
-				"permanent contract": "no",
-				"career development opportunities": "medium",
-				"fte": "0.8",
-				"salary": "2000",
-				"work from home": "1"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "yes",
-				"permanent contract": "yes",
-				"career development opportunities": "low",
-				"fte": "0.8",
-				"salary": "3500",
-				"work from home": "2"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "yes",
-				"permanent contract": "no",
-				"career development opportunities": "medium",
-				"fte": "0.6",
-				"salary": "4000",
-				"work from home": "0"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "no",
-				"permanent contract": "no",
-				"career development opportunities": "low",
-				"fte": "0.6",
-				"salary": "2000",
-				"work from home": "0"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "no",
-				"permanent contract": "no",
-				"career development opportunities": "low",
-				"fte": "0.6",
-				"salary": "3500",
-				"work from home": "1"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "yes",
-				"permanent contract": "no",
-				"career development opportunities": "high",
-				"fte": "0.8",
-				"salary": "4000",
-				"work from home": "1"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "no",
-				"permanent contract": "yes",
-				"career development opportunities": "low",
-				"fte": "0.8",
-				"salary": "4000",
-				"work from home": "1"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "no",
-				"permanent contract": "yes",
-				"career development opportunities": "high",
-				"fte": "0.8",
-				"salary": "2500",
-				"work from home": "0"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "no",
-				"permanent contract": "yes",
-				"career development opportunities": "medium",
-				"fte": "1.0",
-				"salary": "4000",
-				"work from home": "0"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "yes",
-				"permanent contract": "no",
-				"career development opportunities": "high",
-				"fte": "0.6",
-				"salary": "2500",
-				"work from home": "2"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "yes",
-				"permanent contract": "yes",
-				"career development opportunities": "low",
-				"fte": "0.8",
-				"salary": "3500",
-				"work from home": "0"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "yes",
-				"permanent contract": "no",
-				"career development opportunities": "high",
-				"fte": "1.0",
-				"salary": "4000",
-				"work from home": "1"
-			}
-		}, {
-			"issuevalues": {
-				"lease car": "yes",
-				"permanent contract": "no",
-				"career development opportunities": "medium",
-				"fte": "0.8",
-				"salary": "3500",
-				"work from home": "2"
-			}
-		}],
-		"reservationBid": {
-			"issuevalues": {
-				"lease car": "no",
-				"permanent contract": "no",
-				"career development opportunities": "low",
-				"fte": "0.6",
-				"salary": "3500",
-				"work from home": "1"
-			}
-		}
-	}
+  "DefaultPartialOrdering" : {
+    "name" : "jobs1_20",
+    "domain" : {
+      "name" : "jobs",
+      "issuesValues" : {
+        "lease car" : {
+          "values" : [ "yes", "no" ]
+        },
+        "permanent contract" : {
+          "values" : [ "yes", "no" ]
+        },
+        "career development opportunities" : {
+          "values" : [ "low", "medium", "high" ]
+        },
+        "fte" : {
+          "values" : [ "0.6", "0.8", "1.0" ]
+        },
+        "salary" : {
+          "values" : [ "2000", "2500", "3000", "3500", "4000" ]
+        },
+        "work from home" : {
+          "values" : [ "0", "1", "2" ]
+        }
+      }
+    },
+    "better" : {
+      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"yes\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"2000\",\"work from home\":\"2\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"0.6\",\"salary\":\"3500\",\"work from home\":\"0\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"1.0\",\"salary\":\"2000\",\"work from home\":\"1\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"medium\",\"fte\":\"1.0\",\"salary\":\"3500\",\"work from home\":\"1\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.8",
+          "salary" : "4000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "2"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"3000\",\"work from home\":\"0\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"medium\",\"fte\":\"1.0\",\"salary\":\"2500\",\"work from home\":\"2\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "1.0",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.8",
+          "salary" : "4000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"0.6\",\"salary\":\"2000\",\"work from home\":\"1\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"3000\",\"work from home\":\"1\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"0.8\",\"salary\":\"3500\",\"work from home\":\"1\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"medium\",\"fte\":\"0.8\",\"salary\":\"2000\",\"work from home\":\"1\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"high\",\"fte\":\"0.6\",\"salary\":\"2000\",\"work from home\":\"1\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"0.6\",\"salary\":\"2000\",\"work from home\":\"0\"}}" : [ ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"low\",\"fte\":\"0.8\",\"salary\":\"4000\",\"work from home\":\"2\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "1.0",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "1.0",
+          "salary" : "2500",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.8",
+          "salary" : "4000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "4000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"0.8\",\"salary\":\"4000\",\"work from home\":\"2\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"0.6\",\"salary\":\"3500\",\"work from home\":\"1\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"4000\",\"work from home\":\"2\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "1.0",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "1.0",
+          "salary" : "2500",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "low",
+          "fte" : "0.8",
+          "salary" : "4000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.8",
+          "salary" : "4000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "4000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"4000\",\"work from home\":\"2\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "1.0",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "1.0",
+          "salary" : "2500",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.8",
+          "salary" : "4000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"medium\",\"fte\":\"0.8\",\"salary\":\"2500\",\"work from home\":\"1\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"medium\",\"fte\":\"0.8\",\"salary\":\"2500\",\"work from home\":\"2\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      } ],
+      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"yes\",\"career development opportunities\":\"low\",\"fte\":\"1.0\",\"salary\":\"3500\",\"work from home\":\"0\"}}" : [ {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "1.0",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "1.0",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "1.0",
+          "salary" : "3000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.8",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.6",
+          "salary" : "2000",
+          "work from home" : "0"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "no",
+          "career development opportunities" : "low",
+          "fte" : "0.8",
+          "salary" : "4000",
+          "work from home" : "2"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "no",
+          "permanent contract" : "no",
+          "career development opportunities" : "high",
+          "fte" : "0.6",
+          "salary" : "3500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "1"
+        }
+      }, {
+        "issuevalues" : {
+          "lease car" : "yes",
+          "permanent contract" : "yes",
+          "career development opportunities" : "medium",
+          "fte" : "0.8",
+          "salary" : "2500",
+          "work from home" : "2"
+        }
+      } ]
+    },
+    "reservationbid" : {
+      "issuevalues" : {
+        "lease car" : "no",
+        "permanent contract" : "yes",
+        "career development opportunities" : "medium",
+        "fte" : "0.8",
+        "salary" : "3500",
+        "work from home" : "1"
+      }
+    }
+  }
 }
Index: /protocol/pom.xml
===================================================================
--- /protocol/pom.xml	(revision 52)
+++ /protocol/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb</groupId>
 	<artifactId>protocol</artifactId>
-	<version>2.1.6</version>
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
@@ -56,5 +56,5 @@
 			<groupId>tudelft.utilities</groupId>
 			<artifactId>utilities</artifactId>
-			<version>1.2.1</version>
+			<version>1.3.1</version>
 		</dependency>
 		<dependency>
Index: /protocol/src/main/java/geniusweb/protocol/tournament/allpermutationslearn/AllPermutationsLearnSettings.java
===================================================================
--- /protocol/src/main/java/geniusweb/protocol/tournament/allpermutationslearn/AllPermutationsLearnSettings.java	(revision 52)
+++ /protocol/src/main/java/geniusweb/protocol/tournament/allpermutationslearn/AllPermutationsLearnSettings.java	(revision 53)
@@ -147,8 +147,9 @@
 					(parties, flocs) -> createSetting(parties, flocs),
 					partylistlist, filelocs);
-			settings = new JoinedList<SessionSettings>(settings,
-					getLearnSessions(filelocs, partylistlist));
+			settings = new JoinedList<SessionSettings>(Arrays.asList(settings,
+					getLearnSessions(filelocs, partylistlist)));
 			allSettings = allSettings == null ? settings
-					: new JoinedList<SessionSettings>(allSettings, settings);
+					: new JoinedList<SessionSettings>(
+							Arrays.asList(allSettings, settings));
 		}
 
Index: /pythonadapter/pom.xml
===================================================================
--- /pythonadapter/pom.xml	(revision 52)
+++ /pythonadapter/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb</groupId>
 	<artifactId>pythonadapter</artifactId>
-	<version>2.1.6</version>
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
Index: /references/pom.xml
===================================================================
--- /references/pom.xml	(revision 52)
+++ /references/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb</groupId>
 	<artifactId>references</artifactId>
-	<version>2.1.6</version>
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
@@ -32,5 +32,5 @@
 			<groupId>tudelft.utilities</groupId>
 			<artifactId>utilities</artifactId>
-			<version>1.2.1</version>
+			<version>1.3.1</version>
 		</dependency>
 		<!-- the core, which includes Streaming API, shared low-level abstractions 
Index: /simplerunner/pom.xml
===================================================================
--- /simplerunner/pom.xml	(revision 52)
+++ /simplerunner/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb</groupId>
 	<artifactId>simplerunner</artifactId>
-	<version>2.1.6</version>
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
Index: /timeline/pom.xml
===================================================================
--- /timeline/pom.xml	(revision 52)
+++ /timeline/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb</groupId>
 	<artifactId>timeline</artifactId>
-	<version>2.1.6</version>
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
Index: /voting/pom.xml
===================================================================
--- /voting/pom.xml	(revision 52)
+++ /voting/pom.xml	(revision 53)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb</groupId>
 	<artifactId>voting</artifactId>
-	<version>2.1.6</version>
+	<version>2.2.1</version>  <!-- equals the geniusweb version -->
 	<packaging>jar</packaging>
 
@@ -42,5 +42,5 @@
 			<groupId>tudelft.utilities</groupId>
 			<artifactId>utilities</artifactId>
-			<version>1.2.1</version>
+			<version>1.3.1</version>
 		</dependency>
 		<!-- the core, which includes Streaming API, shared low-level abstractions 
