Index: issuevalue/pom.xml
===================================================================
--- issuevalue/pom.xml	(revision 32)
+++ issuevalue/pom.xml	(revision 33)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb</groupId>
 	<artifactId>issuevalue</artifactId>
-	<version>1.6.1</version> <!-- must equal ${geniusweb.version} -->
+	<version>2.0.0</version> <!-- must equal ${geniusweb.version} -->
 	<packaging>jar</packaging>
 
@@ -16,6 +16,6 @@
 		<basedir>.</basedir>
 		<passwd>${env.ARTIFACTORY_PASS}</passwd>
-		<jackson-2-version>2.9.10</jackson-2-version>
-		<geniusweb.version>1.6.1</geniusweb.version>
+		<jackson-2-version>2.12.3</jackson-2-version>
+		<geniusweb.version>2.0.0</geniusweb.version>
 	</properties>
 
@@ -92,6 +92,6 @@
 		<dependency>
 			<groupId>tudelft.utilities</groupId>
-			<artifactId>immutablelist</artifactId>
-			<version>1.1.2</version>
+			<artifactId>utilities</artifactId>
+			<version>1.1.0</version>
 		</dependency>
 
@@ -112,10 +112,5 @@
 		<pluginRepository>
 			<id>central</id>
-			<url>https://repo1.maven.org/</url>
-		</pluginRepository>
-		<pluginRepository>
-			<id>jfrog-plugins-release</id>
-			<name>plugins-release</name>
-			<url>https://oss.jfrog.org/artifactory/plugins-release</url>
+			<url>https://repo1.maven.org/maven2</url>
 		</pluginRepository>
 	</pluginRepositories>
@@ -166,5 +161,5 @@
 				<groupId>org.jfrog.buildinfo</groupId>
 				<artifactId>artifactory-maven-plugin</artifactId>
-				<version>2.6.1</version>
+				<version>3.2.3</version>
 				<executions>
 					<execution>
Index: issuevalue/src/main/java/geniusweb/issuevalue/DiscreteValueSet.java
===================================================================
--- issuevalue/src/main/java/geniusweb/issuevalue/DiscreteValueSet.java	(revision 32)
+++ issuevalue/src/main/java/geniusweb/issuevalue/DiscreteValueSet.java	(revision 33)
@@ -11,5 +11,4 @@
 import com.fasterxml.jackson.annotation.JsonCreator;
 import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonTypeName;
 import com.fasterxml.jackson.databind.JsonDeserializer;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
@@ -20,5 +19,4 @@
  * set of discrete values
  */
-@JsonTypeName("discreteset")
 // disable the inherited deserializer to prevent getting into infinite loop...
 @JsonDeserialize(using = JsonDeserializer.None.class)
Index: issuevalue/src/main/java/geniusweb/issuevalue/Domain.java
===================================================================
--- issuevalue/src/main/java/geniusweb/issuevalue/Domain.java	(revision 32)
+++ issuevalue/src/main/java/geniusweb/issuevalue/Domain.java	(revision 33)
@@ -12,7 +12,5 @@
 
 /**
- * A dmain description. Two domains are equal if they have the same issues in
- * the same order.
- *
+ * A dmain description.
  */
 @JsonAutoDetect(fieldVisibility = Visibility.ANY, getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
@@ -27,5 +25,6 @@
 	 * @param shortName a short name for display/toString. This name must
 	 *                  contain simple characters only (a-z, A-Z, 0-9).
-	 * @param issues    the issues, list because order may be important.
+	 * @param issues    the issues, Map with key: the issue name and value:
+	 *                  {@link ValueSet} with the allowed values for the issue.
 	 */
 	@JsonCreator
Index: issuevalue/src/main/java/geniusweb/issuevalue/NumberValue.java
===================================================================
--- issuevalue/src/main/java/geniusweb/issuevalue/NumberValue.java	(revision 32)
+++ issuevalue/src/main/java/geniusweb/issuevalue/NumberValue.java	(revision 33)
@@ -50,5 +50,6 @@
 			if (other.value != null)
 				return false;
-		} else if (!value.equals(other.value))
+		} else if (value.compareTo(other.value) != 0)
+			// MANUAL FIX, DO NOT USE value.equals
 			return false;
 		return true;
