diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/FXFrame.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/FXFrame.java
similarity index 98%
rename from haas-imagej-client/src/main/java/cz/it4i/fiji/haas/FXFrame.java
rename to haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/FXFrame.java
index 3c71c41c00579a5356b65601f66f0e2a39290d29..c0a723854fa2ecf1401ad2af2616849a8e5d5716 100644
--- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/FXFrame.java
+++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/FXFrame.java
@@ -1,4 +1,4 @@
-package cz.it4i.fiji.haas;
+package cz.it4i.fiji.haas.ui;
 
 import java.awt.Dimension;
 import java.awt.Frame;
diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ModalDialogs.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/ModalDialogs.java
similarity index 91%
rename from haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ModalDialogs.java
rename to haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/ModalDialogs.java
index fe19f07d5102a1e4f097594e4b18349a513ffeeb..45d845b02e87d74eeaac2b7928cac15723f7f3d9 100644
--- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ModalDialogs.java
+++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/ModalDialogs.java
@@ -1,4 +1,4 @@
-package cz.it4i.fiji.haas;
+package cz.it4i.fiji.haas.ui;
 
 import javax.swing.JDialog;
 import javax.swing.WindowConstants;
diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/ProgressDialog.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/ProgressDialog.java
index bad0f6b0a35256279c7ee089cbf0d30535aa3add..acd8050822221d2b14cec5c934b6129e4c539d73 100644
--- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/ProgressDialog.java
+++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/ProgressDialog.java
@@ -1,4 +1,4 @@
-package cz.it4i.fiji.haas.ui;
+ package cz.it4i.fiji.haas.ui;
 
 
 import java.awt.Adjustable;
diff --git a/haas-snakemake-spim/pom.xml b/haas-snakemake-spim/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c3eebd11d8dbcca4e4b6e42d8413798ae1018547
--- /dev/null
+++ b/haas-snakemake-spim/pom.xml
@@ -0,0 +1,94 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.scijava</groupId>
+		<artifactId>pom-scijava</artifactId>
+		<version>17.1.1</version>
+		<relativePath />
+	</parent>
+	<groupId>cz.it4i.fiji</groupId>
+	<artifactId>haas-snakemake-spim</artifactId>
+	<version>0.0.1-SNAPSHOT</version>
+	<packaging>jar</packaging>
+	<name>Plugins for running SPIM automated workflow by IT4I HaaS.</name>
+	<description>This example provides an introduction to writing ImageJ commands.</description>
+	<url>https://github.com/[MY-ORG]/[MY-REPO]</url>
+	<inceptionYear>2013</inceptionYear>
+	<organization>
+		<name>[MY-ORGANIZATION-NAME]</name>
+		<url>[MY-ORGANIZATION-WEB-SITE]</url>
+	</organization>
+	<licenses>
+		<license>
+			<name>CC0 1.0 Universal License</name>
+			<url>http://creativecommons.org/publicdomain/zero/1.0/</url>
+			<distribution>repo</distribution>
+		</license>
+	</licenses>
+
+	<developers>
+		<developer>
+			<id>[MY-GITHUB-ID]</id>
+			<name>[MY-FULL-NAME]</name>
+			<url>https://imagej.net/User:[MY-IMAGEJ-WIKI-ACCOUNT]</url>
+		</developer>
+	</developers>
+	<contributors>
+		<contributor>
+			<name>None</name>
+		</contributor>
+	</contributors>
+
+	<mailingLists>
+		<mailingList>
+			<name>ImageJ Forum</name>
+			<archive>http://forum.imagej.net/</archive>
+		</mailingList>
+	</mailingLists>
+
+	<scm>
+		<connection>scm:git:git://github.com/[MY-ORG]/[MY-REPO]</connection>
+		<developerConnection>scm:git:git@github.com:[MY-ORG]/[MY-REPO]</developerConnection>
+		<tag>HEAD</tag>
+		<url>https://github.com/[MY-ORG]/[MY-REPO]</url>
+	</scm>
+	<issueManagement>
+		<system>GitHub Issues</system>
+		<url>http://github.com/[MY-ORG]/[MY-REPO]/issues</url>
+	</issueManagement>
+	<ciManagement>
+		<system>None</system>
+	</ciManagement>
+
+
+	<repositories>
+		<repository>
+			<id>imagej.public</id>
+			<url>http://maven.imagej.net/content/groups/public</url>
+		</repository>
+	</repositories>
+
+	<dependencies>
+		<dependency>
+			<groupId>net.imagej</groupId>
+			<artifactId>imagej</artifactId>
+		</dependency>
+		
+		<dependency>
+			<groupId>cz.it4i.fiji</groupId>
+			<artifactId>haas-imagej-client</artifactId>
+			<version>0.0.1-SNAPSHOT</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-api</artifactId>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-jdk14 -->
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-simple</artifactId>
+		</dependency>
+	</dependencies>
+</project>
\ No newline at end of file
diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/CheckStatusOfHaaS.java b/haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/commands/CheckStatusOfHaaS.java
similarity index 91%
rename from haas-imagej-client/src/main/java/cz/it4i/fiji/haas/CheckStatusOfHaaS.java
rename to haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/commands/CheckStatusOfHaaS.java
index b03c09ff9a334763a58c4a080b785b821c944572..bc9e974ef079d0d4a9789a90948661d6512bd193 100644
--- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/CheckStatusOfHaaS.java
+++ b/haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/commands/CheckStatusOfHaaS.java
@@ -1,4 +1,4 @@
-package cz.it4i.fiji.haas;
+package cz.it4i.fiji.haas_snakemake_spim.commands;
 
 import java.awt.Frame;
 import java.io.File;
