diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/CheckStatusOfHaaS.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/CheckStatusOfHaaS.java
index 884d52fe953062315cf2382de1d2dadd1464b923..b4c6a2367e5c428b26b6e237dbc0097a8c14b70e 100644
--- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/CheckStatusOfHaaS.java
+++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/CheckStatusOfHaaS.java
@@ -17,21 +17,27 @@ import net.imagej.ImageJ;
  *
  */
 @Plugin(type = Command.class, headless = true, menuPath = "Plugins>Check status of HaaS")
-public class CheckStatusOfHaaS implements Command {
+public class CheckStatusOfHaaS extends CommandBase implements Command {
 
 	@Parameter
 	private LogService log;
+	
 
 	@Parameter(label="Work directory",persist=true)
 	private File workDirectory;
 	
+	@Parameter(label="Work directory",persist=true,required = false)
+	private File workDirectory2;
+	
 	@SuppressWarnings("unused")
 	private JobManager jobManager;
 	
+	
+	
 	@Override
 	public void run() {
 		try {
-			jobManager = new JobManager(getWorkingDirectoryPath());
+			jobManager = new JobManager(getWorkingDirectoryPath(), getGate());
 		} catch (IOException e) {
 			log.error(e);
 		}
@@ -47,7 +53,8 @@ public class CheckStatusOfHaaS implements Command {
 		final ImageJ ij = new ImageJ();
 		ij.launch(args);
 	
-		ij.command().run(CheckStatusOfHaaS.class, true);
+		//ij.command().run(CheckStatusOfHaaS.class, true);
 	}
 
+	
 }
diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/CommandBase.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/CommandBase.java
new file mode 100644
index 0000000000000000000000000000000000000000..835b0ff55d0dec94d00faef60602bd7985998a17
--- /dev/null
+++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/CommandBase.java
@@ -0,0 +1,21 @@
+package cz.it4i.fiji.haas;
+
+import org.scijava.log.LogService;
+import org.scijava.plugin.Parameter;
+
+class CommandBase {
+	@Parameter
+	private LogService _log;
+
+	protected ImageJGate getGate() {
+		return gate;
+	}
+
+	private ImageJGate gate = new ImageJGate() {
+
+		@Override
+		public LogService getLog() {
+			return _log;
+		}
+	};
+}
diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ImageJGate.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ImageJGate.java
new file mode 100644
index 0000000000000000000000000000000000000000..1a5ce21a124b8d04d075aadc4fdbdf573f4a2bb7
--- /dev/null
+++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ImageJGate.java
@@ -0,0 +1,8 @@
+package cz.it4i.fiji.haas;
+
+import org.scijava.log.LogService;
+
+interface ImageJGate {
+
+	LogService getLog();
+}
diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/Job.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/Job.java
index e8ed48e62526c1d549ebd5aee8979d9f7f1e8557..b85264eef33c79d6d2acf96aecd9019cb9e8a683 100644
--- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/Job.java
+++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/Job.java
@@ -17,6 +17,8 @@ import cz.it4i.fiji.haas_java_client.JobState;
 
 public class Job {
 
+	
+	
 	private static final String JOB_ID_PROPERTY = "job.id";
 
 	private static final String JOB_STATE_PROPERTY = "job.state";
@@ -32,9 +34,11 @@ public class Job {
 	private Supplier<HaaSClient> haasClientSupplier;
 	
 	private JobState state;
+
+	private ImageJGate gate;
 	
-	public Job(Path path, Collection<Path> files, Supplier<HaaSClient> haasClientSupplier) throws IOException {
-		this(haasClientSupplier);
+	public Job(Path path, Collection<Path> files, Supplier<HaaSClient> haasClientSupplier, ImageJGate gate) throws IOException {
+		this(haasClientSupplier,gate);
 		HaaSClient client = this.haasClientSupplier.get();
 		long id = client.start(files, "TestOutRedirect",
 				Collections.emptyList());
@@ -46,8 +50,8 @@ public class Job {
 
 	
 
-	public Job(Path p, Supplier<HaaSClient> haasClientSupplier) throws IOException {
-		this(haasClientSupplier);
+	public Job(Path p, Supplier<HaaSClient> haasClientSupplier, ImageJGate gate) throws IOException {
+		this(haasClientSupplier,gate);
 		jobDir = p;
 		loadJobInfo();
 		checkStateForDownload();
@@ -56,7 +60,9 @@ public class Job {
 	private synchronized void checkStateForDownload() throws IOException {
 		long jobId = getJobId();
 		JobState actualState = haasClientSupplier.get().obtainJobInfo(jobId).getState();
+		gate.getLog().info("Job: " + jobId + " is " + actualState);
 		if(EnumSet.of(JobState.Failed, JobState.Finished, JobState.Canceled).contains(actualState) && state != actualState) {
+			gate.getLog().info("Downloading data.");
 			haasClientSupplier.get().download(jobId, jobDir);
 			state = actualState;
 			saveJobinfo();
@@ -65,8 +71,9 @@ public class Job {
 
 
 
-	private Job(Supplier<HaaSClient> haasClientSupplier) {
+	private Job(Supplier<HaaSClient> haasClientSupplier, ImageJGate gate) {
 		this.haasClientSupplier = haasClientSupplier;
+		this.gate = gate;
 	}
 	
 	private synchronized void saveJobinfo() throws IOException {
diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/JobManager.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/JobManager.java
index 733d9322970c9fb8fabcb06019f6be9ae4cd53c4..d3da7e99a10d812fe843ec8adc5cb989f945be05 100644
--- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/JobManager.java
+++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/JobManager.java
@@ -16,13 +16,16 @@ public class JobManager {
 	
 	private HaaSClient haasClient;
 
-	public JobManager(Path workDirectory) throws IOException {
+	private ImageJGate gate;
+
+	public JobManager(Path workDirectory, ImageJGate gate) throws IOException {
 		super();
+		this.gate = gate;
 		this.workDirectory = workDirectory;
 		Files.list(this.workDirectory).filter(p -> Files.isDirectory(p) && Job.isJobPath(p))
 				.forEach(p -> {
 					try {
-						jobs.add(new Job(p,this::getHaasClient));
+						jobs.add(new Job(p,this::getHaasClient, gate));
 					} catch (IOException e) {
 						e.printStackTrace();
 					}
@@ -31,7 +34,7 @@ public class JobManager {
 	}
 
 	public void startJob(Path path, Collection<Path> files) throws IOException {
-		jobs.add(new Job(path, files,this::getHaasClient));
+		jobs.add(new Job(path, files,this::getHaasClient,gate));
 	}
 
 	private HaaSClient getHaasClient() {
diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/RunWithHaaS.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/RunWithHaaS.java
index 4dfec903b38b5c95cb6262871d2557fe4b906868..b120487c72a1c9256b70f250df37f5cd87b515f1 100644
--- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/RunWithHaaS.java
+++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/RunWithHaaS.java
@@ -20,7 +20,7 @@ import net.imagej.ImageJ;
  *
  */
 @Plugin(type = Command.class, headless = true, menuPath = "Plugins>Run with HaaS")
-public class RunWithHaaS implements Command {
+public class RunWithHaaS extends CommandBase implements Command {
 
 	@Parameter
 	private LogService log;
@@ -36,7 +36,7 @@ public class RunWithHaaS implements Command {
 	@Override
 	public void run() {
 		try {
-			jobManager = new JobManager(getWorkingDirectoryPath());
+			jobManager = new JobManager(getWorkingDirectoryPath(), getGate());
 			jobManager.startJob(getWorkingDirectoryPath(),getContent(dataDirectory));
 		} catch (IOException e) {
 			log.error(e);