Repository: neo4j-contrib/neo4j-jdbc
Pull request #456 (2023-07-19 07:58:02)

Remove proxy


Patch:
diff --git a/README.adoc b/README.adoc
index 3c5f9fbb..8c001403 100644
--- a/README.adoc
+++ b/README.adoc
@@ -129,7 +129,7 @@ try (Connection connection = DriverManager.getConnection("jdbc:neo4j:bolt://loca
 ** `jdbc:neo4j:http://<host>:<port>/` (e.g. `jdbc:neo4j:http://localhost/`)
 ** `jdbc:neo4j:bolt://<host>:<port>/` (e.g. `jdbc:neo4j:bolt://localhost/`)
 ** `jdbc:neo4j:neo4j://<host>:<port>/` (e.g. `jdbc:neo4j:bolt+routing://localhost?routing:policy=eu`)
-* You can also use additional parameters in the URL separated by an `&` character for authentication, debug mode, SSL encryption and flattening e.g. `jdbc:neo4j:bolt://localhost/?user=neo4j&password=xxxx&debug=true&nossl&flatten=[-1,100,1000]`
+* You can also use additional parameters in the URL separated by an `&` character for authentication, SSL encryption and flattening e.g. `jdbc:neo4j:bolt://localhost/?user=neo4j&password=xxxx&nossl&flatten=[-1,100,1000]`
 
 [NOTE]
 *We've deprecated the usage of `,` as the parameter separator in favour of `&` to be compliant with the URL parameter syntax.*
diff --git a/docs/index.html b/docs/index.html
index ff774e96..aa30213c 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -632,7 +632,7 @@ try (Connection con = DriverManager.getConnection("jdbc:neo4j:bolt://localhost",
 </div>
 </li>
 <li>
-<p>You can also use additional parameters in the URL separated by an <code>&amp;</code> character for authentication, debug mode, SSL encryption and flattening e.g. <code>jdbc:neo4j:bolt://localhost/?user=neo4j&amp;password=xxxx&amp;debug=true&amp;nossl&amp;flatten=[-1,100,1000]</code></p>
+<p>You can also use additional parameters in the URL separated by an <code>&amp;</code> character for authentication, SSL encryption and flattening e.g. <code>jdbc:neo4j:bolt://localhost/?user=neo4j&amp;password=xxxx&amp;nossl&amp;flatten=[-1,100,1000]</code></p>
 </li>
 </ul>
 </div>
diff --git a/index.html b/index.html
index ff774e96..aa30213c 100644
--- a/index.html
+++ b/index.html
@@ -632,7 +632,7 @@ try (Connection con = DriverManager.getConnection("jdbc:neo4j:bolt://localhost",
 </div>
 </li>
 <li>
-<p>You can also use additional parameters in the URL separated by an <code>&amp;</code> character for authentication, debug mode, SSL encryption and flattening e.g. <code>jdbc:neo4j:bolt://localhost/?user=neo4j&amp;password=xxxx&amp;debug=true&amp;nossl&amp;flatten=[-1,100,1000]</code></p>
+<p>You can also use additional parameters in the URL separated by an <code>&amp;</code> character for authentication, SSL encryption and flattening e.g. <code>jdbc:neo4j:bolt://localhost/?user=neo4j&amp;password=xxxx&amp;nossl&amp;flatten=[-1,100,1000]</code></p>
 </li>
 </ul>
 </div>
diff --git a/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jDatabaseMetaData.java b/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jDatabaseMetaData.java
index 13d0b50f..36df16b4 100644
--- a/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jDatabaseMetaData.java
+++ b/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jDatabaseMetaData.java
@@ -28,9 +28,7 @@ import org.neo4j.jdbc.bolt.impl.BoltNeo4jConnectionImpl;
 import org.neo4j.jdbc.metadata.Column;
 import org.neo4j.jdbc.metadata.Table;
 import org.neo4j.jdbc.utils.BoltNeo4jUtils;
-import org.neo4j.jdbc.utils.Neo4jInvocationHandler;
 
-import java.lang.reflect.Proxy;
 import java.sql.DatabaseMetaData;
 import java.sql.SQLException;
 import java.util.ArrayList;
@@ -78,10 +76,8 @@ public class BoltNeo4jDatabaseMetaData extends Neo4jDatabaseMetaData {
 		}
 	}
 
-	public static DatabaseMetaData newInstance(boolean debug, BoltNeo4jConnectionImpl connection) {
-		DatabaseMetaData dbmd = new BoltNeo4jDatabaseMetaData(connection);
-		return (DatabaseMetaData) Proxy.newProxyInstance(BoltNeo4jDatabaseMetaData.class.getClassLoader(), new Class[] { DatabaseMetaData.class },
-				new Neo4jInvocationHandler(dbmd, debug));
+	public static DatabaseMetaData newInstance(BoltNeo4jConnectionImpl connection) {
+		return new BoltNeo4jDatabaseMetaData(connection);
 	}
 
 	private void getDatabaseVersion(Session session) {
diff --git a/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jPreparedStatement.java b/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jPreparedStatement.java
index d9a75e97..7030b5d3 100644
--- a/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jPreparedStatement.java
+++ b/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jPreparedStatement.java
@@ -21,22 +21,25 @@ package org.neo4j.jdbc.bolt;
 
 import org.neo4j.driver.Result;
 import org.neo4j.driver.summary.SummaryCounters;
-import org.neo4j.jdbc.Loggable;
 import org.neo4j.jdbc.Neo4jParameterMetaData;
 import org.neo4j.jdbc.Neo4jPreparedStatement;
 import org.neo4j.jdbc.Neo4jResultSetMetaData;
 import org.neo4j.jdbc.bolt.impl.BoltNeo4jConnectionImpl;
 import org.neo4j.jdbc.utils.BoltNeo4jUtils;
-import org.neo4j.jdbc.utils.Neo4jInvocationHandler;
 
-import java.lang.reflect.Proxy;
-import java.sql.*;
+import java.sql.Array;
+import java.sql.BatchUpdateException;
+import java.sql.Date;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Time;
+import java.sql.Timestamp;
 import java.time.Instant;
 import java.time.ZoneId;
 import java.time.ZonedDateTime;
 import java.time.temporal.Temporal;
 import java.util.Calendar;
-import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.function.Function;
@@ -44,12 +47,12 @@ import java.util.function.Function;
 import static java.util.Arrays.copyOf;
 import static org.neo4j.jdbc.utils.BoltNeo4jUtils.executeInTx;
 
-public class BoltNeo4jPreparedStatement extends Neo4jPreparedStatement implements Loggable {
+public class BoltNeo4jPreparedStatement extends Neo4jPreparedStatement {
 
 	private final ResultSetFactory resultSetFactory;
 
 	private BoltNeo4jPreparedStatement(BoltNeo4jConnectionImpl connection, String rawStatement, int... rsParams) {
-		this(connection, BoltNeo4jResultSet::newInstance, rawStatement, rsParams);
+		this(connection, (statement1, iterator, params) -> BoltNeo4jResultSet.newInstance(statement1, iterator, params), rawStatement, rsParams);
 	}
 
 	// visible for testing
@@ -59,16 +62,13 @@ public class BoltNeo4jPreparedStatement extends Neo4jPreparedStatement implement
 		this.resultSetParams = rsParams;
 	}
 
-	public static PreparedStatement newInstance(boolean debug, BoltNeo4jConnectionImpl connection, String rawStatement, int... rsParams) {
-		PreparedStatement ps = new BoltNeo4jPreparedStatement(connection, rawStatement, rsParams);
-		((Neo4jPreparedStatement) ps).setDebug(debug);
-		return (PreparedStatement) Proxy.newProxyInstance(BoltNeo4jPreparedStatement.class.getClassLoader(), new Class[] { PreparedStatement.class },
-				new Neo4jInvocationHandler(ps, debug));
+	public static PreparedStatement newInstance(BoltNeo4jConnectionImpl connection, String rawStatement, int... rsParams) {
+		return new BoltNeo4jPreparedStatement(connection, rawStatement, rsParams);
 	}
 
 	@Override public ResultSet executeQuery() throws SQLException {
 		return executeInternal((result) -> {
-			this.currentResultSet = this.resultSetFactory.create(this.hasDebug(), this, result, this.resultSetParams);
+			this.currentResultSet = this.resultSetFactory.create(this, result, this.resultSetParams);
 			this.currentUpdateCount = -1;
 			return currentResultSet;
 		});
@@ -87,7 +87,7 @@ public class BoltNeo4jPreparedStatement extends Neo4jPreparedStatement implement
 		return executeInternal((result) -> {
 			boolean hasResultSet = result.hasNext();
 			if (hasResultSet) {
-				this.currentResultSet = this.resultSetFactory.create(this.hasDebug(), this, result, this.resultSetParams);
+				this.currentResultSet = this.resultSetFactory.create(this, result, this.resultSetParams);
 				this.currentUpdateCount = -1;
 			} else {
 				this.currentResultSet = null;
diff --git a/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSet.java b/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSet.java
index e0671102..3a1b72f6 100644
--- a/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSet.java
+++ b/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSet.java
@@ -45,14 +45,10 @@ import org.neo4j.driver.util.Pair;
 import org.neo4j.jdbc.Neo4jArray;
 import org.neo4j.jdbc.Neo4jConnection;
 import org.neo4j.jdbc.Neo4jResultSet;
-import org.neo4j.jdbc.bolt.impl.BoltNeo4jConnectionImpl;
 import org.neo4j.jdbc.impl.ListArray;
 import org.neo4j.jdbc.utils.JSONUtils;
-import org.neo4j.jdbc.utils.Neo4jInvocationHandler;
 import org.neo4j.jdbc.utils.ObjectConverter;
 
-import java.lang.reflect.Proxy;
-import java.sql.Connection;
 import java.sql.Date;
 import java.sql.ResultSet;
 import java.sql.ResultSetMetaData;
@@ -68,14 +64,12 @@ import java.time.ZonedDateTime;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Calendar;
-import java.util.Collections;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.concurrent.Callable;
-import java.util.stream.Stream;
 
 import static org.neo4j.jdbc.utils.DataConverterUtils.convertObject;
 import static org.neo4j.jdbc.utils.DataConverterUtils.valueToDate;
@@ -151,13 +145,11 @@ public class BoltNeo4jResultSet extends Neo4jResultSet {
 				}
 			});
 		}
-		this.metaData = BoltNeo4jResultSetMetaData.newInstance(false, this.classes, this.keys);
+		this.metaData = BoltNeo4jResultSetMetaData.newInstance(this.classes, this.keys);
 	}
 
-	public static ResultSet newInstance(boolean debug, Statement statement, Result iterator, int... params) {
-		ResultSet rs = new BoltNeo4jResultSet(statement, iterator, params);
-		return (ResultSet) Proxy
-				.newProxyInstance(BoltNeo4jResultSet.class.getClassLoader(), new Class[] { ResultSet.class }, new Neo4jInvocationHandler(rs, debug));
+	public static ResultSet newInstance(Statement statement, Result iterator, int... params) {
+		return new BoltNeo4jResultSet(statement, iterator, params);
 	}
 
 	private void flattenResultSet() {
diff --git a/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetMetaData.java b/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetMetaData.java
index 3cd0a46a..fa63a4b1 100644
--- a/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetMetaData.java
+++ b/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetMetaData.java
@@ -22,9 +22,7 @@ package org.neo4j.jdbc.bolt;
 import org.neo4j.driver.internal.types.InternalTypeSystem;
 import org.neo4j.driver.types.Type;
 import org.neo4j.jdbc.Neo4jResultSetMetaData;
-import org.neo4j.jdbc.utils.Neo4jInvocationHandler;
 
-import java.lang.reflect.Proxy;
 import java.sql.Array;
 import java.sql.ResultSetMetaData;
 import java.sql.SQLException;
@@ -91,10 +89,8 @@ public class BoltNeo4jResultSetMetaData extends Neo4jResultSetMetaData {
 		this.columnType = types.toArray(new Type[this.keys.size() + 1]);
 	}
 
-	public static ResultSetMetaData newInstance(boolean debug, List<Type> types, List<String> keys) {
-		ResultSetMetaData rsmd = new BoltNeo4jResultSetMetaData(types, keys);
-		return (ResultSetMetaData) Proxy
-				.newProxyInstance(BoltNeo4jResultSetMetaData.class.getClassLoader(), new Class[] { ResultSetMetaData.class }, new Neo4jInvocationHandler(rsmd, debug));
+	public static ResultSetMetaData newInstance(List<Type> types, List<String> keys) {
+		return new BoltNeo4jResultSetMetaData(types, keys);
 	}
 
 	/**
diff --git a/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jStatement.java b/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jStatement.java
index 9e855739..64a8d929 100644
--- a/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jStatement.java
+++ b/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jStatement.java
@@ -24,9 +24,7 @@ import org.neo4j.driver.summary.SummaryCounters;
 import org.neo4j.jdbc.Neo4jStatement;
 import org.neo4j.jdbc.bolt.impl.BoltNeo4jConnectionImpl;
 import org.neo4j.jdbc.utils.BoltNeo4jUtils;
-import org.neo4j.jdbc.utils.Neo4jInvocationHandler;
 
-import java.lang.reflect.Proxy;
 import java.sql.BatchUpdateException;
 import java.sql.ResultSet;
 import java.sql.SQLException;
@@ -60,16 +58,13 @@ public class BoltNeo4jStatement extends Neo4jStatement {
 		this.batchStatements = new ArrayList<>();
 	}
 
-	public static Statement newInstance(boolean debug, BoltNeo4jConnectionImpl connection, int... rsParams) {
-		Neo4jStatement statement = new BoltNeo4jStatement(connection, BoltNeo4jResultSet::newInstance, rsParams);
-		statement.setDebug(debug);
-		return (Statement) Proxy.newProxyInstance(BoltNeo4jStatement.class.getClassLoader(), new Class[] { Statement.class },
-				new Neo4jInvocationHandler(statement, debug));
+	public static Statement newInstance(BoltNeo4jConnectionImpl connection, int... rsParams) {
+		return new BoltNeo4jStatement(connection, BoltNeo4jResultSet::newInstance, rsParams);
 	}
 
 	@Override public ResultSet executeQuery(String sql) throws SQLException {
 		return executeInternal(sql, (result) -> {
-			this.currentResultSet = this.resultSetFactory.create(this.hasDebug(), this, result, this.resultSetParams);
+			this.currentResultSet = this.resultSetFactory.create(this, result, this.resultSetParams);
 			this.currentUpdateCount = -1;
 			return this.currentResultSet;
 		});
@@ -89,7 +84,7 @@ public class BoltNeo4jStatement extends Neo4jStatement {
 			if (result != null) {
 				boolean hasResultSet = result.hasNext();
 				if (hasResultSet) {
-					this.currentResultSet = BoltNeo4jResultSet.newInstance(this.hasDebug(), this, result, this.resultSetParams);
+					this.currentResultSet = BoltNeo4jResultSet.newInstance(this, result, this.resultSetParams);
 					this.currentUpdateCount = -1;
 				} else {
 					this.currentResultSet = null;
diff --git a/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/ResultSetFactory.java b/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/ResultSetFactory.java
index c49753d3..15666a20 100644
--- a/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/ResultSetFactory.java
+++ b/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/ResultSetFactory.java
@@ -8,5 +8,5 @@ import java.sql.Statement;
 @FunctionalInterface
 interface ResultSetFactory {
 
-    ResultSet create(boolean debug, Statement statement, Result iterator, int... params);
+    ResultSet create(Statement statement, Result iterator, int... params);
 }
diff --git a/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/impl/BoltNeo4jConnectionImpl.java b/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/impl/BoltNeo4jConnectionImpl.java
index d3d0afa2..3879423f 100644
--- a/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/impl/BoltNeo4jConnectionImpl.java
+++ b/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/impl/BoltNeo4jConnectionImpl.java
@@ -32,14 +32,11 @@ import org.neo4j.jdbc.bolt.BoltNeo4jDatabaseMetaData;
 import org.neo4j.jdbc.bolt.BoltNeo4jPreparedStatement;
 import org.neo4j.jdbc.bolt.BoltNeo4jResultSet;
 import org.neo4j.jdbc.bolt.BoltNeo4jStatement;
-import org.neo4j.jdbc.utils.BoltNeo4jUtils;
 import org.neo4j.jdbc.boltrouting.BoltRoutingNeo4jDriver;
 import org.neo4j.jdbc.impl.Neo4jConnectionImpl;
-import org.neo4j.jdbc.utils.Neo4jInvocationHandler;
+import org.neo4j.jdbc.utils.BoltNeo4jUtils;
 import org.neo4j.jdbc.utils.TimeLimitedCodeBlock;
 
-import java.lang.reflect.Proxy;
-import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.SQLClientInfoException;
 import java.sql.SQLException;
@@ -87,10 +84,7 @@ public class BoltNeo4jConnectionImpl extends Neo4jConnectionImpl implements Bolt
 	}
 
 	public static BoltNeo4jConnection newInstance(Driver driver, Properties info, String url) {
-		BoltNeo4jConnection boltConnection = new BoltNeo4jConnectionImpl(driver, info, url);
-		return (BoltNeo4jConnection) Proxy
-				.newProxyInstance(BoltNeo4jConnectionImpl.class.getClassLoader(), new Class[] { Connection.class, BoltNeo4jConnection.class },
-						new Neo4jInvocationHandler(boltConnection, BoltNeo4jConnectionImpl.hasDebug(info)));
+		return new BoltNeo4jConnectionImpl(driver, info, url);
 	}
 
 	/**
@@ -245,7 +239,7 @@ public class BoltNeo4jConnectionImpl extends Neo4jConnectionImpl implements Bolt
 		this.checkConcurrencyParams(resultSetConcurrency);
 		this.checkHoldabilityParams(resultSetHoldability);
 		this.initTransaction();
-		return BoltNeo4jStatement.newInstance(false, this, resultSetType, resultSetConcurrency, resultSetHoldability);
+		return BoltNeo4jStatement.newInstance(this, resultSetType, resultSetConcurrency, resultSetHoldability);
 	}
 
 	/*-------------------------------*/
@@ -266,7 +260,7 @@ public class BoltNeo4jConnectionImpl extends Neo4jConnectionImpl implements Bolt
 		this.checkConcurrencyParams(resultSetConcurrency);
 		this.checkHoldabilityParams(resultSetHoldability);
 		this.initTransaction();
-		return BoltNeo4jPreparedStatement.newInstance(false, this, nativeSQL(sql), resultSetType, resultSetConcurrency, resultSetHoldability);
+		return BoltNeo4jPreparedStatement.newInstance(this, nativeSQL(sql), resultSetType, resultSetConcurrency, resultSetHoldability);
 	}
 
 	/*-------------------*/
diff --git a/neo4j-jdbc-http/src/main/java/org/neo4j/jdbc/http/HttpDriver.java b/neo4j-jdbc-http/src/main/java/org/neo4j/jdbc/http/HttpDriver.java
index 70a96f2e..6664d1d9 100644
--- a/neo4j-jdbc-http/src/main/java/org/neo4j/jdbc/http/HttpDriver.java
+++ b/neo4j-jdbc-http/src/main/java/org/neo4j/jdbc/http/HttpDriver.java
@@ -20,7 +20,6 @@
 package org.neo4j.jdbc.http;
 
 import org.neo4j.jdbc.Neo4jDriver;
-import org.neo4j.jdbc.InstanceFactory;
 
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -73,7 +72,7 @@ public class HttpDriver extends Neo4jDriver {
 				if (neo4jUrl.getPort() > 0) {
 					port = neo4jUrl.getPort();
 				}
-				connection = InstanceFactory.debug(new HttpNeo4jConnection(host, port, secure, props, url));
+				connection = new HttpNeo4jConnection(host, port, secure, props, url);
 			}
 		} catch (MalformedURLException e) {
 			throw new SQLException(e);
diff --git a/neo4j-jdbc-http/src/main/java/org/neo4j/jdbc/http/HttpNeo4jConnection.java b/neo4j-jdbc-http/src/main/java/org/neo4j/jdbc/http/HttpNeo4jConnection.java
index 9e1206b1..5755cfa3 100644
--- a/neo4j-jdbc-http/src/main/java/org/neo4j/jdbc/http/HttpNeo4jConnection.java
+++ b/neo4j-jdbc-http/src/main/java/org/neo4j/jdbc/http/HttpNeo4jConnection.java
@@ -37,12 +37,10 @@ import java.util.Map;
 import java.util.Properties;
 import java.util.concurrent.TimeUnit;
 
-public class HttpNeo4jConnection extends Neo4jConnectionImpl implements Loggable {
+public class HttpNeo4jConnection extends Neo4jConnectionImpl {
 
 	CypherExecutor executor;
 	private boolean isClosed = false;
-	private boolean debug = false;
-	private int debugLevel;
 
 	/**
 	 * Default constructor.
@@ -136,17 +134,17 @@ public class HttpNeo4jConnection extends Neo4jConnectionImpl implements Loggable
 
 	@Override public java.sql.Statement createStatement() throws SQLException {
 		this.checkClosed();
-		return InstanceFactory.debug(new HttpNeo4jStatement(this));
+		return new HttpNeo4jStatement(this);
 	}
 
 	@Override public java.sql.Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException {
 		this.checkClosed();
-		return InstanceFactory.debug(new HttpNeo4jStatement(this));
+		return new HttpNeo4jStatement(this);
 	}
 
 	@Override public java.sql.Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
 		this.checkClosed();
-		return InstanceFactory.debug(new HttpNeo4jStatement(this));
+		return new HttpNeo4jStatement(this);
 	}
 
 	/*-------------------------------*/
@@ -155,18 +153,18 @@ public class HttpNeo4jConnection extends Neo4jConnectionImpl implements Loggable
 
 	@Override public PreparedStatement prepareStatement(String cypher) throws SQLException {
 		this.checkClosed();
-		return InstanceFactory.debug(new HttpNeo4jPreparedStatement(this, cypher));
+		return new HttpNeo4jPreparedStatement(this, cypher);
 	}
 
 	@Override public PreparedStatement prepareStatement(String cypher, int resultSetType, int resultSetConcurrency) throws SQLException {
 		this.checkClosed();
-		return InstanceFactory.debug(new HttpNeo4jPreparedStatement(this, cypher));
+		return new HttpNeo4jPreparedStatement(this, cypher);
 	}
 
 	@Override public PreparedStatement prepareStatement(String cypher, int resultSetType, int resultSetConcurrency, int resultSetHoldability)
 			throws SQLException {
 		this.checkClosed();
-		return InstanceFactory.debug(new HttpNeo4jPreparedStatement(this, cypher));
+		return new HttpNeo4jPreparedStatement(this, cypher);
 	}
 
 	/*-------------------*/
@@ -216,20 +214,4 @@ public class HttpNeo4jConnection extends Neo4jConnectionImpl implements Loggable
 
 		return true;
 	}
-
-	@Override public boolean hasDebug() {
-		return this.debug;
-	}
-
-	@Override public void setDebug(boolean debug) {
-		this.debug = debug;
-	}
-
-	@Override public void setDebugLevel(int level) {
-		this.debugLevel = level;
-	}
-
-	@Override public int getDebugLevel() {
-		return this.debugLevel;
-	}
 }
diff --git a/neo4j-jdbc-http/src/main/java/org/neo4j/jdbc/http/HttpNeo4jPreparedStatement.java b/neo4j-jdbc-http/src/main/java/org/neo4j/jdbc/http/HttpNeo4jPreparedStatement.java
index e4a60314..a1c9d789 100644
--- a/neo4j-jdbc-http/src/main/java/org/neo4j/jdbc/http/HttpNeo4jPreparedStatement.java
+++ b/neo4j-jdbc-http/src/main/java/org/neo4j/jdbc/http/HttpNeo4jPreparedStatement.java
@@ -32,7 +32,7 @@ import java.util.Calendar;
 import java.util.List;
 import java.util.function.Function;
 
-public class HttpNeo4jPreparedStatement extends Neo4jPreparedStatement implements Loggable {
+public class HttpNeo4jPreparedStatement extends Neo4jPreparedStatement {
 
 	/**
 	 * Default constructor.
diff --git a/neo4j-jdbc-http/src/main/java/org/neo4j/jdbc/http/HttpNeo4jStatement.java b/neo4j-jdbc-http/src/main/java/org/neo4j/jdbc/http/HttpNeo4jStatement.java
index 60741341..72ea82ba 100644
--- a/neo4j-jdbc-http/src/main/java/org/neo4j/jdbc/http/HttpNeo4jStatement.java
+++ b/neo4j-jdbc-http/src/main/java/org/neo4j/jdbc/http/HttpNeo4jStatement.java
@@ -19,7 +19,6 @@
  */
 package org.neo4j.jdbc.http;
 
-import org.neo4j.jdbc.Loggable;
 import org.neo4j.jdbc.Neo4jStatement;
 import org.neo4j.jdbc.http.driver.Neo4jResponse;
 
@@ -31,7 +30,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-public class HttpNeo4jStatement extends Neo4jStatement implements Loggable {
+public class HttpNeo4jStatement extends Neo4jStatement {
 
 	public HttpNeo4jStatement(HttpNeo4jConnection httpConnection) {
 		super(httpConnection);
diff --git a/neo4j-jdbc/src/main/java/org/neo4j/jdbc/InstanceFactory.java b/neo4j-jdbc/src/main/java/org/neo4j/jdbc/InstanceFactory.java
deleted file mode 100644
index 07dafffd..00000000
--- a/neo4j-jdbc/src/main/java/org/neo4j/jdbc/InstanceFactory.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- *
- * Copyright (c) 2016 LARUS Business Automation [http://www.larus-ba.it]
- * <p>
- * This file is part of the "LARUS Integration Framework for Neo4j".
- * <p>
- * The "LARUS Integration Framework for Neo4j" is licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * <p>
- * Created on 19/4/2016
- *
- */
-package org.neo4j.jdbc;
-
-/**
- * @author AgileLARUS
- * @since 3.0.0
- */
-public class InstanceFactory {
-
-	private InstanceFactory () {}
-
-	public static <T extends Loggable> T debug(T obj) {
-		return obj;
-	}
-}
diff --git a/neo4j-jdbc/src/main/java/org/neo4j/jdbc/Loggable.java b/neo4j-jdbc/src/main/java/org/neo4j/jdbc/Loggable.java
deleted file mode 100644
index adca5794..00000000
--- a/neo4j-jdbc/src/main/java/org/neo4j/jdbc/Loggable.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- *
- * Copyright (c) 2016 LARUS Business Automation [http://www.larus-ba.it]
- * <p>
- * This file is part of the "LARUS Integration Framework for Neo4j".
- * <p>
- * The "LARUS Integration Framework for Neo4j" is licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * <p>
- * Created on 19/4/2016
- *
- */
-package org.neo4j.jdbc;
-
-/**
- * @author AgileLARUS
- * @since 3.0.0
- */
-public interface Loggable {
-	boolean hasDebug();
-
-	void setDebug(boolean debug);
-
-	void setDebugLevel(int level);
-
-	int getDebugLevel();
-}
diff --git a/neo4j-jdbc/src/main/java/org/neo4j/jdbc/Neo4jDatabaseMetaData.java b/neo4j-jdbc/src/main/java/org/neo4j/jdbc/Neo4jDatabaseMetaData.java
index dc1edafd..4f0a6728 100644
--- a/neo4j-jdbc/src/main/java/org/neo4j/jdbc/Neo4jDatabaseMetaData.java
+++ b/neo4j-jdbc/src/main/java/org/neo4j/jdbc/Neo4jDatabaseMetaData.java
@@ -254,11 +254,11 @@ public abstract class Neo4jDatabaseMetaData implements java.sql.DatabaseMetaData
 	}
 
 	@Override public ResultSet getSchemas() throws SQLException {
-		return ListNeo4jResultSet.newInstance(false, Collections.<List<Object>>emptyList(), Arrays.asList("TABLE_SCHEM","TABLE_CATALOG"));
+		return ListNeo4jResultSet.newInstance(Collections.<List<Object>>emptyList(), Arrays.asList("TABLE_SCHEM","TABLE_CATALOG"));
 	}
 
 	@Override public ResultSet getCatalogs() throws SQLException {
-		return ListNeo4jResultSet.newInstance(false, Collections.<List<Object>>emptyList(), Arrays.asList("TABLE_CAT"));
+		return ListNeo4jResultSet.newInstance(Collections.<List<Object>>emptyList(), Arrays.asList("TABLE_CAT"));
 	}
 
 	@Override public ResultSet getTableTypes() throws SQLException {
@@ -266,11 +266,11 @@ public abstract class Neo4jDatabaseMetaData implements java.sql.DatabaseMetaData
 		tableTypes.add("TABLE");
 		List<List<Object>> schemas = new ArrayList<>();
 		schemas.add(tableTypes);
-		return ListNeo4jResultSet.newInstance(false, schemas, Arrays.asList("TABLE_TYPE"));
+		return ListNeo4jResultSet.newInstance(schemas, Arrays.asList("TABLE_TYPE"));
 	}
 
 	@Override public ResultSet getProcedures(String catalog, String schemaPattern, String procedureNamePattern) throws SQLException {
-		return ListNeo4jResultSet.newInstance(false, Collections.<List<Object>>emptyList(), Collections.<String>emptyList());
+		return ListNeo4jResultSet.newInstance(Collections.<List<Object>>emptyList(), Collections.<String>emptyList());
 	}
 
 	/**
@@ -284,7 +284,7 @@ public abstract class Neo4jDatabaseMetaData implements java.sql.DatabaseMetaData
 	 */
 	@Override public ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) throws SQLException {
 		if (this.databaseLabels == null || this.databaseLabels.isEmpty()) {
-			return ListNeo4jResultSet.newInstance(false, Collections.<List<Object>>emptyList(), Collections.<String>emptyList());
+			return ListNeo4jResultSet.newInstance(Collections.<List<Object>>emptyList(), Collections.<String>emptyList());
 		}
 
 		//TODO how to manage types? nowadays there's only 'TABLE'
@@ -297,7 +297,7 @@ public abstract class Neo4jDatabaseMetaData implements java.sql.DatabaseMetaData
 				tables.add(databaseLabel.toResultSetRow());
 			}
 		}
-		return ListNeo4jResultSet.newInstance(false, tables, Table.getColumns());
+		return ListNeo4jResultSet.newInstance(tables, Table.getColumns());
 	}
 
 	/**
@@ -326,7 +326,7 @@ public abstract class Neo4jDatabaseMetaData implements java.sql.DatabaseMetaData
 	 */
 	@Override public ResultSet getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) throws SQLException {
 		if (this.databaseProperties == null || this.databaseProperties.isEmpty()) {
-			return ListNeo4jResultSet.newInstance(false, Collections.<List<Object>>emptyList(), Collections.<String>emptyList());
+			return ListNeo4jResultSet.newInstance(Collections.<List<Object>>emptyList(), Collections.<String>emptyList());
 		}
 
 		String tablePattern = toPattern(tableNamePattern);
@@ -339,7 +339,7 @@ public abstract class Neo4jDatabaseMetaData implements java.sql.DatabaseMetaData
 				columns.add(databaseKey.toResultSetRow());
 			}
 		}
-		return ListNeo4jResultSet.newInstance(false, columns, Column.getColumns());
+		return ListNeo4jResultSet.newInstance(columns, Column.getColumns());
 	}
 
 	@Override public String getSearchStringEscape() throws SQLException {
@@ -731,7 +731,7 @@ public abstract class Neo4jDatabaseMetaData implements java.sql.DatabaseMetaData
 	}
 
 	private ResultSet emptyResultSet() {
-		return ListNeo4jResultSet.newInstance(false, Collections.<List<Object>>emptyList(), Collections.<String>emptyList());
+		return ListNeo4jResultSet.newInstance(Collections.<List<Object>>emptyList(), Collections.<String>emptyList());
 	}
 	@Override public ResultSet getProcedureColumns(String catalog, String schemaPattern, String procedureNamePattern, String columnNamePattern)
 			throws SQLException {
@@ -898,7 +898,7 @@ public abstract class Neo4jDatabaseMetaData implements java.sql.DatabaseMetaData
 						.map(row::get)
 						.collect(Collectors.toList()))
 				.collect(Collectors.toList());
-		return ListNeo4jResultSet.newInstance(false, data, keys);
+		return ListNeo4jResultSet.newInstance(data, keys);
 	}
 
 	@Override public boolean supportsResultSetType(int type) throws SQLException {
diff --git a/neo4j-jdbc/src/main/java/org/neo4j/jdbc/Neo4jResultSet.java b/neo4j-jdbc/src/main/java/org/neo4j/jdbc/Neo4jResultSet.java
index 932fe680..001cfdca 100644
--- a/neo4j-jdbc/src/main/java/org/neo4j/jdbc/Neo4jResultSet.java
+++ b/neo4j-jdbc/src/main/java/org/neo4j/jdbc/Neo4jResultSet.java
@@ -33,7 +33,7 @@ import java.util.Map;
  * @author AgileLARUS
  * @since 3.0.0
  */
-public abstract class Neo4jResultSet implements ResultSet, Loggable {
+public abstract class Neo4jResultSet implements ResultSet {
 
 	public static final int DEFAULT_TYPE        = TYPE_FORWARD_ONLY;
 	public static final int DEFAULT_CONCURRENCY = CONCUR_READ_ONLY;
@@ -47,8 +47,6 @@ public abstract class Neo4jResultSet implements ResultSet, Loggable {
 	 */
 	protected boolean isClosed         = false;
 	protected int     currentRowNumber = 0;
-	protected boolean debug;
-	protected int     debugLevel;
 	protected int     type;
 	protected int     concurrency;
 	protected int     holdability;
@@ -771,20 +769,4 @@ public abstract class Neo4jResultSet implements ResultSet, Loggable {
 	@Override public <T> T getObject(String columnLabel, Class<T> type) throws SQLException {
 		throw ExceptionBuilder.buildUnsupportedOperationException();
 	}
-
-	@Override public boolean hasDebug() {
-		return this.debug;
-	}
-
-	@Override public void setDebug(boolean debug) {
-		this.debug = debug;
-	}
-
-	@Override public void setDebugLevel(int debugLevel) {
-		this.debugLevel = debugLevel;
-	}
-
-	@Override public int getDebugLevel() {
-		return this.debugLevel;
-	}
 }
diff --git a/neo4j-jdbc/src/main/java/org/neo4j/jdbc/Neo4jStatement.java b/neo4j-jdbc/src/main/java/org/neo4j/jdbc/Neo4jStatement.java
index 8e59cd5e..0e14c3df 100644
--- a/neo4j-jdbc/src/main/java/org/neo4j/jdbc/Neo4jStatement.java
+++ b/neo4j-jdbc/src/main/java/org/neo4j/jdbc/Neo4jStatement.java
@@ -22,7 +22,6 @@ package org.neo4j.jdbc;
 import org.neo4j.jdbc.impl.ListNeo4jResultSet;
 import org.neo4j.jdbc.utils.ExceptionBuilder;
 
-import javax.xml.transform.Result;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.SQLWarning;
@@ -34,14 +33,12 @@ import java.util.List;
  * @author AgileLARUS
  * @since 3.0.0
  */
-public abstract class Neo4jStatement implements Statement, Loggable {
+public abstract class Neo4jStatement implements Statement {
 
 	protected Neo4jConnection connection;
 	protected ResultSet       currentResultSet;
 	protected int             currentUpdateCount;
 	protected List<String>    batchStatements;
-	protected boolean         debug;
-	protected int             debugLevel;
 	protected int[]           resultSetParams;
 	private   int             maxRows;
 	private   int             queryTimeout;
@@ -307,7 +304,7 @@ public abstract class Neo4jStatement implements Statement, Loggable {
 
 	@Override public ResultSet getGeneratedKeys() throws SQLException {
 		// TODO should at least return the <id>?
-		return ListNeo4jResultSet.newInstance(false, Collections.<List<Object>>emptyList(), Collections.<String>emptyList());
+		return ListNeo4jResultSet.newInstance(Collections.<List<Object>>emptyList(), Collections.<String>emptyList());
 	}
 
 	@Override public void cancel() throws SQLException {} // do nothing
@@ -328,19 +325,4 @@ public abstract class Neo4jStatement implements Statement, Loggable {
 		return false;
 	}
 
-	@Override public boolean hasDebug() {
-		return this.debug;
-	}
-
-	@Override public void setDebug(boolean debug) {
-		this.debug = debug;
-	}
-
-	@Override public void setDebugLevel(int level) {
-		this.debugLevel = level;
-	}
-
-	@Override public int getDebugLevel() {
-		return this.debugLevel;
-	}
 }
diff --git a/neo4j-jdbc/src/main/java/org/neo4j/jdbc/impl/ListNeo4jResultSet.java b/neo4j-jdbc/src/main/java/org/neo4j/jdbc/impl/ListNeo4jResultSet.java
index 65d0308c..d203a633 100644
--- a/neo4j-jdbc/src/main/java/org/neo4j/jdbc/impl/ListNeo4jResultSet.java
+++ b/neo4j-jdbc/src/main/java/org/neo4j/jdbc/impl/ListNeo4jResultSet.java
@@ -22,9 +22,7 @@ package org.neo4j.jdbc.impl;
 import org.neo4j.jdbc.Neo4jArray;
 import org.neo4j.jdbc.Neo4jResultSet;
 import org.neo4j.jdbc.Neo4jResultSetMetaData;
-import org.neo4j.jdbc.utils.Neo4jInvocationHandler;
 
-import java.lang.reflect.Proxy;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.List;
@@ -47,10 +45,8 @@ public class ListNeo4jResultSet extends Neo4jResultSet {
 		this.keys = keys;
 	}
 
-	public static ResultSet newInstance(boolean debug, List<List<Object>> list, List<String> keys) {
-		ResultSet rs = new ListNeo4jResultSet(list, keys);
-		return (ResultSet) Proxy
-				.newProxyInstance(ListNeo4jResultSet.class.getClassLoader(), new Class[] { ResultSet.class }, new Neo4jInvocationHandler(rs, debug));
+	public static ResultSet newInstance(List<List<Object>> list, List<String> keys) {
+		return new ListNeo4jResultSet(list, keys);
 	}
 
 	@Override protected boolean innerNext() throws SQLException {
diff --git a/neo4j-jdbc/src/main/java/org/neo4j/jdbc/impl/Neo4jConnectionImpl.java b/neo4j-jdbc/src/main/java/org/neo4j/jdbc/impl/Neo4jConnectionImpl.java
index f93b1dbc..011e112a 100644
--- a/neo4j-jdbc/src/main/java/org/neo4j/jdbc/impl/Neo4jConnectionImpl.java
+++ b/neo4j-jdbc/src/main/java/org/neo4j/jdbc/impl/Neo4jConnectionImpl.java
@@ -76,10 +76,6 @@ public abstract class Neo4jConnectionImpl implements Neo4jConnection {
 		this.holdability = defaultHoldability;
 	}
 
-	public static boolean hasDebug(Properties properties) {
-		return "true".equalsIgnoreCase(properties.getProperty("debug", "false"));
-	}
-
 	/**
 	 * Get the connection url.
 	 *
diff --git a/neo4j-jdbc/src/main/java/org/neo4j/jdbc/utils/Neo4jInvocationHandler.java b/neo4j-jdbc/src/main/java/org/neo4j/jdbc/utils/Neo4jInvocationHandler.java
deleted file mode 100644
index 820218df..00000000
--- a/neo4j-jdbc/src/main/java/org/neo4j/jdbc/utils/Neo4jInvocationHandler.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/**
- * Copyright (c) 2016 LARUS Business Automation [http://www.larus-ba.it]
- * <p>
- * This file is part of the "LARUS Integration Framework for Neo4j".
- * <p>
- * The "LARUS Integration Framework for Neo4j" is licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * <p>
- * Created on 22/12/17
- */
-package org.neo4j.jdbc.utils;
-
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.logging.Logger;
-
-/**
- * @author Gianmarco Laggia @ Larus B.A.
- * @since 3.2.0
- */
-public class Neo4jInvocationHandler implements InvocationHandler {
-
-	private static final Logger LOGGER = Logger.getLogger(Neo4jInvocationHandler.class.getName());
-
-	private final Map<String, Method> methods = new HashMap<>();
-
-	private Object  target;
-	private boolean debug;
-
-	public Neo4jInvocationHandler(Object target, boolean debug) {
-		this.target = target;
-		this.debug = debug;
-
-		for (Method method : target.getClass().getMethods()) {
-			String key = getUniqueKeyFromMethod(method);
-			this.methods.put(key, method);
-		}
-	}
-
-	@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
-		try {
-			Object result = methods.get(getUniqueKeyFromMethod(method)).invoke(target, args);
-
-			if (debug) {
-				LOGGER.info("[" + target.getClass().getCanonicalName() + "] " + method.getName());
-			}
-
-			return result;
-		} catch (InvocationTargetException e) {
-			throw e.getCause();
-		}
-	}
-
-	private String getUniqueKeyFromMethod(Method method) {
-		String key = method.getName() + "_";
-		for(Class type : method.getParameterTypes()) {
-			key += type.getCanonicalName() + "_";
-		}
-		return key;
-	}
-}


Test patch:
diff --git a/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jPreparedStatementTest.java b/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jPreparedStatementTest.java
index a1a73a9f..84d076d0 100644
--- a/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jPreparedStatementTest.java
+++ b/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jPreparedStatementTest.java
@@ -98,7 +98,7 @@ public class BoltNeo4jPreparedStatementTest {
 
 	@Before public void interceptBoltResultSetConstructor() throws SQLException {
 		expectedResultSet = mock(BoltNeo4jResultSet.class);
-		resultSetFactory = (debug, statement, iterator, params) -> expectedResultSet;
+		resultSetFactory = (statement, iterator, params) -> expectedResultSet;
 		preparedStatementOneParam = new BoltNeo4jPreparedStatement(mockOpenConnection(), resultSetFactory, "RETURN $1");
 		preparedStatementTwoParams = new BoltNeo4jPreparedStatement(mockOpenConnection(), resultSetFactory, "RETURN $1+$2");
 	}
@@ -119,7 +119,7 @@ public class BoltNeo4jPreparedStatementTest {
 	}
 
 	@Test public void closeShouldNotCallCloseOnAnyResultSet() throws Exception {
-		PreparedStatement prStatement = BoltNeo4jPreparedStatement.newInstance(false, mockOpenConnectionWithResult(null), "");
+		PreparedStatement prStatement = BoltNeo4jPreparedStatement.newInstance(mockOpenConnectionWithResult(null), "");
 
 		prStatement.close();
 
@@ -565,7 +565,7 @@ public class BoltNeo4jPreparedStatementTest {
 	@Test public void getResultSetConcurrencyShouldThrowExceptionWhenCalledOnClosedStatement() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		PreparedStatement statement = BoltNeo4jPreparedStatement.newInstance(false, mockConnectionClosed(), "");
+		PreparedStatement statement = BoltNeo4jPreparedStatement.newInstance(mockConnectionClosed(), "");
 		statement.close();
 		statement.getResultSetConcurrency();
 	}
@@ -576,7 +576,7 @@ public class BoltNeo4jPreparedStatementTest {
 	@Test public void getResultSetHoldabilityShouldThrowExceptionWhenCalledOnClosedStatement() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		PreparedStatement statement = BoltNeo4jPreparedStatement.newInstance(false, mockConnectionClosed(), "");
+		PreparedStatement statement = BoltNeo4jPreparedStatement.newInstance(mockConnectionClosed(), "");
 		statement.close();
 		statement.getResultSetHoldability();
 	}
@@ -587,7 +587,7 @@ public class BoltNeo4jPreparedStatementTest {
 	@Test public void getResultSetTypeShouldThrowExceptionWhenCalledOnClosedStatement() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		PreparedStatement statement = BoltNeo4jPreparedStatement.newInstance(false, mockConnectionClosed(), "");
+		PreparedStatement statement = BoltNeo4jPreparedStatement.newInstance(mockConnectionClosed(), "");
 		statement.close();
 		statement.getResultSetType();
 	}
@@ -598,15 +598,14 @@ public class BoltNeo4jPreparedStatementTest {
 	@Test public void executeQueryShouldThrowExceptionWhenClosedConnection() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		PreparedStatement statement = BoltNeo4jPreparedStatement.newInstance(false, mockConnectionClosed(), "", 0, 0, 0);
+		PreparedStatement statement = BoltNeo4jPreparedStatement.newInstance(mockConnectionClosed(), "", 0, 0, 0);
 		statement.executeQuery();
 	}
 
 	@Test public void executeQueryShouldReturnCorrectResultSetStructureConnectionNotAutocommit() throws Exception {
 		int[] parameters = {ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT};
 		AtomicBoolean called = new AtomicBoolean(false);
-		PreparedStatement statement = new BoltNeo4jPreparedStatement(mockOpenConnectionWithResult(null), (debug, stmt, iterator, params) -> {
-			assertFalse(debug);
+		PreparedStatement statement = new BoltNeo4jPreparedStatement(mockOpenConnectionWithResult(null), (stmt, iterator, params) -> {
 			assertNotNull(stmt);
 			assertNull(iterator);
 			assertArrayEquals(parameters, params);
@@ -621,7 +620,7 @@ public class BoltNeo4jPreparedStatementTest {
 	@Test public void executeQueryShouldThrowExceptionOnClosedStatement() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		PreparedStatement statement = BoltNeo4jPreparedStatement.newInstance(false, mockOpenConnection(), StatementData.STATEMENT_MATCH_ALL);
+		PreparedStatement statement = BoltNeo4jPreparedStatement.newInstance(mockOpenConnection(), StatementData.STATEMENT_MATCH_ALL);
 		statement.close();
 
 		statement.executeQuery();
@@ -641,7 +640,7 @@ public class BoltNeo4jPreparedStatementTest {
 		when(mockSummaryCounters.nodesDeleted()).thenReturn(0);
 
 		PreparedStatement statement = BoltNeo4jPreparedStatement
-				.newInstance(false, mockOpenConnectionWithResult(mockResult), StatementData.STATEMENT_CREATE_TWO_PROPERTIES_PARAMETRIC,
+				.newInstance(mockOpenConnectionWithResult(mockResult), StatementData.STATEMENT_CREATE_TWO_PROPERTIES_PARAMETRIC,
 						ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT);
 		statement.setString(1, "test");
 		statement.setString(2, "test2");
@@ -651,7 +650,7 @@ public class BoltNeo4jPreparedStatementTest {
 	@Test public void executeUpdateShouldThrowExceptionOnClosedStatement() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		PreparedStatement statement = BoltNeo4jPreparedStatement.newInstance(false, mockOpenConnection(), StatementData.STATEMENT_MATCH_ALL);
+		PreparedStatement statement = BoltNeo4jPreparedStatement.newInstance(mockOpenConnection(), StatementData.STATEMENT_MATCH_ALL);
 		statement.close();
 
 		statement.executeUpdate();
@@ -660,7 +659,7 @@ public class BoltNeo4jPreparedStatementTest {
 	@Test public void executeUpdateShouldThrowExceptionOnClosedConnection() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		PreparedStatement statement = BoltNeo4jPreparedStatement.newInstance(false, mockConnectionClosed(), "", 0, 0, 0);
+		PreparedStatement statement = BoltNeo4jPreparedStatement.newInstance(mockConnectionClosed(), "", 0, 0, 0);
 		statement.executeUpdate();
 	}
 
@@ -685,7 +684,7 @@ public class BoltNeo4jPreparedStatementTest {
 		when(mockSummaryCounters.nodesDeleted()).thenReturn(0);
 
 		PreparedStatement statement = BoltNeo4jPreparedStatement
-				.newInstance(false, mockOpenConnectionWithResult(mockResult), StatementData.STATEMENT_CREATE_TWO_PROPERTIES_PARAMETRIC,
+				.newInstance(mockOpenConnectionWithResult(mockResult), StatementData.STATEMENT_CREATE_TWO_PROPERTIES_PARAMETRIC,
 						ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT);
 		statement.setString(1, "test");
 		statement.setString(2, "test2");
@@ -695,7 +694,7 @@ public class BoltNeo4jPreparedStatementTest {
 	@Test public void executeShouldThrowExceptionOnQueryOnClosedStatement() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		PreparedStatement statement = BoltNeo4jPreparedStatement.newInstance(false, mockOpenConnection(), StatementData.STATEMENT_MATCH_ALL);
+		PreparedStatement statement = BoltNeo4jPreparedStatement.newInstance(mockOpenConnection(), StatementData.STATEMENT_MATCH_ALL);
 		statement.close();
 
 		statement.execute();
@@ -704,7 +703,7 @@ public class BoltNeo4jPreparedStatementTest {
 	@Test public void executeShouldThrowExceptionOnUpdateOnClosedStatement() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		PreparedStatement statement = BoltNeo4jPreparedStatement.newInstance(false, mockOpenConnection(), StatementData.STATEMENT_CREATE);
+		PreparedStatement statement = BoltNeo4jPreparedStatement.newInstance(mockOpenConnection(), StatementData.STATEMENT_CREATE);
 		statement.close();
 
 		statement.execute();
@@ -713,7 +712,7 @@ public class BoltNeo4jPreparedStatementTest {
 	@Test public void executeShouldThrowExceptionOnQueryOnClosedConnection() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		PreparedStatement statement = BoltNeo4jPreparedStatement.newInstance(false, mockConnectionClosed(), "", 0, 0, 0);
+		PreparedStatement statement = BoltNeo4jPreparedStatement.newInstance(mockConnectionClosed(), "", 0, 0, 0);
 		when(statement.executeQuery()).thenCallRealMethod();
 		statement.execute();
 	}
@@ -721,7 +720,7 @@ public class BoltNeo4jPreparedStatementTest {
 	@Test public void executeShouldThrowExceptionOnUpdateOnClosedConnection() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		PreparedStatement statement = BoltNeo4jPreparedStatement.newInstance(false, mockConnectionClosed(), "", 0, 0, 0);
+		PreparedStatement statement = BoltNeo4jPreparedStatement.newInstance(mockConnectionClosed(), "", 0, 0, 0);
 		when(statement.executeUpdate()).thenCallRealMethod();
 		statement.execute();
 	}
@@ -738,7 +737,7 @@ public class BoltNeo4jPreparedStatementTest {
 	}
 
 	@Test public void getUpdateCountShouldReturnMinusOne() throws SQLException {
-		ResultSetFactory nullRsFactory = (debug, stmt, iterator, params) -> null;
+		ResultSetFactory nullRsFactory = (stmt, iterator, params) -> null;
 		BoltNeo4jPreparedStatement statement = new BoltNeo4jPreparedStatement(mockOpenConnection(), nullRsFactory, "RETURN 42");
 
 		assertEquals(-1, statement.getUpdateCount());
@@ -747,7 +746,7 @@ public class BoltNeo4jPreparedStatementTest {
 	@Test public void getUpdateCountShouldThrowExceptionOnClosedStatement() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		PreparedStatement statement = BoltNeo4jPreparedStatement.newInstance(false, mockOpenConnection(), StatementData.STATEMENT_MATCH_ALL);
+		PreparedStatement statement = BoltNeo4jPreparedStatement.newInstance(mockOpenConnection(), StatementData.STATEMENT_MATCH_ALL);
 		statement.close();
 
 		statement.getUpdateCount();
@@ -775,7 +774,7 @@ public class BoltNeo4jPreparedStatementTest {
 	@Test public void getResultSetShouldThrowExceptionOnClosedStatement() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		PreparedStatement statement = BoltNeo4jPreparedStatement.newInstance(false, mockOpenConnection(), StatementData.STATEMENT_MATCH_ALL);
+		PreparedStatement statement = BoltNeo4jPreparedStatement.newInstance(mockOpenConnection(), StatementData.STATEMENT_MATCH_ALL);
 		statement.close();
 
 		statement.getResultSet();
@@ -816,7 +815,7 @@ public class BoltNeo4jPreparedStatementTest {
 	@Test public void addBatchShouldThrowExceptionIfClosedStatement() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		PreparedStatement stmt = BoltNeo4jPreparedStatement.newInstance(false, Mocker.mockOpenConnection(), "?");
+		PreparedStatement stmt = BoltNeo4jPreparedStatement.newInstance(Mocker.mockOpenConnection(), "?");
 		stmt.setInt(1, 1);
 		stmt.close();
 		stmt.addBatch();
@@ -838,7 +837,7 @@ public class BoltNeo4jPreparedStatementTest {
 	@Test public void clearBatchShouldThrowExceptionIfClosedStatement() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		PreparedStatement stmt = BoltNeo4jPreparedStatement.newInstance(false, Mocker.mockOpenConnection(), "?");
+		PreparedStatement stmt = BoltNeo4jPreparedStatement.newInstance(Mocker.mockOpenConnection(), "?");
 		stmt.close();
 		stmt.clearBatch();
 	}
@@ -863,7 +862,7 @@ public class BoltNeo4jPreparedStatementTest {
         when(summaryCounters.nodesCreated()).thenReturn(1);
         when(summaryCounters.nodesDeleted()).thenReturn(0);
 
-		PreparedStatement stmt = BoltNeo4jPreparedStatement.newInstance(false, connection, "MATCH n WHERE id(n) = ? SET n.property=1");
+		PreparedStatement stmt = BoltNeo4jPreparedStatement.newInstance(connection, "MATCH n WHERE id(n) = ? SET n.property=1");
 		stmt.setInt(1, 1);
 		stmt.addBatch();
 		stmt.setInt(1, 2);
@@ -873,7 +872,7 @@ public class BoltNeo4jPreparedStatementTest {
 	}
 
 	@Test public void executeBatchShouldThrowExceptionOnError() throws SQLException {
-		PreparedStatement stmt = BoltNeo4jPreparedStatement.newInstance(false, Mocker.mockOpenConnection(), "?");
+		PreparedStatement stmt = BoltNeo4jPreparedStatement.newInstance(Mocker.mockOpenConnection(), "?");
 		stmt.setInt(1, 1);
 		stmt.addBatch();
 		stmt.setInt(1, 2);
@@ -899,7 +898,7 @@ public class BoltNeo4jPreparedStatementTest {
 	@Test public void executeBatchShouldThrowExceptionOnClosed() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		PreparedStatement stmt = BoltNeo4jPreparedStatement.newInstance(false, Mocker.mockConnectionClosed(), "?");
+		PreparedStatement stmt = BoltNeo4jPreparedStatement.newInstance(Mocker.mockConnectionClosed(), "?");
 		stmt.setInt(1, 1);
 		stmt.addBatch();
 		stmt.setInt(1, 2);
@@ -914,7 +913,7 @@ public class BoltNeo4jPreparedStatementTest {
 	/*------------------------------*/
 
 	@Test public void getConnectionShouldWork() throws SQLException {
-		PreparedStatement stmt = BoltNeo4jPreparedStatement.newInstance(false, Mocker.mockOpenConnection(), "?");
+		PreparedStatement stmt = BoltNeo4jPreparedStatement.newInstance(Mocker.mockOpenConnection(), "?");
 
 		assertNotNull(stmt.getConnection());
 		assertEquals(Mocker.mockOpenConnection().getClass(), stmt.getConnection().getClass());
@@ -923,7 +922,7 @@ public class BoltNeo4jPreparedStatementTest {
 	@Test public void getConnectionShouldThrowExceptionOnClosedStatement() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		PreparedStatement stmt = BoltNeo4jPreparedStatement.newInstance(false, Mocker.mockConnectionClosed(), "?");
+		PreparedStatement stmt = BoltNeo4jPreparedStatement.newInstance(Mocker.mockConnectionClosed(), "?");
 		stmt.close();
 
 		stmt.getConnection();
diff --git a/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetGettersTest.java b/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetGettersTest.java
index f292bc3b..08c61fab 100644
--- a/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetGettersTest.java
+++ b/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetGettersTest.java
@@ -59,7 +59,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void findColumnShouldReturnCorrectIndex() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		assertEquals(1, resultSet.findColumn("columnA"));
 		assertEquals(2, resultSet.findColumn("columnB"));
@@ -68,7 +68,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void findColumnShouldReturnCorrectIndexOnDifferentColumns() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_DIFF, ResultSetData.RECORD_LIST_MORE_ELEMENTS_DIFF);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		assertEquals(1, resultSet.findColumn("columnA"));
 		assertEquals(2, resultSet.findColumn("columnB"));
@@ -80,7 +80,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.findColumn("columnZ");
@@ -90,7 +90,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.findColumn("columnA");
@@ -103,7 +103,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getStringByLabelShouldReturnString() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals("value1", resultSet.getString("columnString"));
@@ -117,7 +117,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getString("columnZ");
@@ -127,7 +127,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getString("columnString");
@@ -136,7 +136,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getStringByIndexShouldReturnString() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals("value1", resultSet.getString(2));
@@ -150,7 +150,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getString(99);
@@ -161,7 +161,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getString(0);
@@ -171,7 +171,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getString(2);
@@ -184,7 +184,7 @@ public class BoltNeo4jResultSetGettersTest {
 		when(c.getFlattening()).thenReturn(1);
 		Neo4jStatement stmt = mock(Neo4jStatement.class);
 		when(stmt.getConnection()).thenReturn(c);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, stmt, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(stmt, statementResult);
 
 		resultSet.next();
 		assertEquals("value1", resultSet.getString("node.property1"));
@@ -197,7 +197,7 @@ public class BoltNeo4jResultSetGettersTest {
 		when(c.getFlattening()).thenReturn(1);
 		Neo4jStatement stmt = mock(Neo4jStatement.class);
 		when(stmt.getConnection()).thenReturn(c);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, stmt, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(stmt, statementResult);
 
 		resultSet.next();
 		assertEquals("value1", resultSet.getString(5));
@@ -206,7 +206,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getStringShouldReturnStringOnNode() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_NODES, ResultSetData.RECORD_LIST_MORE_ELEMENTS_NODES);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals("{\"_id\":1, \"_labels\":[\"label1\", \"label2\"], \"property2\":1, \"property1\":\"value1\"}", resultSet.getString("node"));
@@ -218,7 +218,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getObjectShouldReturnStringOnNode() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_NODES, ResultSetData.RECORD_LIST_MORE_ELEMENTS_NODES);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals("{\"_id\":1, \"_labels\":[\"label1\", \"label2\"], \"property2\":1, \"property1\":\"value1\"}", resultSet.getString("node"));
@@ -230,7 +230,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getStringShouldReturnStringOnRelationship() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_RELATIONS, ResultSetData.RECORD_LIST_MORE_ELEMENTS_RELATIONS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals("{\"_id\":1, \"_type\":\"type1\", \"_startId\":1, \"_endId\":2, \"property2\":100, \"property1\":\"value\"}", resultSet.getString("relation"));
@@ -242,7 +242,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getStringShouldReturnStringOnPath() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_PATHS, ResultSetData.RECORD_LIST_MORE_ELEMENTS_PATHS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(
@@ -262,7 +262,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getIntByLabelShouldReturnInt() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(1, resultSet.getInt("columnInt"));
@@ -276,7 +276,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getInt("columnZ");
@@ -286,7 +286,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getInt("columnInt");
@@ -295,7 +295,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getIntByIndexShouldReturnInt() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(1, resultSet.getInt(1));
@@ -309,7 +309,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getInt(99);
@@ -320,7 +320,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getInt(0);
@@ -330,7 +330,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getInt(1);
@@ -343,7 +343,7 @@ public class BoltNeo4jResultSetGettersTest {
 		when(c.getFlattening()).thenReturn(1);
 		Neo4jStatement stmt = mock(Neo4jStatement.class);
 		when(stmt.getConnection()).thenReturn(c);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, stmt, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(stmt, statementResult);
 
 		resultSet.next();
 		assertEquals(1, resultSet.getInt("node.id"));
@@ -357,7 +357,7 @@ public class BoltNeo4jResultSetGettersTest {
 		when(c.getFlattening()).thenReturn(1);
 		Neo4jStatement stmt = mock(Neo4jStatement.class);
 		when(stmt.getConnection()).thenReturn(c);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, stmt, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(stmt, statementResult);
 
 		resultSet.next();
 		assertEquals(1, resultSet.getInt(2));
@@ -367,7 +367,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getIntShouldReturnZeroForNull() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_ONE_NULL_ELEMENT, ResultSetData.RECORD_LIST_ONE_NULL_ELEMENT);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(0, resultSet.getInt("columnA"));
@@ -381,7 +381,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getFloatByLabelShouldReturnFloat() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(0.1F, resultSet.getFloat("columnFloat"), 0);
@@ -395,7 +395,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getFloat("columnZ");
@@ -405,7 +405,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getFloat("columnFloat");
@@ -414,7 +414,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getFloatByIndexShouldReturnFloat() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(0.1F, resultSet.getFloat(3), 0);
@@ -428,7 +428,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getFloat(99);
@@ -439,7 +439,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getFloat(0);
@@ -449,7 +449,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getFloat(3);
@@ -458,7 +458,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getFloatShouldReturnZeroForNull() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_ONE_NULL_ELEMENT, ResultSetData.RECORD_LIST_ONE_NULL_ELEMENT);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(0F, resultSet.getFloat("columnA"), 0);
@@ -472,7 +472,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getShortByLabelShouldReturnShort() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(1, resultSet.getShort("columnShort"));
@@ -486,7 +486,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getShort("columnZ");
@@ -496,7 +496,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getShort("columnShort");
@@ -505,7 +505,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getShortByIndexShouldReturnShort() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(1, resultSet.getShort(1));
@@ -519,7 +519,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getShort(99);
@@ -530,7 +530,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getShort(0);
@@ -540,7 +540,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getShort(3);
@@ -549,7 +549,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getShortShouldReturnZeroForNull() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_ONE_NULL_ELEMENT, ResultSetData.RECORD_LIST_ONE_NULL_ELEMENT);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(0, resultSet.getShort("columnA"));
@@ -563,7 +563,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getDoubleByLabelShouldReturnDouble() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(02.29D, resultSet.getDouble("columnDouble"), 0);
@@ -577,7 +577,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getDouble("columnZ");
@@ -587,7 +587,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getDouble("columnDouble");
@@ -596,7 +596,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getDoubleByIndexShouldReturnDouble() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(02.29D, resultSet.getDouble(5), 0);
@@ -610,7 +610,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 		resultSet.next();
 		resultSet.getDouble(99);
 	}
@@ -620,7 +620,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getDouble(0);
@@ -630,7 +630,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getDouble(5);
@@ -639,7 +639,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getDoubleShouldReturnZeroForNull() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_ONE_NULL_ELEMENT, ResultSetData.RECORD_LIST_ONE_NULL_ELEMENT);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(0D, resultSet.getDouble("columnA"), 0);
@@ -653,7 +653,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getObjectByLabelShouldReturnObject() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals("value1", resultSet.getObject("columnString").toString());
@@ -670,7 +670,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getObject("not present");
@@ -681,7 +681,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.close();
 		resultSet.getObject("not present");
@@ -690,7 +690,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getObjectByIndexShouldReturnObject() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals("value1", resultSet.getObject(2).toString());
@@ -706,7 +706,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getObject(99);
@@ -717,7 +717,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getObject(0);
@@ -728,7 +728,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.close();
 		resultSet.getObject(1);
@@ -737,7 +737,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getObjectShouldReturnCorrectNodeAsMap() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_NODES, ResultSetData.RECORD_LIST_MORE_ELEMENTS_NODES);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 
@@ -763,7 +763,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getObjectShouldReturnCorrectRelationsAsMap() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_RELATIONS, ResultSetData.RECORD_LIST_MORE_ELEMENTS_RELATIONS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(new HashMap<String, Object>() {
@@ -792,7 +792,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getObjectShouldReturnCorrectPathAsMap() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_PATHS, ResultSetData.RECORD_LIST_MORE_ELEMENTS_PATHS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		assertTrue(resultSet.next());
 		assertEquals(new ArrayList<Object>() {
@@ -872,7 +872,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getObjectByColumnLabelAndCastToClass() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false,null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.next();
@@ -909,7 +909,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result statementResult = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_ONE_ELEMENT, ResultSetData.RECORD_LIST_ONE_ELEMENT);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false,null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getObject("columnA", (Class<?>) null);
@@ -920,7 +920,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false,null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getObject("not present", (Class<?>) null);
@@ -931,7 +931,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false,null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.close();
 		resultSet.getObject("not present", (Class<?>) null);
@@ -940,7 +940,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getObjectByColumnIndexAndCastToClass() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false,null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertNotNull(resultSet.getObject(1, Double.class));
@@ -951,7 +951,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result statementResult = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_ONE_ELEMENT, ResultSetData.RECORD_LIST_ONE_ELEMENT);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false,null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getObject(1, (Class<?>) null);
@@ -962,7 +962,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false,null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getObject(0, (Class<?>) null);
@@ -973,7 +973,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false,null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getObject(99, Double.class);
@@ -984,7 +984,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false,null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.close();
 		resultSet.getObject(1, (Class<?>) null);
@@ -995,7 +995,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false,null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getObject("not present", (Map<String, Class<?>>) null);
@@ -1006,7 +1006,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false,null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.close();
 		resultSet.getObject("not present", (Map<String, Class<?>>) null);
@@ -1017,7 +1017,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false,null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		Map<String, Class<?>> map = new HashMap<>();
 
@@ -1030,7 +1030,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false,null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		Map<String, Class<?>> map = new HashMap<>();
 
@@ -1041,7 +1041,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getObjectByColumnLabelAndMap() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false,null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.next();
@@ -1061,7 +1061,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getBooleanByLabelShouldReturnBoolean() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertTrue(resultSet.getBoolean("columnBoolean"));
@@ -1079,7 +1079,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getBoolean("columnZ");
@@ -1089,7 +1089,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getBoolean("columnBoolean");
@@ -1098,7 +1098,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getBooleanByIndexShouldReturnBoolean() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertTrue(resultSet.getBoolean(6));
@@ -1112,7 +1112,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getBoolean(99);
@@ -1123,7 +1123,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getBoolean(0);
@@ -1133,7 +1133,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getBoolean(6);
@@ -1142,7 +1142,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getBooleanShouldReturnFalseForNull() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_ONE_NULL_ELEMENT, ResultSetData.RECORD_LIST_ONE_NULL_ELEMENT);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(false, resultSet.getBoolean("columnA"));
@@ -1156,7 +1156,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getLongByLabelShouldReturnLong() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(2L, resultSet.getLong("columnLong"));
@@ -1170,7 +1170,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getLong("columnZ");
@@ -1180,7 +1180,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getLong("columnLong");
@@ -1189,7 +1189,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getLongByIndexShouldReturnLong() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(2L, resultSet.getLong(7));
@@ -1203,7 +1203,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getLong(99);
@@ -1214,7 +1214,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getLong(0);
@@ -1224,7 +1224,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getLong(7);
@@ -1233,7 +1233,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getLongShouldReturnZeroForNull() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_ONE_NULL_ELEMENT, ResultSetData.RECORD_LIST_ONE_NULL_ELEMENT);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(0, resultSet.getLong("columnA"));
@@ -1248,14 +1248,14 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getHoldability();
 	}
 
 	@Test public void getHoldabilityShouldReturnCorrectHoldability() throws SQLException {
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, null, Neo4jResultSet.TYPE_FORWARD_ONLY, Neo4jResultSet.CONCUR_READ_ONLY, Neo4jResultSet.CLOSE_CURSORS_AT_COMMIT);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, null, Neo4jResultSet.TYPE_FORWARD_ONLY, Neo4jResultSet.CONCUR_READ_ONLY, Neo4jResultSet.CLOSE_CURSORS_AT_COMMIT);
 		assertEquals(Neo4jResultSet.CLOSE_CURSORS_AT_COMMIT, resultSet.getHoldability());
 	}
 
@@ -1267,14 +1267,14 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getType();
 	}
 
 	@Test public void getTypeShouldReturnCorrectType() throws SQLException {
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, null, Neo4jResultSet.TYPE_FORWARD_ONLY, Neo4jResultSet.CONCUR_READ_ONLY, Neo4jResultSet.CLOSE_CURSORS_AT_COMMIT);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, null, Neo4jResultSet.TYPE_FORWARD_ONLY, Neo4jResultSet.CONCUR_READ_ONLY, Neo4jResultSet.CLOSE_CURSORS_AT_COMMIT);
 		assertEquals(Neo4jResultSet.TYPE_FORWARD_ONLY, resultSet.getType());
 	}
 
@@ -1286,14 +1286,14 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getConcurrency();
 	}
 
 	@Test public void getConcurrencyShouldReturnCorrectConcurrency() throws SQLException {
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, null, Neo4jResultSet.TYPE_FORWARD_ONLY, Neo4jResultSet.CONCUR_READ_ONLY, Neo4jResultSet.CLOSE_CURSORS_AT_COMMIT);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, null, Neo4jResultSet.TYPE_FORWARD_ONLY, Neo4jResultSet.CONCUR_READ_ONLY, Neo4jResultSet.CLOSE_CURSORS_AT_COMMIT);
 		assertEquals(Neo4jResultSet.CONCUR_READ_ONLY, resultSet.getConcurrency());
 	}
 
@@ -1302,7 +1302,7 @@ public class BoltNeo4jResultSetGettersTest {
 	/*------------------------------*/
 	@Test public void getArrayByLabelShouldReturnArray() throws SQLException {
 		Result statementResult = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_WITH_ARRAY, ResultSetData.RECORD_LIST_WITH_ARRAY);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals("a", ((String[]) resultSet.getArray("array").getArray())[0]);
@@ -1329,7 +1329,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result statementResult = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_WITH_ARRAY, ResultSetData.RECORD_LIST_WITH_ARRAY);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getLong("columnZ");
@@ -1339,7 +1339,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_WITH_ARRAY, ResultSetData.RECORD_LIST_WITH_ARRAY);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getLong("array");
@@ -1347,7 +1347,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 	@Test public void getArrayByIndexShouldReturnArray() throws SQLException {
 		Result statementResult = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_WITH_ARRAY, ResultSetData.RECORD_LIST_WITH_ARRAY);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals("a", ((String[]) resultSet.getArray(1).getArray())[0]);
@@ -1374,7 +1374,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result statementResult = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_WITH_ARRAY, ResultSetData.RECORD_LIST_WITH_ARRAY);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getLong(99);
@@ -1384,7 +1384,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result statementResult = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_WITH_ARRAY, ResultSetData.RECORD_LIST_WITH_ARRAY);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getLong(0);
@@ -1394,7 +1394,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_WITH_ARRAY, ResultSetData.RECORD_LIST_WITH_ARRAY);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getLong(7);
@@ -1407,7 +1407,7 @@ public class BoltNeo4jResultSetGettersTest {
 		when(c.getFlattening()).thenReturn(1);
 		Neo4jStatement stmt = mock(Neo4jStatement.class);
 		when(stmt.getConnection()).thenReturn(c);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, stmt, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(stmt, statementResult);
 
 		resultSet.next();
 		assertArrayEquals(new String[] { "label1", "label2" }, (String[]) resultSet.getArray("node.labels").getArray());
@@ -1420,7 +1420,7 @@ public class BoltNeo4jResultSetGettersTest {
 		when(c.getFlattening()).thenReturn(1);
 		Neo4jStatement stmt = mock(Neo4jStatement.class);
 		when(stmt.getConnection()).thenReturn(c);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, stmt, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(stmt, statementResult);
 
 		resultSet.next();
 		assertArrayEquals(new String[] { "label1", "label2" }, (String[]) resultSet.getArray(3).getArray());
@@ -1434,7 +1434,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.close();
 		resultSet.wasNull();
diff --git a/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetIterationTest.java b/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetIterationTest.java
index 251b0250..411dfffd 100644
--- a/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetIterationTest.java
+++ b/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetIterationTest.java
@@ -45,14 +45,14 @@ public class BoltNeo4jResultSetIterationTest {
 	/*------------------------------*/
 	@Test public void nextShouldReturnFalseEmpty() throws SQLException {
 		Result Result = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_EMPTY, ResultSetData.RECORD_LIST_EMPTY);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertFalse(resultSet.next());
 	}
 
 	@Test public void nextShouldReturnTrue() throws SQLException {
 		Result Result = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_ONE_ELEMENT, ResultSetData.RECORD_LIST_ONE_ELEMENT);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertTrue(resultSet.next());
 	}
@@ -60,7 +60,7 @@ public class BoltNeo4jResultSetIterationTest {
 	@Test public void nextShouldReturnTrueMoreElements() throws SQLException {
 		Result Result = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertTrue(resultSet.next());
 		Assert.assertTrue(resultSet.next());
@@ -69,7 +69,7 @@ public class BoltNeo4jResultSetIterationTest {
 
 	@Test public void nextShouldReturnFalseAfterLast() throws SQLException {
 		Result Result = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_ONE_ELEMENT, ResultSetData.RECORD_LIST_ONE_ELEMENT);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertTrue(resultSet.next());
 
@@ -79,7 +79,7 @@ public class BoltNeo4jResultSetIterationTest {
 	@Test public void nextShouldReturnFalseAfterLastMoreElements() throws SQLException {
 		Result Result = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertTrue(resultSet.next());
 		Assert.assertTrue(resultSet.next());
@@ -92,7 +92,7 @@ public class BoltNeo4jResultSetIterationTest {
 	@Test public void nextShouldReturnTrueAndPointNextNode() throws SQLException {
 		Result Result = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertTrue(resultSet.next());
 		Assert.assertEquals("valueA1", resultSet.getString("columnA"));
@@ -106,7 +106,7 @@ public class BoltNeo4jResultSetIterationTest {
 	@Test public void nextShouldThrowExceptionEmpty() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, null);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, null);
 
 		resultSet.next();
 	}
@@ -116,7 +116,7 @@ public class BoltNeo4jResultSetIterationTest {
 	/*------------------------------*/
 	@Ignore @Test public void previousShouldReturnFalseEmpty() throws SQLException {
 		Result Result = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_EMPTY, ResultSetData.RECORD_LIST_EMPTY);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertFalse(resultSet.previous());
 	}
@@ -124,7 +124,7 @@ public class BoltNeo4jResultSetIterationTest {
 	@Ignore @Test public void previousShouldReturnTrue() throws SQLException {
 		Result Result = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertTrue(resultSet.next());
 		Assert.assertTrue(resultSet.next());
@@ -135,7 +135,7 @@ public class BoltNeo4jResultSetIterationTest {
 	@Ignore @Test public void previousShouldReturnFalseBeforeFirst() throws SQLException {
 		Result Result = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertTrue(resultSet.next());
 		Assert.assertTrue(resultSet.next());
@@ -148,7 +148,7 @@ public class BoltNeo4jResultSetIterationTest {
 	@Ignore @Test public void previousShouldReturnTrueAndPointPreviousNode() throws SQLException {
 		Result Result = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertTrue(resultSet.last());
 
@@ -164,7 +164,7 @@ public class BoltNeo4jResultSetIterationTest {
 	@Ignore @Test public void previousShouldThrowExceptionEmpty() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, null);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, null);
 
 		resultSet.previous();
 	}
@@ -174,21 +174,21 @@ public class BoltNeo4jResultSetIterationTest {
 	/*------------------------------*/
 	@Ignore @Test public void firstShouldReturnFalseEmpty() throws SQLException {
 		Result Result = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_EMPTY, ResultSetData.RECORD_LIST_EMPTY);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertFalse(resultSet.first());
 	}
 
 	@Ignore @Test public void firstShouldReturnTrueOnFirst() throws SQLException {
 		Result Result = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_ONE_ELEMENT, ResultSetData.RECORD_LIST_ONE_ELEMENT);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertTrue(resultSet.first());
 	}
 
 	@Ignore @Test public void firstShouldReturnTrueNotOnFirst() throws SQLException {
 		Result Result = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_ONE_ELEMENT, ResultSetData.RECORD_LIST_ONE_ELEMENT);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertTrue(resultSet.next());
 
@@ -197,7 +197,7 @@ public class BoltNeo4jResultSetIterationTest {
 
 	@Ignore @Test public void firstShouldReturnTrueAndPointFirstElement() throws SQLException {
 		Result Result = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_ONE_ELEMENT, ResultSetData.RECORD_LIST_ONE_ELEMENT);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertTrue(resultSet.first());
 		Assert.assertEquals("valueA1", resultSet.getString("columnA"));
@@ -207,7 +207,7 @@ public class BoltNeo4jResultSetIterationTest {
 	@Ignore @Test public void firstShouldThrowExceptionClosed() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, null);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, null);
 
 		resultSet.close();
 		resultSet.first();
@@ -216,7 +216,7 @@ public class BoltNeo4jResultSetIterationTest {
 	@Ignore @Test public void firstShouldThrowExceptionForwardOnly() throws SQLException {
 		expectedEx.expect(SQLFeatureNotSupportedException.class);
 
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, null);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, null);
 
 		resultSet.first();
 	}
@@ -226,14 +226,14 @@ public class BoltNeo4jResultSetIterationTest {
 	/*------------------------------*/
 	@Ignore @Test public void lastShouldReturnFalseEmpty() throws SQLException {
 		Result Result = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_EMPTY, ResultSetData.RECORD_LIST_EMPTY);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertFalse(resultSet.last());
 	}
 
 	@Ignore @Test public void lastShouldReturnTrue() throws SQLException {
 		Result Result = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_ONE_ELEMENT, ResultSetData.RECORD_LIST_ONE_ELEMENT);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertTrue(resultSet.last());
 	}
@@ -241,7 +241,7 @@ public class BoltNeo4jResultSetIterationTest {
 	@Ignore @Test public void lastShouldReturnTrueAndPointLastNode() throws SQLException {
 		Result Result = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertTrue(resultSet.last());
 		Assert.assertEquals("valueA3", resultSet.getString("columnA"));
@@ -251,7 +251,7 @@ public class BoltNeo4jResultSetIterationTest {
 	@Ignore @Test public void lastShouldThrowExceptionClosed() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, null);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, null);
 
 		resultSet.close();
 		resultSet.last();
@@ -260,7 +260,7 @@ public class BoltNeo4jResultSetIterationTest {
 	@Ignore @Test public void lastShouldThrowExceptionForwardOnly() throws SQLException {
 		expectedEx.expect(SQLFeatureNotSupportedException.class);
 
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, null);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, null);
 
 		resultSet.last();
 	}
diff --git a/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetMetaDataTest.java b/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetMetaDataTest.java
index 59ee50de..6ed56d08 100644
--- a/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetMetaDataTest.java
+++ b/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetMetaDataTest.java
@@ -55,14 +55,14 @@ public class BoltNeo4jResultSetMetaDataTest {
 
 	@Test public void getColumnsCountShouldReturnCorrectNumberEmpty() throws SQLException {
 		Result resultIterator = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_EMPTY, ResultSetData.RECORD_LIST_EMPTY);
-		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(false, Collections.EMPTY_LIST, resultIterator.keys());
+		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(Collections.EMPTY_LIST, resultIterator.keys());
 
 		assertEquals(0, resultSet.getColumnCount());
 	}
 
 	@Test public void getColumnsCountShouldReturnCorrectNumberMoreElements() throws SQLException {
 		Result resultCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(false, Collections.EMPTY_LIST, resultCursor.keys());
+		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(Collections.EMPTY_LIST, resultCursor.keys());
 
 		assertEquals(2, resultSet.getColumnCount());
 	}
@@ -73,7 +73,7 @@ public class BoltNeo4jResultSetMetaDataTest {
 
 	@Test public void getColumnNameShouldReturnCorrectColumnName() throws SQLException {
 		Result resultCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(false, Collections.EMPTY_LIST, resultCursor.keys());
+		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(Collections.EMPTY_LIST, resultCursor.keys());
 
 		assertEquals("columnA", resultSet.getColumnName(1));
 	}
@@ -82,7 +82,7 @@ public class BoltNeo4jResultSetMetaDataTest {
 		expectedEx.expect(SQLException.class);
 
 		Result resultCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_EMPTY, ResultSetData.RECORD_LIST_EMPTY);
-		ResultSetMetaData resultSetMetaData = BoltNeo4jResultSetMetaData.newInstance(false, Collections.EMPTY_LIST, resultCursor.keys());
+		ResultSetMetaData resultSetMetaData = BoltNeo4jResultSetMetaData.newInstance(Collections.EMPTY_LIST, resultCursor.keys());
 
 		resultSetMetaData.getColumnName(1);
 	}
@@ -91,7 +91,7 @@ public class BoltNeo4jResultSetMetaDataTest {
 		expectedEx.expect(SQLException.class);
 
 		Result resultCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_EMPTY, ResultSetData.RECORD_LIST_EMPTY);
-		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(false, Collections.EMPTY_LIST, resultCursor.keys());
+		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(Collections.EMPTY_LIST, resultCursor.keys());
 
 		resultSet.getColumnName(99);
 	}
@@ -99,7 +99,7 @@ public class BoltNeo4jResultSetMetaDataTest {
 	@Test public void getColumnNameShouldThrowExceptionIfCursorNull() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(false, Collections.EMPTY_LIST, Collections.EMPTY_LIST);
+		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(Collections.EMPTY_LIST, Collections.EMPTY_LIST);
 
 		resultSet.getColumnName(1);
 	}
@@ -110,7 +110,7 @@ public class BoltNeo4jResultSetMetaDataTest {
 
 	@Test public void getColumnLabelShouldReturnCorrectColumnName() throws SQLException {
 		Result resultCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(false, Collections.EMPTY_LIST, resultCursor.keys());
+		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(Collections.EMPTY_LIST, resultCursor.keys());
 
 		assertEquals("columnA", resultSet.getColumnLabel(1));
 	}
@@ -119,7 +119,7 @@ public class BoltNeo4jResultSetMetaDataTest {
 		expectedEx.expect(SQLException.class);
 
 		Result resultCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_EMPTY, ResultSetData.RECORD_LIST_EMPTY);
-		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(false, Collections.EMPTY_LIST, resultCursor.keys());
+		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(Collections.EMPTY_LIST, resultCursor.keys());
 
 		resultSet.getColumnLabel(1);
 	}
@@ -128,7 +128,7 @@ public class BoltNeo4jResultSetMetaDataTest {
 		expectedEx.expect(SQLException.class);
 
 		Result resultCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_EMPTY, ResultSetData.RECORD_LIST_EMPTY);
-		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(false, Collections.EMPTY_LIST, resultCursor.keys());
+		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(Collections.EMPTY_LIST, resultCursor.keys());
 
 		resultSet.getColumnLabel(99);
 	}
@@ -136,7 +136,7 @@ public class BoltNeo4jResultSetMetaDataTest {
 	@Test public void getColumnLabelShouldThrowExceptionIfCursorNull() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(false, Collections.EMPTY_LIST, Collections.EMPTY_LIST);
+		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(Collections.EMPTY_LIST, Collections.EMPTY_LIST);
 
 		resultSet.getColumnLabel(1);
 	}
@@ -146,7 +146,7 @@ public class BoltNeo4jResultSetMetaDataTest {
 	/*------------------------------*/
 
 	@Test public void getSchemaNameShouldReturnDefaultValue() throws SQLException {
-		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(false, Collections.EMPTY_LIST, Collections.EMPTY_LIST);
+		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(Collections.EMPTY_LIST, Collections.EMPTY_LIST);
 
 		assertEquals("", resultSet.getSchemaName(1));
 	}
@@ -156,7 +156,7 @@ public class BoltNeo4jResultSetMetaDataTest {
 	/*------------------------------*/
 
 	@Test public void getCatalogNameShouldReturnEmptyString() throws SQLException {
-		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(false, Collections.EMPTY_LIST, Collections.EMPTY_LIST);
+		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(Collections.EMPTY_LIST, Collections.EMPTY_LIST);
 
 		assertEquals("", resultSet.getCatalogName(1));
 	}
@@ -168,7 +168,7 @@ public class BoltNeo4jResultSetMetaDataTest {
 	@Test public void flatteningTestWorking() throws SQLException {
 		Result resultCursor = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_NODES, ResultSetData.RECORD_LIST_MORE_ELEMENTS_NODES);
-		ResultSetMetaData rsm = BoltNeo4jResultSetMetaData.newInstance(false, Collections.EMPTY_LIST,
+		ResultSetMetaData rsm = BoltNeo4jResultSetMetaData.newInstance(Collections.EMPTY_LIST,
 				Arrays.asList(new String[] { "node", "node.id", "node.label", "node.property2", "node.property1" }));
 
 		assertEquals(5, rsm.getColumnCount());
@@ -198,7 +198,7 @@ public class BoltNeo4jResultSetMetaDataTest {
 		List<String> cols = Arrays.asList(
 				"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"
 		);
-		ResultSetMetaData rsm = BoltNeo4jResultSetMetaData.newInstance(false, types, cols);
+		ResultSetMetaData rsm = BoltNeo4jResultSetMetaData.newInstance(types, cols);
 		assertEquals("java.lang.String", rsm.getColumnClassName(1));
 		assertEquals("java.lang.Long", rsm.getColumnClassName(2));
 		assertEquals("java.lang.Boolean", rsm.getColumnClassName(3));
@@ -232,7 +232,7 @@ public class BoltNeo4jResultSetMetaDataTest {
 		List<String> cols = Arrays.asList(
 				"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"
 		);
-		ResultSetMetaData rsm = BoltNeo4jResultSetMetaData.newInstance(false, types, cols);
+		ResultSetMetaData rsm = BoltNeo4jResultSetMetaData.newInstance(types, cols);
 		assertEquals(Types.VARCHAR, rsm.getColumnType(1));
 		assertEquals(Types.INTEGER, rsm.getColumnType(2));
 		assertEquals(Types.BOOLEAN, rsm.getColumnType(3));
@@ -250,7 +250,7 @@ public class BoltNeo4jResultSetMetaDataTest {
 	@Test public void getColumnTypeNameTest() throws SQLException {
 		Result resultCursor = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_NODES, ResultSetData.RECORD_LIST_MORE_ELEMENTS_NODES);
-		ResultSetMetaData rsm = BoltNeo4jResultSetMetaData.newInstance(false, Arrays.asList(new Type[] { InternalTypeSystem.TYPE_SYSTEM.NODE() }),
+		ResultSetMetaData rsm = BoltNeo4jResultSetMetaData.newInstance(Arrays.asList(new Type[] { InternalTypeSystem.TYPE_SYSTEM.NODE() }),
 				Arrays.asList(new String[] { "node" }));
 
 		assertEquals(1, rsm.getColumnCount());
diff --git a/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetTest.java b/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetTest.java
index 79f95528..20d85ce9 100644
--- a/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetTest.java
+++ b/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetTest.java
@@ -51,7 +51,7 @@ public class BoltNeo4jResultSetTest {
 	@Test public void isClosedReturnFalseWhenConnectionOpen() throws SQLException {
 		Result Result = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		assertFalse(resultSet.isClosed());
 	}
@@ -60,7 +60,7 @@ public class BoltNeo4jResultSetTest {
 	@Test public void isClosedReturnTrueWhenConnectionClosed() throws SQLException {
 		Result Result = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		resultSet.close();
 		assertTrue(resultSet.isClosed());
@@ -72,7 +72,7 @@ public class BoltNeo4jResultSetTest {
 
 	@Test public void closeShouldThrowExceptionIfIteratorIsNull() throws SQLException {
 		expectedEx.expect(SQLException.class);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, null);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, null);
 
 		resultSet.close();
 	}
diff --git a/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jStatementTest.java b/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jStatementTest.java
index 99ffd774..836c4d07 100644
--- a/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jStatementTest.java
+++ b/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jStatementTest.java
@@ -80,7 +80,7 @@ public class BoltNeo4jStatementTest {
 
 	@Before public void interceptBoltResultSetConstructor() throws Exception {
 		expectedResultSet = mock(BoltNeo4jResultSet.class);
-		resultSetFactory = (debug, statement, iterator, params) -> expectedResultSet;
+		resultSetFactory = (statement, iterator, params) -> expectedResultSet;
 		BoltNeo4jResultSet mockedRS = mock(BoltNeo4jResultSet.class);
 		doNothing().when(mockedRS).close();
 	}
@@ -117,7 +117,7 @@ public class BoltNeo4jStatementTest {
 		BoltNeo4jConnectionImpl mockConnection = mockOpenConnection();
 		when(mockConnection.getTransaction()).thenReturn(mockTransaction);
 
-		Statement statement = BoltNeo4jStatement.newInstance(false, mockConnection);
+		Statement statement = BoltNeo4jStatement.newInstance(mockConnection);
 
 		statement.close();
 
@@ -131,7 +131,7 @@ public class BoltNeo4jStatementTest {
 	/*------------------------------*/
 
 	@Test public void isClosedShouldReturnFalseWhenCreated() throws SQLException {
-		Statement statement = BoltNeo4jStatement.newInstance(false, mockOpenConnection());
+		Statement statement = BoltNeo4jStatement.newInstance(mockOpenConnection());
 		assertFalse(statement.isClosed());
 	}
 
@@ -143,7 +143,7 @@ public class BoltNeo4jStatementTest {
 		Result mockResult = mock(Result.class);
 
 		Statement statement = BoltNeo4jStatement
-				.newInstance(false, mockOpenConnectionWithResult(mockResult), ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY,
+				.newInstance(mockOpenConnectionWithResult(mockResult), ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY,
 						ResultSet.HOLD_CURSORS_OVER_COMMIT);
 		statement.executeQuery(StatementData.STATEMENT_CREATE);
 	}
@@ -151,7 +151,7 @@ public class BoltNeo4jStatementTest {
 	@Test public void executeQueryShouldThrowExceptionWhenClosedConnection() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		Statement statement = BoltNeo4jStatement.newInstance(false, mockConnectionClosed(), 0, 0, 0);
+		Statement statement = BoltNeo4jStatement.newInstance(mockConnectionClosed(), 0, 0, 0);
 		statement.executeQuery(StatementData.STATEMENT_MATCH_ALL);
 	}
 
@@ -159,17 +159,17 @@ public class BoltNeo4jStatementTest {
 		BoltNeo4jConnectionImpl mockConnection = mockOpenConnectionWithResult(null);
 
 		Statement statement = BoltNeo4jStatement
-				.newInstance(false, mockConnection, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT);
+				.newInstance(mockConnection, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT);
 		statement.executeQuery(StatementData.STATEMENT_MATCH_ALL);
 
 //		verifyStatic(BoltNeo4jResultSet.class);
-		BoltNeo4jResultSet.newInstance(false, statement, null, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT);
+		BoltNeo4jResultSet.newInstance(statement, null, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT);
 	}
 
 	@Test public void executeQueryShouldThrowExceptionOnClosedStatement() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		Statement statement = BoltNeo4jStatement.newInstance(false, mockOpenConnection());
+		Statement statement = BoltNeo4jStatement.newInstance(mockOpenConnection());
 		statement.close();
 
 		statement.executeQuery(StatementData.STATEMENT_MATCH_ALL);
@@ -194,7 +194,7 @@ public class BoltNeo4jStatementTest {
 	@Ignore @Test public void executeQueryShouldThrowExceptionOnTimeoutExceeded() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		Statement statement = BoltNeo4jStatement.newInstance(false, new BoltNeo4jConnectionImpl(mockDriverOpen(), new Properties(), ""), 0, 0, 0);
+		Statement statement = BoltNeo4jStatement.newInstance(new BoltNeo4jConnectionImpl(mockDriverOpen(), new Properties(), ""), 0, 0, 0);
 		statement.setQueryTimeout(1);
 		statement.executeQuery(StatementData.STATEMENT_CREATE);
 
@@ -216,7 +216,7 @@ public class BoltNeo4jStatementTest {
 		when(mockSummaryCounters.nodesDeleted()).thenReturn(0);
 
 		Statement statement = BoltNeo4jStatement
-				.newInstance(false, mockOpenConnectionWithResult(mockResult), ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY,
+				.newInstance(mockOpenConnectionWithResult(mockResult), ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY,
 						ResultSet.HOLD_CURSORS_OVER_COMMIT);
 		statement.executeUpdate(StatementData.STATEMENT_CREATE);
 	}
@@ -249,7 +249,7 @@ public class BoltNeo4jStatementTest {
 	@Ignore @Test public void executeUpdateShouldThrowExceptionOnTimeoutExceeded() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		Statement statement = BoltNeo4jStatement.newInstance(false, new BoltNeo4jConnectionImpl(mockDriverOpen(), new Properties(), ""), 0, 0, 0);
+		Statement statement = BoltNeo4jStatement.newInstance(new BoltNeo4jConnectionImpl(mockDriverOpen(), new Properties(), ""), 0, 0, 0);
 		statement.setQueryTimeout(1);
 		statement.executeUpdate(StatementData.STATEMENT_CREATE);
 
@@ -262,7 +262,7 @@ public class BoltNeo4jStatementTest {
 	@Test public void getResultSetConcurrencyShouldThrowExceptionWhenCalledOnClosedStatement() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		Statement statement = BoltNeo4jStatement.newInstance(false, mockConnectionClosed());
+		Statement statement = BoltNeo4jStatement.newInstance(mockConnectionClosed());
 		statement.close();
 		statement.getResultSetConcurrency();
 	}
@@ -273,7 +273,7 @@ public class BoltNeo4jStatementTest {
 	@Test public void getResultSetHoldabilityShouldThrowExceptionWhenCalledOnClosedStatement() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		Statement statement = BoltNeo4jStatement.newInstance(false, mockConnectionClosed());
+		Statement statement = BoltNeo4jStatement.newInstance(mockConnectionClosed());
 		statement.close();
 		statement.getResultSetHoldability();
 	}
@@ -284,7 +284,7 @@ public class BoltNeo4jStatementTest {
 	@Test public void getResultSetTypeShouldThrowExceptionWhenCalledOnClosedStatement() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		Statement statement = BoltNeo4jStatement.newInstance(false, mockConnectionClosed());
+		Statement statement = BoltNeo4jStatement.newInstance(mockConnectionClosed());
 		statement.close();
 		statement.getResultSetType();
 	}
@@ -311,7 +311,7 @@ public class BoltNeo4jStatementTest {
 		when(mockSummaryCounters.nodesDeleted()).thenReturn(0);
 
 		Statement statement = BoltNeo4jStatement
-				.newInstance(false, mockOpenConnectionWithResult(mockResult), ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY,
+				.newInstance(mockOpenConnectionWithResult(mockResult), ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY,
 						ResultSet.HOLD_CURSORS_OVER_COMMIT);
 		statement.execute(StatementData.STATEMENT_CREATE);
 	}
@@ -319,21 +319,21 @@ public class BoltNeo4jStatementTest {
 	@Test public void executeShouldThrowExceptionOnQueryWhenClosedConnection() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		Statement statement = BoltNeo4jStatement.newInstance(false, mockConnectionClosed(), 0, 0, 0);
+		Statement statement = BoltNeo4jStatement.newInstance(mockConnectionClosed(), 0, 0, 0);
 		statement.execute(StatementData.STATEMENT_MATCH_ALL);
 	}
 
 	@Test public void executeShouldThrowExceptionOnUpdateWhenClosedConnection() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		Statement statement = BoltNeo4jStatement.newInstance(false, mockConnectionClosed(), 0, 0, 0);
+		Statement statement = BoltNeo4jStatement.newInstance(mockConnectionClosed(), 0, 0, 0);
 		statement.execute(StatementData.STATEMENT_CREATE);
 	}
 
 	@Test public void executeShouldThrowExceptionOnQueryOnClosedStatement() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		Statement statement = BoltNeo4jStatement.newInstance(false, mockOpenConnection());
+		Statement statement = BoltNeo4jStatement.newInstance(mockOpenConnection());
 		statement.close();
 
 		statement.execute(StatementData.STATEMENT_MATCH_ALL);
@@ -342,7 +342,7 @@ public class BoltNeo4jStatementTest {
 	@Test public void executeShouldThrowExceptionOnUpdateOnClosedStatement() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		Statement statement = BoltNeo4jStatement.newInstance(false, mockOpenConnection());
+		Statement statement = BoltNeo4jStatement.newInstance(mockOpenConnection());
 		statement.close();
 
 		statement.execute(StatementData.STATEMENT_CREATE);
@@ -376,7 +376,7 @@ public class BoltNeo4jStatementTest {
 	@Ignore @Test public void executeShouldThrowExceptionOnTimeoutExceeded() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		Statement statement = BoltNeo4jStatement.newInstance(false, new BoltNeo4jConnectionImpl(mockDriverOpen(), new Properties(), ""), 0, 0, 0);
+		Statement statement = BoltNeo4jStatement.newInstance(new BoltNeo4jConnectionImpl(mockDriverOpen(), new Properties(), ""), 0, 0, 0);
 		statement.setQueryTimeout(1);
 		statement.execute(StatementData.STATEMENT_CREATE);
 
@@ -405,7 +405,7 @@ public class BoltNeo4jStatementTest {
 	@Test public void getUpdateCountShouldThrowExceptionOnClosedStatement() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		Statement statement = BoltNeo4jStatement.newInstance(false, mockOpenConnection());
+		Statement statement = BoltNeo4jStatement.newInstance(mockOpenConnection());
 		statement.close();
 
 		statement.getUpdateCount();
@@ -434,7 +434,7 @@ public class BoltNeo4jStatementTest {
 	@Test public void getResultSetShouldThrowExceptionOnClosedStatement() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		Statement statement = BoltNeo4jStatement.newInstance(false, mockOpenConnection());
+		Statement statement = BoltNeo4jStatement.newInstance(mockOpenConnection());
 		statement.close();
 
 		statement.getResultSet();
@@ -459,7 +459,7 @@ public class BoltNeo4jStatementTest {
 	@Test public void addBatchShouldThrowExceptionIfClosedStatement() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		Statement stmt = BoltNeo4jStatement.newInstance(false, Mocker.mockOpenConnection());
+		Statement stmt = BoltNeo4jStatement.newInstance(Mocker.mockOpenConnection());
 		stmt.close();
 		stmt.addBatch("");
 	}
@@ -481,7 +481,7 @@ public class BoltNeo4jStatementTest {
 	@Test public void clearBatchShouldThrowExceptionIfClosedStatement() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		Statement stmt = BoltNeo4jStatement.newInstance(false, Mocker.mockOpenConnection());
+		Statement stmt = BoltNeo4jStatement.newInstance(Mocker.mockOpenConnection());
 		stmt.close();
 		stmt.clearBatch();
 	}
@@ -505,7 +505,7 @@ public class BoltNeo4jStatementTest {
 		when(summaryCounters.nodesCreated()).thenReturn(1);
 		when(summaryCounters.nodesDeleted()).thenReturn(0);
 
-		Statement stmt = BoltNeo4jStatement.newInstance(false, connection);
+		Statement stmt = BoltNeo4jStatement.newInstance(connection);
 		String str1 = "MATCH n WHERE id(n) = 1 SET n.property=1";
 		String str2 = "MATCH n WHERE id(n) = 2 SET n.property=2";
 		stmt.addBatch(str1);
@@ -515,7 +515,7 @@ public class BoltNeo4jStatementTest {
 	}
 
 	@Test public void executeBatchShouldThrowExceptionOnError() throws SQLException {
-		Statement stmt = BoltNeo4jStatement.newInstance(false, Mocker.mockOpenConnection());
+		Statement stmt = BoltNeo4jStatement.newInstance(Mocker.mockOpenConnection());
 		stmt.addBatch("MATCH n WHERE id(n) = 1 SET n.property=1");
 		stmt.addBatch("MATCH n WHERE id(n) = 2 SET n.property=2");
 
@@ -539,7 +539,7 @@ public class BoltNeo4jStatementTest {
 	@Test public void executeBatchShouldThrowExceptionOnClosed() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		Statement stmt = BoltNeo4jStatement.newInstance(false, Mocker.mockConnectionClosed());
+		Statement stmt = BoltNeo4jStatement.newInstance(Mocker.mockConnectionClosed());
 		String str1 = "MATCH n WHERE id(n) = 1 SET n.property=1";
 		String str2 = "MATCH n WHERE id(n) = 2 SET n.property=2";
 		stmt.addBatch(str1);
@@ -554,7 +554,7 @@ public class BoltNeo4jStatementTest {
 	/*------------------------------*/
 
 	@Test public void getConnectionShouldWork() throws SQLException {
-		Statement stmt = BoltNeo4jStatement.newInstance(false, Mocker.mockOpenConnection());
+		Statement stmt = BoltNeo4jStatement.newInstance(Mocker.mockOpenConnection());
 
 		assertNotNull(stmt.getConnection());
 		assertEquals(Mocker.mockOpenConnection().getClass(), stmt.getConnection().getClass());
@@ -563,7 +563,7 @@ public class BoltNeo4jStatementTest {
 	@Test public void getConnectionShouldThrowExceptionOnClosedStatement() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		Statement stmt = BoltNeo4jStatement.newInstance(false, Mocker.mockConnectionClosed());
+		Statement stmt = BoltNeo4jStatement.newInstance(Mocker.mockConnectionClosed());
 		stmt.close();
 
 		stmt.getConnection();
diff --git a/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/SamplePT.java b/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/SamplePT.java
index 0d2bbdf7..e1db687a 100644
--- a/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/SamplePT.java
+++ b/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/SamplePT.java
@@ -75,19 +75,16 @@ public class SamplePT {
 	@State(Scope.Benchmark) public static class Data {
 		@Setup public void initialize() throws ClassNotFoundException, SQLException, IOException {
 			jdbcConnection = DriverManager.getConnection("jdbc:neo4j:bolt://localhost:7687?user=neo4j,password=test");
-			jdbcConnectionDebug = DriverManager.getConnection("jdbc:neo4j:bolt://localhost:7687?user=neo4j,password=test,debug");
 			driver = GraphDatabase.driver("bolt://localhost:7687", AuthTokens.basic("neo4j", "test"));
 		}
 
 		@TearDown public void close() throws ClassNotFoundException, SQLException, IOException {
 			jdbcConnection.close();
-			jdbcConnectionDebug.close();
 			driver.close();
 		}
 
 		public String query = "MATCH (n) RETURN n";
 		public Connection jdbcConnection;
-		public Connection jdbcConnectionDebug;
 		public org.neo4j.driver.Driver driver;
 
 	}
@@ -106,11 +103,4 @@ public class SamplePT {
 		session.close();
 	}
 
-	@Benchmark public void testSimpleQueryWithDebugJDBC(Data data, Blackhole bh) throws SQLException {
-		System.setOut(Mockito.mock(PrintStream.class));
-		Connection conn = data.jdbcConnectionDebug;
-		Statement stmt = conn.createStatement();
-		bh.consume(stmt.executeQuery(data.query));
-		stmt.close();
-	}
 }
diff --git a/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/boltrouting/BoltRoutingIT.java b/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/boltrouting/BoltRoutingIT.java
index 1e6c90f2..cd8776ba 100644
--- a/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/boltrouting/BoltRoutingIT.java
+++ b/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/boltrouting/BoltRoutingIT.java
@@ -49,9 +49,6 @@ public class BoltRoutingIT {
     private static final String NEO4J_USER = "neo4j";
     private static final String NEO4J_PASSWORD = "jdbc";
 
-//    private String connectionUrl = "jdbc:neo4j:bolt+routing://localhost:17681?noSsl&debug=true&routing:policy=EU&routing:servers=localhost:17682;localhost:17683;localhost:17684;localhost:17685;localhost:17686;localhost:17687";
-//    private String connectionUrl2 = "jdbc:neo4j:bolt+routing://localhost:17681,localhost:17682,localhost:17683,localhost:17684,localhost:17685,localhost:17686,localhost:17687?noSsl&debug=true&routing:policy=EU";
-
     private static TestcontainersCausalCluster cluster;
 
     @BeforeClass