Index: exampleparties/anac2019/agentgg/pom.xml
===================================================================
--- exampleparties/anac2019/agentgg/pom.xml	(revision 19)
+++ exampleparties/anac2019/agentgg/pom.xml	(revision 20)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb.exampleparties.anac2019</groupId>
 	<artifactId>agentgg</artifactId>
-	<version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
+	<version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
 	<packaging>jar</packaging>
 
@@ -17,5 +17,5 @@
 		<passwd>${env.ARTIFACTORY_PASS}</passwd>
 		<jackson-2-version>2.9.6</jackson-2-version>
-		<geniusweb.version>1.4.2</geniusweb.version>
+		<geniusweb.version>1.4.4</geniusweb.version>
 	</properties>
 
Index: exampleparties/anac2019/winkyagent/pom.xml
===================================================================
--- exampleparties/anac2019/winkyagent/pom.xml	(revision 19)
+++ exampleparties/anac2019/winkyagent/pom.xml	(revision 20)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb.exampleparties.anac2019</groupId>
 	<artifactId>winkyagent</artifactId>
-	<version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
+	<version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
 	<packaging>jar</packaging>
 
@@ -17,5 +17,5 @@
 		<passwd>${env.ARTIFACTORY_PASS}</passwd>
 		<jackson-2-version>2.9.6</jackson-2-version>
-		<geniusweb.version>1.4.2</geniusweb.version>
+		<geniusweb.version>1.4.4</geniusweb.version>
 	</properties>
 
Index: exampleparties/boulware/pom.xml
===================================================================
--- exampleparties/boulware/pom.xml	(revision 19)
+++ exampleparties/boulware/pom.xml	(revision 20)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb.exampleparties</groupId>
 	<artifactId>boulware</artifactId>
-	<version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
+	<version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
 	<packaging>jar</packaging>
 
@@ -17,5 +17,5 @@
 		<passwd>${env.ARTIFACTORY_PASS}</passwd>
 		<jackson-2-version>2.9.10</jackson-2-version>
-		<geniusweb.version>1.4.2</geniusweb.version>
+		<geniusweb.version>1.4.4</geniusweb.version>
 	</properties>
 
@@ -34,5 +34,5 @@
 			<groupId>geniusweb.exampleparties</groupId>
 			<artifactId>timedependentparty</artifactId>
-			<version>1.4.1</version> <!-- must equal ${geniusweb.version} -->
+			<version>${geniusweb.version}</version>
 		</dependency>
 		<dependency>
Index: exampleparties/comparebids/pom.xml
===================================================================
--- exampleparties/comparebids/pom.xml	(revision 19)
+++ exampleparties/comparebids/pom.xml	(revision 20)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb.exampleparties</groupId>
 	<artifactId>comparebids</artifactId>
-	<version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
+	<version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
 	<packaging>jar</packaging>
 
@@ -17,5 +17,5 @@
 		<passwd>${env.ARTIFACTORY_PASS}</passwd>
 		<jackson-2-version>2.9.6</jackson-2-version>
-		<geniusweb.version>1.4.2</geniusweb.version>
+		<geniusweb.version>1.4.4</geniusweb.version>
 	</properties>
 
Index: exampleparties/conceder/pom.xml
===================================================================
--- exampleparties/conceder/pom.xml	(revision 19)
+++ exampleparties/conceder/pom.xml	(revision 20)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb.exampleparties</groupId>
 	<artifactId>conceder</artifactId>
-	<version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
+	<version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
 	<packaging>jar</packaging>
 
@@ -17,5 +17,5 @@
 		<passwd>${env.ARTIFACTORY_PASS}</passwd>
 		<jackson-2-version>2.9.10</jackson-2-version>
-		<geniusweb.version>1.4.2</geniusweb.version>
+		<geniusweb.version>1.4.4</geniusweb.version>
 	</properties>
 