@@ -16,8 +16,12 @@ import org.scijava.ui.ApplicationFrame;
 import org.scijava.ui.UIService;
 import org.scijava.widget.UIComponent;
 
+import cz.it4i.fiji.haas.JobManager;
+import cz.it4i.fiji.haas.TestingConstants;
 import cz.it4i.fiji.haas.JobManager.JobInfo;
+import cz.it4i.fiji.haas.ui.ModalDialogs;
 import cz.it4i.fiji.haas.ui.ProgressDialog;
+import cz.it4i.fiji.haas_snakemake_spim.ui.CheckStatusOfHaaSWindow;
 import net.imagej.ImageJ;
 
 /**
diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/RunWithHaaS.java b/haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/commands/RunWithHaaS.java
similarity index 93%
rename from haas-imagej-client/src/main/java/cz/it4i/fiji/haas/RunWithHaaS.java
rename to haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/commands/RunWithHaaS.java
index 5265f1789f7ec64794eb26765ba197cc112ef838..96cda95dc0f79798a2eabf708d79e69fc3e49f9d 100644
--- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/RunWithHaaS.java
+++ b/haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/commands/RunWithHaaS.java
@@ -1,4 +1,4 @@
-package cz.it4i.fiji.haas;
+package cz.it4i.fiji.haas_snakemake_spim.commands;
 
 import java.awt.Frame;
 import java.io.File;
@@ -18,6 +18,9 @@ import org.scijava.ui.ApplicationFrame;
 import org.scijava.ui.UIService;
 import org.scijava.widget.UIComponent;
 
+import cz.it4i.fiji.haas.JobManager;
+import cz.it4i.fiji.haas.TestingConstants;
+import cz.it4i.fiji.haas.ui.ModalDialogs;
 import cz.it4i.fiji.haas.ui.ProgressDialog;
 import cz.it4i.fiji.haas_java_client.HaaSClient;
 import net.imagej.ImageJ;
diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/CheckStatusOfHaaS.fxml b/haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/ui/CheckStatusOfHaaS.fxml
similarity index 89%
rename from haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/CheckStatusOfHaaS.fxml
rename to haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/ui/CheckStatusOfHaaS.fxml
index c0b50d22392427820f443ada17100443185d9ed9..07201409776731fd9033a79207a24241f760665b 100644
--- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/CheckStatusOfHaaS.fxml
+++ b/haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/ui/CheckStatusOfHaaS.fxml
@@ -4,7 +4,7 @@
 <?import javafx.scene.control.TableView?>
 <?import javafx.scene.layout.BorderPane?>
 
-<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="912.0" xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1" fx:controller="cz.it4i.fiji.haas.ui.CheckStatusOfHaaSController">
+<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="912.0" xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1" fx:controller="cz.it4i.fiji.haas_snakemake_spim.ui.CheckStatusOfHaaSController">
    <center>
       <TableView fx:id="jobs" prefHeight="400.0" prefWidth="675.0" BorderPane.alignment="CENTER">
         <columns>
diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/CheckStatusOfHaaSController.java b/haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/ui/CheckStatusOfHaaSController.java
similarity index 92%
rename from haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/CheckStatusOfHaaSController.java
rename to haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/ui/CheckStatusOfHaaSController.java
index d814f5871cfab1418447b3301c152967ac12e490..92fa18eddd69d751df8d8e382eff873738be1ecb 100644
--- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/CheckStatusOfHaaSController.java
+++ b/haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/ui/CheckStatusOfHaaSController.java
@@ -1,4 +1,4 @@
-package cz.it4i.fiji.haas.ui;
+package cz.it4i.fiji.haas_snakemake_spim.ui;
 
 import java.awt.Window;
 import java.util.function.Function;
@@ -7,7 +7,9 @@ import org.scijava.log.LogService;
 import org.scijava.plugin.Parameter;
 
 import cz.it4i.fiji.haas.JobManager.JobInfo;
-import cz.it4i.fiji.haas.ModalDialogs;
+import cz.it4i.fiji.haas.ui.ModalDialogs;
+import cz.it4i.fiji.haas.ui.ObservableValueAdapter;
+import cz.it4i.fiji.haas.ui.ProgressDialog;
 import javafx.application.Platform;
 import javafx.event.ActionEvent;
 import javafx.event.EventHandler;
diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/CheckStatusOfHaaSWindow.java b/haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/ui/CheckStatusOfHaaSWindow.java
similarity index 92%
rename from haas-imagej-client/src/main/java/cz/it4i/fiji/haas/CheckStatusOfHaaSWindow.java
rename to haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/ui/CheckStatusOfHaaSWindow.java
index 6cccae8fe6a61e565a797651934093c4a8993abb..b2b13c67ae46760ef15e8df5eb671a59e6229c99 100644
--- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/CheckStatusOfHaaSWindow.java
+++ b/haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/ui/CheckStatusOfHaaSWindow.java
@@ -1,4 +1,4 @@
-package cz.it4i.fiji.haas;
+package cz.it4i.fiji.haas_snakemake_spim.ui;
 
 import java.awt.Frame;
 
@@ -6,7 +6,7 @@ import org.scijava.Context;
 import org.scijava.plugin.Parameter;
 
 import cz.it4i.fiji.haas.JobManager.JobInfo;
-import cz.it4i.fiji.haas.ui.CheckStatusOfHaaSController;
+import cz.it4i.fiji.haas.ui.FXFrame;
 import javafx.application.Platform;
 
 public class CheckStatusOfHaaSWindow extends FXFrame<CheckStatusOfHaaSController> {
diff --git a/haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/ui/package-info.java b/haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/ui/package-info.java
new file mode 100644
index 0000000000000000000000000000000000000000..1465d1c6d5f0a14aae969c95d495997274d0fd3c
--- /dev/null
+++ b/haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/ui/package-info.java
@@ -0,0 +1,8 @@
+/**
+ * 
+ */
+/**
+ * @author koz01
+ *
+ */
+package cz.it4i.fiji.haas_snakemake_spim.ui;
\ No newline at end of file
diff --git a/haas-spim-benchmark/pom.xml b/haas-spim-benchmark/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9a7a84fb8b45c33872e5cc4b1a9df97c7527248e
--- /dev/null
+++ b/haas-spim-benchmark/pom.xml
@@ -0,0 +1,94 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.scijava</groupId>
+		<artifactId>pom-scijava</artifactId>
+		<version>17.1.1</version>
+		<relativePath />
+	</parent>
+	<groupId>cz.it4i.fiji</groupId>
+	<artifactId>haas-spim-benchmark</artifactId>
+	<version>0.0.1-SNAPSHOT</version>
+	<packaging>jar</packaging>
+	<name>Plugins for running SPIM automated workflow by IT4I HaaS.</name>
+	<description>This example provides an introduction to writing ImageJ commands.</description>
+	<url>https://github.com/[MY-ORG]/[MY-REPO]</url>
+	<inceptionYear>2013</inceptionYear>
+	<organization>
+		<name>[MY-ORGANIZATION-NAME]</name>
+		<url>[MY-ORGANIZATION-WEB-SITE]</url>
+	</organization>
+	<licenses>
+		<license>
+			<name>CC0 1.0 Universal License</name>
+			<url>http://creativecommons.org/publicdomain/zero/1.0/</url>
+			<distribution>repo</distribution>
+		</license>
+	</licenses>
+
+	<developers>
+		<developer>
+			<id>[MY-GITHUB-ID]</id>
+			<name>[MY-FULL-NAME]</name>
+			<url>https://imagej.net/User:[MY-IMAGEJ-WIKI-ACCOUNT]</url>
+		</developer>
+	</developers>
+	<contributors>
+		<contributor>
+			<name>None</name>
+		</contributor>
+	</contributors>
+
+	<mailingLists>
+		<mailingList>
+			<name>ImageJ Forum</name>
+			<archive>http://forum.imagej.net/</archive>
+		</mailingList>
+	</mailingLists>
+
+	<scm>
+		<connection>scm:git:git://github.com/[MY-ORG]/[MY-REPO]</connection>
+		<developerConnection>scm:git:git@github.com:[MY-ORG]/[MY-REPO]</developerConnection>
+		<tag>HEAD</tag>
+		<url>https://github.com/[MY-ORG]/[MY-REPO]</url>
+	</scm>
+	<issueManagement>
+		<system>GitHub Issues</system>
+		<url>http://github.com/[MY-ORG]/[MY-REPO]/issues</url>
+	</issueManagement>
+	<ciManagement>
+		<system>None</system>
+	</ciManagement>
+
+
+	<repositories>
+		<repository>
+			<id>imagej.public</id>
+			<url>http://maven.imagej.net/content/groups/public</url>
+		</repository>
+	</repositories>
+
+	<dependencies>
+		<dependency>
+			<groupId>net.imagej</groupId>
+			<artifactId>imagej</artifactId>
+		</dependency>
+		
+		<dependency>
+			<groupId>cz.it4i.fiji</groupId>
+			<artifactId>haas-imagej-client</artifactId>
+			<version>0.0.1-SNAPSHOT</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-api</artifactId>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-jdk14 -->
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-simple</artifactId>
+		</dependency>
+	</dependencies>
+</project>
\ No newline at end of file
diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/BenchmarkJobManager.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/BenchmarkJobManager.java
similarity index 95%
rename from haas-imagej-client/src/main/java/cz/it4i/fiji/haas/BenchmarkJobManager.java
rename to haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/BenchmarkJobManager.java
index 37b1daa01c22ea2902ee170eda69f041d8ee28ec..26e65fd2383d11ec62863db01cdf811cfed7e34d 100644
--- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/BenchmarkJobManager.java
+++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/BenchmarkJobManager.java
@@ -1,4 +1,4 @@
-package cz.it4i.fiji.haas;
+package cz.it4i.fiji.haas_spim_benchmark.core;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -14,6 +14,9 @@ import java.util.stream.Collectors;
 
 import org.yaml.snakeyaml.Yaml;
 