Index: issuevalue/src/main/java/geniusweb/issuevalue/NumberValueSet.java
===================================================================
--- issuevalue/src/main/java/geniusweb/issuevalue/NumberValueSet.java	(revision 32)
+++ issuevalue/src/main/java/geniusweb/issuevalue/NumberValueSet.java	(revision 33)
@@ -9,5 +9,4 @@
 import com.fasterxml.jackson.annotation.JsonCreator;
 import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonTypeName;
 import com.fasterxml.jackson.databind.JsonDeserializer;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
@@ -18,5 +17,4 @@
  * number range from low to high with given step size
  */
-@JsonTypeName("numberset")
 // disable the inherited deserializer to prevent getting into infinite loop...
 @JsonDeserialize(using = JsonDeserializer.None.class)
Index: issuevalue/src/test/java/geniusweb/issuevalue/DiscreteValueSetTest.java
===================================================================
--- issuevalue/src/test/java/geniusweb/issuevalue/DiscreteValueSetTest.java	(revision 32)
+++ issuevalue/src/test/java/geniusweb/issuevalue/DiscreteValueSetTest.java	(revision 33)
@@ -19,7 +19,4 @@
 import com.fasterxml.jackson.databind.ObjectMapper;
 
-import geniusweb.issuevalue.DiscreteValue;
-import geniusweb.issuevalue.DiscreteValueSet;
-
 public class DiscreteValueSetTest {
 
@@ -35,5 +32,6 @@
 			valuesReverse);
 	private static final String asString = "{\"values\":[\"a\",\"b\"]}";
-	// private static final String asString = "{\"discreteset\":[\"a\",\"b\"]}";
+	// private static final String asString = "{\"DiscreteValueSet
+	// \":[\"a\",\"b\"]}";
 	private static final String asString1 = "[\"a\",\"b\"]";
 
Index: issuevalue/src/test/java/geniusweb/issuevalue/DomainTest.java
===================================================================
--- issuevalue/src/test/java/geniusweb/issuevalue/DomainTest.java	(revision 32)
+++ issuevalue/src/test/java/geniusweb/issuevalue/DomainTest.java	(revision 33)
@@ -36,5 +36,5 @@
 	private static final String ISSUE3 = "issue3";
 	private static final ObjectMapper jackson = new ObjectMapper();
-	private static final String domainstring = "{\"name\":\"testdomain\",\"issuesValues\":{\"issue2\":{\"range\":[2,3,0.22]},\"issue1\":{\"values\":[\"i1v1\",\"i1v2\"]}}}";
+	private static final String domainstring = "{\"name\":\"testdomain\",\"issuesValues\":{\"issue2\":{\"range\":{\"low\":2,\"high\":3,\"step\":0.22}},\"issue1\":{\"values\":[\"i1v1\",\"i1v2\"]}}}";
 
 	private static final String jobsstring = "{\"name\":\"jobs\","
Index: issuevalue/src/test/java/geniusweb/issuevalue/NumberValueSetTest.java
===================================================================
--- issuevalue/src/test/java/geniusweb/issuevalue/NumberValueSetTest.java	(revision 32)
+++ issuevalue/src/test/java/geniusweb/issuevalue/NumberValueSetTest.java	(revision 33)
@@ -23,14 +23,16 @@
 	private static final BigDecimal TWELVE_SIX = new BigDecimal("12.6");
 	private static final BigDecimal TWELVE_TWO = new BigDecimal("12.2");