Index: exampleparties/hardliner/pom.xml
===================================================================
--- exampleparties/hardliner/pom.xml	(revision 19)
+++ exampleparties/hardliner/pom.xml	(revision 20)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb.exampleparties</groupId>
 	<artifactId>hardliner</artifactId>
-	<version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
+	<version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
 	<packaging>jar</packaging>
 
@@ -17,5 +17,5 @@
 		<passwd>${env.ARTIFACTORY_PASS}</passwd>
 		<jackson-2-version>2.9.10</jackson-2-version>
-		<geniusweb.version>1.4.2</geniusweb.version>
+		<geniusweb.version>1.4.4</geniusweb.version>
 	</properties>
 
Index: exampleparties/humangui/pom.xml
===================================================================
--- exampleparties/humangui/pom.xml	(revision 19)
+++ exampleparties/humangui/pom.xml	(revision 20)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb.exampleparties</groupId>
 	<artifactId>humangui</artifactId>
-	<version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
+	<version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
 	<packaging>jar</packaging>
 
@@ -17,5 +17,5 @@
 		<passwd>${env.ARTIFACTORY_PASS}</passwd>
 		<jackson-2-version>2.9.6</jackson-2-version>
-		<geniusweb.version>1.4.2</geniusweb.version>
+		<geniusweb.version>1.4.4</geniusweb.version>
 	</properties>
 
Index: exampleparties/linear/pom.xml
===================================================================
--- exampleparties/linear/pom.xml	(revision 19)
+++ exampleparties/linear/pom.xml	(revision 20)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb.exampleparties</groupId>
 	<artifactId>linear</artifactId>
-	<version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
+	<version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
 	<packaging>jar</packaging>
 
@@ -17,5 +17,5 @@
 		<passwd>${env.ARTIFACTORY_PASS}</passwd>
 		<jackson-2-version>2.9.10</jackson-2-version>
-		<geniusweb.version>1.4.2</geniusweb.version>
+		<geniusweb.version>1.4.4</geniusweb.version>
 	</properties>
 
Index: exampleparties/pom.xml
===================================================================
--- exampleparties/pom.xml	(revision 19)
+++ exampleparties/pom.xml	(revision 20)
@@ -27,4 +27,5 @@
 		<module>comparebids</module>
 		<module>anac2019</module>
+		<module>simpleboa</module>
 	</modules>
 </project>
Index: exampleparties/randomparty/pom.xml
===================================================================
--- exampleparties/randomparty/pom.xml	(revision 19)
+++ exampleparties/randomparty/pom.xml	(revision 20)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb.exampleparties</groupId>
 	<artifactId>randomparty</artifactId>
-	<version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
+	<version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
 	<packaging>jar</packaging>
 
@@ -17,5 +17,5 @@
 		<passwd>${env.ARTIFACTORY_PASS}</passwd>
 		<jackson-2-version>2.9.6</jackson-2-version>
-		<geniusweb.version>1.4.2</geniusweb.version>
+		<geniusweb.version>1.4.4</geniusweb.version>
 	</properties>
 
Index: exampleparties/randompartypy/pom.xml
===================================================================
--- exampleparties/randompartypy/pom.xml	(revision 19)
+++ exampleparties/randompartypy/pom.xml	(revision 20)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb.exampleparties</groupId>
 	<artifactId>randompyparty</artifactId>
-	<version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
+	<version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
 	<packaging>jar</packaging>
 
@@ -17,5 +17,5 @@
 		<passwd>${env.ARTIFACTORY_PASS}</passwd>
 		<jackson-2-version>2.9.10</jackson-2-version>
-		<geniusweb.version>1.4.2</geniusweb.version>
+		<geniusweb.version>1.4.4</geniusweb.version>
 	</properties>
 
