diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSClient.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSClient.java
index d02d64659140ffd3dbcdeacb2e3748b8f25a696f..957e20f5f17d0447f1768bfe338ea0715644695a 100644
--- a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSClient.java
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSClient.java
@@ -81,8 +81,6 @@ public class HaaSClient {
 
 	private String sessionID;
 
-	private Path workDirectory;
-
 	private UserAndLimitationManagementWsSoap userAndLimitationManagement;
 
 	private JobManagementWsSoap jobManagement;
@@ -111,9 +109,8 @@ public class HaaSClient {
 		WS_STATE2STATE = Collections.unmodifiableMap(map);
 	}
 
-	public HaaSClient(Path workDirectory, Long templateId, Integer timeOut,Long  clusterNodeType, String projectId) {
+	public HaaSClient(Long templateId, Integer timeOut,Long  clusterNodeType, String projectId) {
 		super();
-		this.workDirectory = workDirectory;
 		this.templateId = templateId;
 		this.timeOut = timeOut;
 		this.clusterNodeType = clusterNodeType;
@@ -181,7 +178,7 @@ public class HaaSClient {
 		}
 	}
 
-	public void download(long jobId) {
+	public void download(long jobId, Path workDirectory) {
 		try {
 			FileTransferMethodExt ft = getFileTransfer().getFileTransferMethod(jobId, getSessionID());
 			try (ScpClient scpClient = getScpClient(ft)) {
diff --git a/haas-java-client/src/test/java/cz/it4i/fiji/haas_java_client/TestHaaSJavaClient.java b/haas-java-client/src/test/java/cz/it4i/fiji/haas_java_client/TestHaaSJavaClient.java
index 5614668defe4d63b9173d6d47cfa94d36e772cad..65d0f7fcaf8995fbd0884ea94b736b61286b33e1 100644
--- a/haas-java-client/src/test/java/cz/it4i/fiji/haas_java_client/TestHaaSJavaClient.java
+++ b/haas-java-client/src/test/java/cz/it4i/fiji/haas_java_client/TestHaaSJavaClient.java
@@ -1,7 +1,9 @@
 package cz.it4i.fiji.haas_java_client;
 
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
 import java.nio.file.Paths;
-import java.rmi.RemoteException;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
@@ -14,11 +16,16 @@ import cz.it4i.fiji.haas_java_client.proxy.JobFileContentExt;
 
 public class TestHaaSJavaClient {
 
-	public static void main(String[] args) throws RemoteException, ServiceException {
+	public static void main(String[] args) throws ServiceException, IOException {
 		Map<String, String> params = new HashMap<>();
 		params.put("inputParam", "someStringParam");
-		HaaSClient client = new HaaSClient(Paths.get("/home/koz01/aaa"), 1l,600, 7l,"DD-17-31");
+		Path baseDir = Paths.get("/home/koz01/aaa");
+		HaaSClient client = new HaaSClient( 1l,600, 7l,"DD-17-31");
 		long jobId = client.start(Arrays.asList(Paths.get("/home/koz01/aaa/vecmath.jar")), "TestOutRedirect", params.entrySet());
+		Path workDir = baseDir.resolve("" + jobId);
+		if (!Files.isDirectory(workDir)) {
+			Files.createDirectories(workDir);
+		}
 		JobInfo info;
 		do {
 			try {
@@ -33,7 +40,7 @@ public class TestHaaSJavaClient {
 			}
 			client.downloadPartsOfJobFiles(jobId, taskFileOffset).forEach(jfc -> showJFC(jfc));
 			if (info.getState() == JobState.Finished) {
-				client.download(jobId);
+				client.download(jobId,workDir);
 			}
 			System.out.println("JobId :" + jobId + ", state" + info.getState());
 		} while (info.getState() != JobState.Canceled && info.getState() != JobState.Failed
diff --git a/haas-java-client/src/test/java/cz/it4i/fiji/haas_java_client/TestHaaSJavaClientWithSPIM.java b/haas-java-client/src/test/java/cz/it4i/fiji/haas_java_client/TestHaaSJavaClientWithSPIM.java
index d110ed720673a2f8170303b63e9391d4574f3657..3e9731166d41ba316059a61b08784b3118ecff69 100644
--- a/haas-java-client/src/test/java/cz/it4i/fiji/haas_java_client/TestHaaSJavaClientWithSPIM.java
+++ b/haas-java-client/src/test/java/cz/it4i/fiji/haas_java_client/TestHaaSJavaClientWithSPIM.java
@@ -1,8 +1,9 @@
 package cz.it4i.fiji.haas_java_client;
 
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
 import java.nio.file.Paths;
-import java.rmi.RemoteException;
-import java.util.Collections;
 
 import javax.xml.rpc.ServiceException;
 
@@ -11,11 +12,16 @@ import cz.it4i.fiji.haas_java_client.proxy.JobFileContentExt;
 
 public class TestHaaSJavaClientWithSPIM {
 
-	public static void main(String[] args) throws RemoteException, ServiceException {
-		HaaSClient client = new HaaSClient(Paths.get("/home/koz01/Work/vyzkumnik/fiji/work/aaa"), 2l, 9600, 6l,
-				"DD-17-31");
+	public static void main(String[] args) throws ServiceException, IOException {
+		HaaSClient client = new HaaSClient(2l, 9600, 6l, "DD-17-31");
+		Path baseDir = Paths.get("/home/koz01/Work/vyzkumnik/fiji/work/aaa");
+
 		long jobId = 36;// client.start(Collections.emptyList(), "TestOutRedirect",
 						// Collections.emptyList());
+		Path workDir = baseDir.resolve("" + jobId);
+		if (!Files.isDirectory(workDir)) {
+			Files.createDirectories(workDir);
+		}
 		JobInfo info;
 		boolean firstIteration = true;
 		do {
@@ -33,7 +39,7 @@ public class TestHaaSJavaClientWithSPIM {
 			}
 			client.downloadPartsOfJobFiles(jobId, taskFileOffset).forEach(jfc -> showJFC(jfc));
 			if (info.getState() == JobState.Finished) {
-				client.download(jobId);
+				client.download(jobId, workDir);
 			}
 			System.out.println("JobId :" + jobId + ", state" + info.getState());
 			firstIteration = false;