-	private final static NumberValueSet set = new NumberValueSet(TWELVE_TWO, TWELVE_SIX, ZERO_THREE);
-	private final static NumberValueSet set1 = new NumberValueSet(TWELVE_TWO, TWELVE_SIX, ZERO_THREE);
-	private final static NumberValueSet setb = new NumberValueSet(TWELVE_TWO, new BigDecimal("12.6000000000001"),
-			ZERO_THREE);
-	private final static NumberValueSet set10 = new NumberValueSet(BigDecimal.ZERO, BigDecimal.ONE,
-			new BigDecimal("0.1"));
+	private final static NumberValueSet set = new NumberValueSet(TWELVE_TWO,
+			TWELVE_SIX, ZERO_THREE);
+	private final static NumberValueSet set1 = new NumberValueSet(TWELVE_TWO,
+			TWELVE_SIX, ZERO_THREE);
+	private final static NumberValueSet setb = new NumberValueSet(TWELVE_TWO,
+			new BigDecimal("12.6000000000001"), ZERO_THREE);
+	private final static NumberValueSet set10 = new NumberValueSet(
+			BigDecimal.ZERO, BigDecimal.ONE, new BigDecimal("0.1"));
 
-	private final String asString = "{\"range\":[12.2,12.6,0.3]}";
-	private final static NumberValueSet bigset = new NumberValueSet(BigDecimal.ZERO, BigDecimal.TEN,
-			new BigDecimal("0.00003"));
+	private final String asString = "{\"range\":{\"low\":12.2,\"high\":12.6,\"step\":0.3}}";
+	private final static NumberValueSet bigset = new NumberValueSet(
+			BigDecimal.ZERO, BigDecimal.TEN, new BigDecimal("0.00003"));
 
 	@Test(expected = IllegalArgumentException.class)
@@ -41,10 +43,12 @@
 	@Test(expected = IllegalArgumentException.class)
 	public void testConstructor2() {
-		new NumberValueSet(BigDecimal.ZERO, BigDecimal.TEN, new BigDecimal("-1"));
+		new NumberValueSet(BigDecimal.ZERO, BigDecimal.TEN,
+				new BigDecimal("-1"));
 	}
 
 	@Test
 	public void testIterator() {
-		assertEquals(new NumberValue(BigDecimal.ZERO), bigset.iterator().next());
+		assertEquals(new NumberValue(BigDecimal.ZERO),
+				bigset.iterator().next());
 	}
 
@@ -59,5 +63,6 @@
 
 	@Test
-	public void testDeserialize() throws JsonParseException, JsonMappingException, IOException {
+	public void testDeserialize()
+			throws JsonParseException, JsonMappingException, IOException {
 		ObjectMapper jackson = new ObjectMapper();
 		ValueSet p = jackson.readValue(asString, NumberValueSet.class);
@@ -92,5 +97,6 @@
 	@Test
 	public void getRangeTest() {
-		assertEquals(new Range(TWELVE_TWO, TWELVE_SIX, ZERO_THREE), set.getRange());
+		assertEquals(new Range(TWELVE_TWO, TWELVE_SIX, ZERO_THREE),
+				set.getRange());
 	}
 
@@ -99,5 +105,6 @@
 		assertEquals(new NumberValue(TWELVE_TWO), set.get(BigInteger.ZERO));
 		assertEquals(new NumberValue(TWELVE_TWO), set.get(0));
-		assertEquals(new NumberValue(TWELVE_TWO.add(ZERO_THREE)), set.get(BigInteger.ONE));
+		assertEquals(new NumberValue(TWELVE_TWO.add(ZERO_THREE)),
+				set.get(BigInteger.ONE));
 	}
 
Index: issuevalue/src/test/java/geniusweb/issuevalue/NumberValueTest.java
===================================================================
--- issuevalue/src/test/java/geniusweb/issuevalue/NumberValueTest.java	(revision 32)
+++ issuevalue/src/test/java/geniusweb/issuevalue/NumberValueTest.java	(revision 33)
@@ -126,3 +126,13 @@
 	}
 
+	@Test
+	public void testDeserializeScientificNotation()
+			throws JsonParseException, JsonMappingException, IOException {
+		ObjectMapper jackson = new ObjectMapper();
+		String valstr = "9E+2";
+		Value val = jackson.readValue(valstr, Value.class);
+		assertEquals(valstr, val.toString());
+		assertEquals(val, new NumberValue(new BigDecimal("900")));
+	}
+
 }