+import cz.it4i.fiji.haas.JobManager;
+import cz.it4i.fiji.haas.TestingConstants;
+import cz.it4i.fiji.haas.UploadingFileFromResource;
 import cz.it4i.fiji.haas.JobManager.JobInfo;
 import cz.it4i.fiji.haas.JobManager.JobSynchronizableFile;
 import cz.it4i.fiji.haas_java_client.HaaSClient;
diff --git a/haas-imagej-client/src/test/java/cz/it4i/fiji/haas/RunBenchmark.java b/haas-spim-benchmark/src/test/java/cz/it4i/fiji/haas/RunBenchmark.java
similarity index 97%
rename from haas-imagej-client/src/test/java/cz/it4i/fiji/haas/RunBenchmark.java
rename to haas-spim-benchmark/src/test/java/cz/it4i/fiji/haas/RunBenchmark.java
index 01b62934608655ad5192487aa68f525524c3edc1..3a36e0e82d5df1cbd9fd9d3624a35318068d76b4 100644
--- a/haas-imagej-client/src/test/java/cz/it4i/fiji/haas/RunBenchmark.java
+++ b/haas-spim-benchmark/src/test/java/cz/it4i/fiji/haas/RunBenchmark.java
@@ -11,6 +11,7 @@ import org.slf4j.LoggerFactory;
 
 import cz.it4i.fiji.haas_java_client.JobState;
 import cz.it4i.fiji.haas_java_client.SynchronizableFileType;
+import cz.it4i.fiji.haas_spim_benchmark.core.BenchmarkJobManager;
 import net.imagej.updater.util.Progress;
 
 public class RunBenchmark {