Index: exampleparties/simpleboa/pom.xml
===================================================================
--- exampleparties/simpleboa/pom.xml	(revision 20)
+++ exampleparties/simpleboa/pom.xml	(revision 20)
@@ -0,0 +1,227 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<groupId>geniusweb.exampleparties</groupId>
+	<artifactId>simpleboaparty</artifactId>
+	<version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
+	<packaging>jar</packaging>
+
+
+	<properties>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+		<maven.compiler.target>1.8</maven.compiler.target>
+		<maven.compiler.source>1.8</maven.compiler.source>
+		<basedir>.</basedir>
+		<passwd>${env.ARTIFACTORY_PASS}</passwd>
+		<jackson-2-version>2.9.6</jackson-2-version>
+		<geniusweb.version>1.4.4</geniusweb.version>
+	</properties>
+
+	<distributionManagement>
+		<repository>
+			<id>artifactory.ewi.tudelft.nl</id>
+			<url>http://artifactory.ewi.tudelft.nl/artifactory/libs-release</url>
+		</repository>
+	</distributionManagement>
+
+
+	<dependencies>
+
+
+		<dependency>
+			<groupId>geniusweb</groupId>
+			<artifactId>boa</artifactId>
+			<version>${geniusweb.version}</version>
+		</dependency>
+
+		<dependency>
+			<groupId>geniusweb</groupId>
+			<artifactId>opponentmodel</artifactId>
+			<version>${geniusweb.version}</version>
+		</dependency>
+
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>4.12</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.mockito</groupId>
+			<artifactId>mockito-all</artifactId>
+			<version>1.9.5</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>tudelft.utilities</groupId>
+			<artifactId>junit</artifactId>
+			<version>1.0.1</version>
+			<scope>test</scope>
+		</dependency>
+
+	</dependencies>
+
+
+	<repositories>
+		<repository>
+			<id>artifactory.ewi.tudelft.nl</id>
+			<url>http://artifactory.ewi.tudelft.nl/artifactory/libs-release</url>
+			<snapshots>
+				<enabled>false</enabled>
+			</snapshots>
+		</repository>
+
+	</repositories>
+
+	<pluginRepositories>
+		<pluginRepository>
+			<id>jcenter</id>
+			<url>https://jcenter.bintray.com</url>
+		</pluginRepository>
+	</pluginRepositories>
+
+
+	<build>
+
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>3.8.0</version>
+				<configuration>
+					<source>1.8</source>
+					<target>1.8</target>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-source-plugin</artifactId>
+				<version>3.1.0</version>
+				<executions>
+					<execution>
+						<id>attach-sources</id>
+						<goals>
+							<goal>jar</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-jar-plugin</artifactId>
+				<configuration>
+					<archive>
+						<manifest>
+							<mainClass>geniusweb.exampleparties.simpleboa.SimpleBoa</mainClass>
+						</manifest>
+					</archive>
+				</configuration>
+			</plugin>
+
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-javadoc-plugin</artifactId>
+				<version>2.10.1</version>
+				<executions>
+					<execution>
+						<id>attach-javadocs</id>
+						<goals>
+							<goal>jar</goal>
+						</goals>
+						<configuration>
+							<additionalparam>${javadoc.opts}</additionalparam>
+							<additionalparam>-Xdoclint:none</additionalparam>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+
+			<plugin>
+				<groupId>org.jfrog.buildinfo</groupId>
+				<artifactId>artifactory-maven-plugin</artifactId>
+				<version>2.6.1</version>
+				<executions>
+					<execution>
+						<id>build-info</id>
+						<goals>
+							<goal>publish</goal>
+						</goals>
+						<configuration>
+							<publisher>
+								<contextUrl>http://artifactory.ewi.tudelft.nl/artifactory</contextUrl>
+								<repoKey>libs-release</repoKey>
+								<username>wouter</username>
+								<password>${passwd}</password>
+							</publisher>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-assembly-plugin</artifactId>
+				<version>2.4.1</version>
+				<configuration>
+					<!-- get all project dependencies -->
+					<descriptorRefs>
+						<descriptorRef>jar-with-dependencies</descriptorRef>
+					</descriptorRefs>
+					<archive>
+						<manifest>
+							<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
+							<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
+							<mainClass>geniusweb.exampleparties.simpleboa.SimpleBoa</mainClass>
+						</manifest>
+					</archive>
+				</configuration>
+				<executions>
+					<execution>
+						<id>make-assembly</id>
+						<!-- bind to the packaging phase -->
+						<phase>package</phase>
+						<goals>
+							<goal>single</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+
+
+		</plugins>
+
+		<pluginManagement>
+			<plugins>
+				<plugin>
+					<groupId>org.eclipse.m2e</groupId>
+					<artifactId>lifecycle-mapping</artifactId>
+					<version>1.0.0</version>
+					<configuration>
+						<lifecycleMappingMetadata>
+							<pluginExecutions>
+								<pluginExecution>
+									<pluginExecutionFilter>
+										<groupId>org.jfrog.buildinfo</groupId>
+										<artifactId>artifactory-maven-plugin</artifactId>
+										<versionRange>[1.0.0,)</versionRange>
+										<goals>
+											<goal>publish</goal>
+										</goals>
+									</pluginExecutionFilter>
+									<action>
+										<ignore />
+									</action>
+								</pluginExecution>
+							</pluginExecutions>
+						</lifecycleMappingMetadata>
+					</configuration>
+				</plugin>
+			</plugins>
+		</pluginManagement>
+
+
+	</build>
+</project>
Index: exampleparties/simpleboa/src/main/java/geniusweb/exampleparties/simpleboa/SimpleBoa.java
===================================================================
--- exampleparties/simpleboa/src/main/java/geniusweb/exampleparties/simpleboa/SimpleBoa.java	(revision 20)
+++ exampleparties/simpleboa/src/main/java/geniusweb/exampleparties/simpleboa/SimpleBoa.java	(revision 20)
@@ -0,0 +1,74 @@
+package geniusweb.exampleparties.simpleboa;
+
+import geniusweb.boa.BoaState;
+import geniusweb.boa.DefaultBoa;
+import geniusweb.boa.InstantiationFailedException;
+import geniusweb.boa.acceptancestrategy.AcceptanceStrategy;
+import geniusweb.boa.acceptancestrategy.TimeDependentAcceptanceStrategy;
+import geniusweb.boa.biddingstrategy.BiddingStrategy;
+import geniusweb.boa.biddingstrategy.TimeDependentBiddingStrategy;
+import geniusweb.opponentmodel.FrequencyOpponentModel;
+import geniusweb.opponentmodel.OpponentModel;
+import geniusweb.party.Party;
+import geniusweb.party.inform.Settings;
+import tudelft.utilities.logging.Reporter;
+
+/**
+ * This example illustrates how to make a custom party by extending Boa and
+ * plugging in some components. This is an easy way to make a {@link Party} that
+ * is not requiring configuration/parameters. This also demonstrates how to hard
+ * set parameters of strategies so that the party runs as expected without
+ * requiring any parameters to be set.
+ */
+public class SimpleBoa extends DefaultBoa {
+	public SimpleBoa() {
+		super();
+	}
+
+	public SimpleBoa(Reporter reporter) {
+		super(reporter); // for debugging
+	}
+
+	@Override
+	protected Class<? extends OpponentModel> getOpponentModel(Settings settings)
+			throws InstantiationFailedException {
+		return FrequencyOpponentModel.class;
+	}
+
+	@Override
+	protected BiddingStrategy getBiddingStrategy(Settings settings)
+			throws InstantiationFailedException {
+		return new TimeDependentBiddingStrategy() {
+			@Override
+			protected Double getE(BoaState state) {
+				return 0.7;
+			}
+
+			@Override
+			protected Double getK(BoaState state) {
+				return 0.2;
+			}
+		};
+	}
+
+	@Override
+	protected AcceptanceStrategy getAccceptanceStrategy(Settings settings)
+			throws InstantiationFailedException {
+		return new TimeDependentAcceptanceStrategy() {
+			@Override
+			protected Double getE(BoaState state) {
+				return 0.7;
+			}
+
+			@Override
+			protected Double getK(BoaState state) {
+				return 0.2;
+			}
+		};
+	}
+
+	@Override
+	public String getDescription() {
+		return "Demo of hard coding a party with Boa Components";
+	}
+}
Index: exampleparties/simpleboa/src/test/java/geniusweb/exampleparties/simpleboa/SimpleBoaTest.java
===================================================================
--- exampleparties/simpleboa/src/test/java/geniusweb/exampleparties/simpleboa/SimpleBoaTest.java	(revision 20)
+++ exampleparties/simpleboa/src/test/java/geniusweb/exampleparties/simpleboa/SimpleBoaTest.java	(revision 20)
@@ -0,0 +1,229 @@
+package geniusweb.exampleparties.simpleboa;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.logging.Level;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import geniusweb.actions.Accept;
+import geniusweb.actions.Action;
+import geniusweb.actions.EndNegotiation;
+import geniusweb.actions.Offer;
+import geniusweb.actions.PartyId;
+import geniusweb.bidspace.AllBidsList;
+import geniusweb.connection.ConnectionEnd;
+import geniusweb.issuevalue.Bid;
+import geniusweb.party.Capabilities;
+import geniusweb.party.inform.ActionDone;
+import geniusweb.party.inform.Finished;
+import geniusweb.party.inform.Inform;
+import geniusweb.party.inform.Settings;
+import geniusweb.party.inform.YourTurn;
+import geniusweb.profile.Profile;
+import geniusweb.profile.utilityspace.LinearAdditive;
+import geniusweb.progress.ProgressRounds;
+import geniusweb.references.Parameters;
+import geniusweb.references.ProfileRef;
+import geniusweb.references.ProtocolRef;
+import geniusweb.references.Reference;
+import tudelft.utilities.listener.DefaultListenable;
+import tudelft.utilities.logging.Reporter;
+
+public class SimpleBoaTest {
+
+	private static final String SAOP = "SAOP";
+	private static final PartyId otherparty = new PartyId("other");
+	private static final String PROFILE = "src/test/resources/testprofile.json";
+	private final static ObjectMapper jackson = new ObjectMapper();
+
+	private SimpleBoa party;
+	private final TestConnection connection = new TestConnection();
+	private final ProtocolRef protocol = mock(ProtocolRef.class);
+	private final ProgressRounds progress = mock(ProgressRounds.class);
+	private Settings settings;
+	private LinearAdditive profile;
+	private final Parameters parameters = new Parameters();
+
+	@Before
+	public void before() throws JsonParseException, JsonMappingException,
+			IOException, URISyntaxException {
+		party = new SimpleBoa();
+		settings = new Settings(new PartyId("party1"),
+				new ProfileRef(new URI("file:" + PROFILE)), protocol, progress,
+				parameters);
+
+		String serialized = new String(Files.readAllBytes(Paths.get(PROFILE)),
+				StandardCharsets.UTF_8);
+		profile = (LinearAdditive) jackson.readValue(serialized, Profile.class);
+
+	}
+
+	@Test
+	public void smokeTest() {
+	}
+
+	@Test
+	public void getDescriptionTest() {
+		assertNotNull(party.getDescription());
+	}
+
+	@Test
+	public void getCapabilitiesTest() {
+		Capabilities capabilities = party.getCapabilities();
+		assertFalse("party does not define protocols",
+				capabilities.getBehaviours().isEmpty());
+	}
+
+	@Test
+	public void testInformConnection() {
+		party.connect(connection);
+		// agent should not start acting just after an inform
+		assertEquals(0, connection.getActions().size());
+	}
+
+	@Test
+	public void testInformSettings() {
+		party.connect(connection);
+		connection.notifyListeners(settings);
+		assertEquals(0, connection.getActions().size());
+	}
+
+	@Test
+	public void testInformAndConnection() {
+		party.connect(connection);
+		party.notifyChange(settings);
+		assertEquals(0, connection.getActions().size());
+	}
+
+	@Test
+	public void testOtherWalksAway() {
+		party.connect(connection);
+		party.notifyChange(settings);
+
+		party.notifyChange(new ActionDone(new EndNegotiation(otherparty)));
+
+		// party should not act at this point
+		assertEquals(0, connection.getActions().size());
+	}
+
+	@Test
+	public void testAgentHasFirstTurn() {
+		party.connect(connection);
+		party.notifyChange(settings);
+
+		party.notifyChange(new YourTurn());
+		assertEquals(1, connection.getActions().size());
+		assertTrue(connection.getActions().get(0) instanceof Offer);
+	}
+
+	@Test
+	public void testAgentAccepts() {
+		// at very start, only perfect bid is accepted.
+		// so set time at 10% where good bids are also accepted.
+		when(progress.get(any())).thenReturn(0.1);
+
+		party.connect(connection);
+		party.notifyChange(settings);
+
+		Bid bid = findGoodBid();
+		party.notifyChange(new ActionDone(new Offer(otherparty, bid)));
+		party.notifyChange(new YourTurn());
+		assertEquals(1, connection.getActions().size());
+		assertTrue(connection.getActions().get(0) instanceof Accept);
+
+	}
+
+	@Test
+	public void testAgentLogsFinal() {
+		// this log output is optional, this is to show how to check log
+		Reporter reporter = mock(Reporter.class);
+		party = new SimpleBoa(reporter);
+		party.connect(connection);
+		party.notifyChange(settings);
+		party.notifyChange(new Finished(null));
+
+		verify(reporter).log(eq(Level.INFO),
+				eq("Final ourcome:Finished[null]"));
+	}
+
+	@Test
+	public void testGetCapabilities() {
+		assertTrue(party.getCapabilities().getBehaviours().contains(SAOP));
+	}
+
+	private Bid findGoodBid() {
+		for (Bid bid : new AllBidsList(profile.getDomain())) {
+			if (profile.getUtility(bid)
+					.compareTo(BigDecimal.valueOf(0.7)) > 0) {
+				return bid;
+			}
+		}
+		throw new IllegalStateException(
+				"Test can not be done: there is no good bid with utility>0.7");
+	}
+
+}
+
+/**
+ * A "real" connection object, because the party is going to subscribe etc, and
+ * without a real connection we would have to do a lot of mocks that would make
+ * the test very hard to read.
+ *
+ */
+class TestConnection extends DefaultListenable<Inform>
+		implements ConnectionEnd<Inform, Action> {
+	private List<Action> actions = new LinkedList<>();
+
+	@Override
+	public void send(Action action) throws IOException {
+		actions.add(action);
+	}
+
+	@Override
+	public Reference getReference() {
+		return null;
+	}
+
+	@Override
+	public URI getRemoteURI() {
+		return null;
+	}
+
+	@Override
+	public void close() {
+
+	}
+
+	@Override
+	public Error getError() {
+		return null;
+	}
+
+	public List<Action> getActions() {
+		return actions;
+	}
+
+}
Index: exampleparties/simpleboa/src/test/resources/testprofile.json
===================================================================
--- exampleparties/simpleboa/src/test/resources/testprofile.json	(revision 20)
+++ exampleparties/simpleboa/src/test/resources/testprofile.json	(revision 20)
@@ -0,0 +1,45 @@
+{
+	"LinearAdditiveUtilitySpace": {
+		"issueUtilities": {
+			"issue2": {
+				"numberutils": {
+					"lowValue": 12,
+					"lowUtility": 0.3,
+					"highValue": 18,
+					"highUtility": 0.9
+				}
+			},
+			"issue1": {
+				"discreteutils": {
+					"valueUtilities": {
+						"issue1value1": 0.2,
+						"issue1value2": 0.8
+					}
+				}
+			}
+		},
+		"issueWeights": {
+			"issue2": 0.4,
+			"issue1": 0.6
+		},
+		"domain": {
+			"name": "test",
+			"issuesValues": {
+				"issue2": {
+					"range": ["12", "18", "1"]
+				},
+				"issue1": {
+					"values": ["issue1value1", "issue1value2"]
+				}
+			}
+		},
+		"name": "testprofile",
+				"reservationBid": {
+			"issuevalues": {
+				"issue1": "issuevalue1",
+				"issue2": "12"
+			}
+		}
+		
+	}
+}
Index: exampleparties/simpleshaop/pom.xml
===================================================================
--- exampleparties/simpleshaop/pom.xml	(revision 19)
+++ exampleparties/simpleshaop/pom.xml	(revision 20)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb.exampleparties</groupId>
 	<artifactId>simpleshaop</artifactId>
