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 f6d891465341260b09e5bb32867f547997ae59e1..d6dab95f480dc18aba452bd2b00b5d8d02be97cb 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
@@ -22,10 +22,7 @@ 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";
-
+	
 	private static final String JOB_HAS_DATA_TO_DOWNLOAD_PROPERTY = "job.needDownload";
 
 	public static boolean isJobPath(Path p) {
@@ -36,23 +33,20 @@ public class Job {
 
 	@Parameter
 	private LogService log;
-	
+
 	private Path jobDir;
 
 	private Supplier<HaaSClient> haasClientSupplier;
 
 	private JobState state;
 
-	
-
 	private Boolean needsDownload;
 
 	private Long jobId;
 
 	private JobInfo jobInfo;
 
-	public Job(Path path, Collection<Path> files, Supplier<HaaSClient> haasClientSupplier)
-			throws IOException {
+	public Job(Path path, Collection<Path> files, Supplier<HaaSClient> haasClientSupplier) throws IOException {
 		this(haasClientSupplier);
 		HaaSClient client = this.haasClientSupplier.get();
 		long id = client.start(files, "TestOutRedirect", Collections.emptyList());
@@ -85,20 +79,20 @@ public class Job {
 	}
 
 	synchronized public void updateState() throws IOException {
-		JobState actualState = updateJobInfo().getState();
-		if (EnumSet.of(JobState.Failed, JobState.Finished, JobState.Canceled).contains(actualState)
-				&& state != actualState) {
+		state = updateJobInfo().getState();
+		if (needsDownload == null
+				&& EnumSet.of(JobState.Failed, JobState.Finished, JobState.Canceled).contains(state)) {
 			needsDownload = true;
-			state = actualState;
-			saveJobinfo();
 		}
+		saveJobinfo();
 	}
 
 	private JobInfo updateJobInfo() {
 		return jobInfo = haasClientSupplier.get().obtainJobInfo(getJobId());
 	}
+
 	synchronized public void download() {
-		if(!needsDownload()) {
+		if (!needsDownload()) {
 			throw new IllegalStateException("Job: " + getJobId() + " dosn't need download");
 		}
 		haasClientSupplier.get().download(getJobId(), jobDir);
@@ -109,19 +103,15 @@ public class Job {
 			log.error(e);
 		}
 	}
-	
+
 	public JobState getState() {
 		return state;
 	}
-	
-	
 
 	private synchronized void saveJobinfo() throws IOException {
 		try (OutputStream ow = Files.newOutputStream(jobDir.resolve(JOB_INFO_FILE),
 				StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.CREATE)) {
 			Properties prop = new Properties();
-			prop.setProperty(JOB_ID_PROPERTY, "" + getJobId());
-			prop.setProperty(JOB_STATE_PROPERTY, "" + state);
 			if (needsDownload != null) {
 				prop.setProperty(JOB_HAS_DATA_TO_DOWNLOAD_PROPERTY, needsDownload.toString());
 			}
@@ -133,8 +123,6 @@ public class Job {
 		try (InputStream is = Files.newInputStream(jobDir.resolve(JOB_INFO_FILE))) {
 			Properties prop = new Properties();
 			prop.load(is);
-			state = JobState.valueOf(prop.getProperty(JOB_STATE_PROPERTY));
-			assert getJobId() == Long.parseLong(prop.getProperty(JOB_ID_PROPERTY));
 			if (prop.containsKey(JOB_HAS_DATA_TO_DOWNLOAD_PROPERTY)) {
 				needsDownload = Boolean.parseBoolean(prop.getProperty(JOB_HAS_DATA_TO_DOWNLOAD_PROPERTY));
 			}
diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/CheckStatusOfHaaSController.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/CheckStatusOfHaaSController.java
index 68b31a1e10699736e06fb4c1c25586349e43f3d5..da719f99d121b1a3672737b450bbdb8bcb665222 100644
--- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/CheckStatusOfHaaSController.java
+++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/CheckStatusOfHaaSController.java
@@ -6,13 +6,12 @@ import org.scijava.log.LogService;
 import org.scijava.plugin.Parameter;
 
 import cz.it4i.fiji.haas.JobManager.JobInfo;
-import javafx.beans.value.ObservableValue;
+import javafx.event.ActionEvent;
 import javafx.event.EventHandler;
 import javafx.fxml.FXML;
 import javafx.scene.control.ContextMenu;
 import javafx.scene.control.MenuItem;
 import javafx.scene.control.TableColumn;
-import javafx.scene.control.TableColumn.CellDataFeatures;
 import javafx.scene.control.TableView;
 import javafx.scene.input.ContextMenuEvent;
 
@@ -37,10 +36,14 @@ public class CheckStatusOfHaaSController {
 		initMenu();
 	}
 
+	private void downloadData(ActionEvent event) {
+		jobs.getSelectionModel().getSelectedItem().downloadData();
+	}
+	
 	private void initMenu() {
 		ContextMenu cm = new ContextMenu();
 		MenuItem download = new MenuItem("Download");
-		download.setOnAction(ev->jobs.getSelectionModel().getSelectedItem().downloadData());
+		download.setOnAction(this::downloadData);
 		cm.getItems().add(download);
 		jobs.setContextMenu(cm);
 		jobs.setOnContextMenuRequested(new EventHandler<ContextMenuEvent>() {