-	<version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
+	<version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
 	<packaging>jar</packaging>
 
@@ -17,5 +17,5 @@
 		<passwd>${env.ARTIFACTORY_PASS}</passwd>
 		<jackson-2-version>2.9.6</jackson-2-version>
-		<geniusweb.version>1.4.2</geniusweb.version>
+		<geniusweb.version>1.4.4</geniusweb.version>
 	</properties>
 
Index: exampleparties/timedependentparty/pom.xml
===================================================================
--- exampleparties/timedependentparty/pom.xml	(revision 19)
+++ exampleparties/timedependentparty/pom.xml	(revision 20)
@@ -6,5 +6,5 @@
 	<groupId>geniusweb.exampleparties</groupId>
 	<artifactId>timedependentparty</artifactId>
-	<version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
+	<version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
 	<packaging>jar</packaging>
 
@@ -17,5 +17,5 @@
 		<passwd>${env.ARTIFACTORY_PASS}</passwd>
 		<jackson-2-version>2.9.10</jackson-2-version>
-		<geniusweb.version>1.4.2</geniusweb.version>
+		<geniusweb.version>1.4.4</geniusweb.version>
 	</properties>
 
Index: exampleparties/timedependentparty/src/main/java/geniusweb/exampleparties/timedependentparty/TimeDependentParty.java
===================================================================
--- exampleparties/timedependentparty/src/main/java/geniusweb/exampleparties/timedependentparty/TimeDependentParty.java	(revision 19)
+++ exampleparties/timedependentparty/src/main/java/geniusweb/exampleparties/timedependentparty/TimeDependentParty.java	(revision 20)
@@ -126,7 +126,7 @@
 
 		Action myAction;
-		if (bid == null || lastReceivedBid != null
+		if (bid == null || (lastReceivedBid != null
 				&& utilspace.getUtility(lastReceivedBid)
-						.compareTo(utilspace.getUtility(bid)) >= 0) {
+						.compareTo(utilspace.getUtility(bid)) >= 0)) {
 			// if bid==null we failed to suggest next bid.
 			myAction = new Accept(me, lastReceivedBid);
@@ -155,6 +155,8 @@
 		BigDecimal utilityGoal = utilityGoal(time, getE());
 		ImmutableList<Bid> options = extendedspace.getBids(utilityGoal);
-		if (options.size() == BigInteger.ZERO)
-			return null;
+		if (options.size() == BigInteger.ZERO) {
+			// if we can't find good bid, get max util bid....
+			options = extendedspace.getBids(extendedspace.getMax());
+		}
 		// pick a random one.
 		return options.get(new Random().nextInt(options.size().intValue()));
