diff --git a/.classpath b/.classpath
index acfe8ceed36831c77820f869a70dd44f7edb206c..125c03c7a35fce61a6fb84c850179faf311e78d0 100644
--- a/.classpath
+++ b/.classpath
@@ -1,13 +1,44 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry excluding="plugins/stef/micromanager/block/lang/VarChannels.java|plugins/stef/micromanager/block/lang/VarChannelsEditor.java|plugins/stef/micromanager/block/capture/MicroscopeSnapChannels.java|plugins/stef/micromanager/block/setting/MicroscopeChannels.java" kind="src" path="src"/>
+	<classpathentry kind="src" path="src/main/java"/>
+	<classpathentry kind="src" path="src/main/resources"/>
+	<classpathentry kind="src" path="src/test/java"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk6"/>
-	<classpathentry kind="var" path="ICY_HOME/icy.jar"/>
-	<classpathentry kind="var" path="MM_HOME/plugins/Micro-Manager/MMCoreJ.jar"/>
-	<classpathentry kind="var" path="MM_HOME/plugins/Micro-Manager/MMJ_.jar" sourcepath="/GIT/micro-manager"/>
-	<classpathentry kind="var" path="ICY_PLUGINS/adufour/blocks/Blocks.jar"/>
-	<classpathentry kind="var" path="ICY_PLUGINS/adufour/ezplug/EzPlug.jar"/>
-	<classpathentry kind="var" path="ICY_PLUGINS/tprovoost/Microscopy/MicroManagerForIcy/MicromanagerPlugin.jar"/>
-	<classpathentry kind="var" path="ICY_PLUGINS/adufour/protocols/Protocols.jar"/>
-	<classpathentry kind="output" path="bin"/>
+	<classpathentry kind="var" path="USER_HOME/SDKs/Java/jdk1.8.0_251/lib/tools.jar"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: org.bioimageanalysis.icy:icy-kernel:2.1.0"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: net.sf.ehcache:ehcache:2.10.6"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: org.slf4j:slf4j-api:1.7.25"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: org.bioimageanalysis.icy:icy-bioformats:6.3.1"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: org.bioimageanalysis.icy:icy-insubstantial:7.3.7"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: org.bioimageanalysis.icy:icy-vtk:6.3.0.1"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: net.imagej:ij:1.52q"/>
+	<classpathentry kind="var" path="USER_HOME/SDKs/Java/jdk1.8.0_251/lib/tools.jar"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: javax.media:jai-core:1.1.3"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: javax.media:jai-codec:1.1.3"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: org.jogamp.jogl:jogl-all:2.1.5-01"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: org.jogamp.jogl:jogl-all-natives-linux-amd64:2.1.5"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: org.jogamp.jogl:jogl-all-natives-linux-i586:2.1.5"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: org.jogamp.jogl:jogl-all-natives-macosx-universal:2.1.5"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: org.jogamp.jogl:jogl-all-natives-windows-amd64:2.1.5"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: org.jogamp.jogl:jogl-all-natives-windows-i586:2.1.5"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: org.jogamp.gluegen:gluegen-rt:2.1.5-01"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: org.jogamp.gluegen:gluegen-rt-natives-linux-amd64:2.1.5"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: org.jogamp.gluegen:gluegen-rt-natives-linux-i586:2.1.5"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: org.jogamp.gluegen:gluegen-rt-natives-macosx-universal:2.1.5"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: org.jogamp.gluegen:gluegen-rt-natives-windows-amd64:2.1.5"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: org.jogamp.gluegen:gluegen-rt-natives-windows-i586:2.1.5"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: org.javassist:javassist:3.22.0-GA"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: net.sourceforge.jexcelapi:jxl:2.6.12"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: log4j:log4j:1.2.14"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: org.swinglabs.swingx:swingx-all:1.6.5-1"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: org.bioimageanalysis.icy:icy-micromanager:1.0.3"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: joda-time:joda-time:2.10.5"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: org.micromanager:MMCoreJ:1.4.22"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: org.micromanager:MMJ_:1.4.22"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: org.bioimageanalysis.icy:icy-blocks:1.0.1"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: org.bioimageanalysis.icy:icy-protocols:1.0.0"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: org.bioimageanalysis.icy:icy-javadocparser:1.0.0"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: com.nativelibs4java:ochafik-util:0.12"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: org.bioimageanalysis.icy:icy-ezplug:1.0.0"/>
+	<classpathentry kind="output" path="target/classes"/>
 </classpath>
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..a1e13e9f854f0aa854e8b23d441e21821ad1c21a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,7 @@
+.idea/
+target/
+build/
+*.iml
+*.eml
+*.classpath
+*.project
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1db85e64fc116e6ef1ccddc3efe65dd1716d788f
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>org.bioimageanalysis.icy</groupId>
+    <artifactId>icy-micromanager-block</artifactId>
+    <version>1.0.3</version>
+
+    <name>Micro-Manager Block</name>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <jdk.version>1.8</jdk.version>
+
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
+
+        <outputJar>${project.build.outputDirectory}/../plugin</outputJar>
+    </properties>
+
+    <build>
+        <finalName>${project.artifactId}</finalName>
+
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.8.1</version>
+                <configuration>
+                    <excludes>
+                        <exclude>**/plugins/stef/micromanager/block/capture/MicroscopeSnapChannels.java</exclude>
+                        <exclude>**/plugins/stef/micromanager/block/lang/VarChannels.java</exclude>
+                        <exclude>**/plugins/stef/micromanager/block/lang/VarChannelsEditor.java</exclude>
+                        <exclude>**/plugins/stef/micromanager/block/setting/MicroscopeChannels.java</exclude>
+                    </excludes>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <version>3.1.2</version>
+                <configuration>
+                    <outputDirectory>${outputJar}</outputDirectory>
+                    <archive>
+                        <manifest>
+                            <addClasspath>true</addClasspath>
+                            <mainClass>plugins.stef.micromanager.block.MicroscopyBlocks</mainClass>
+                        </manifest>
+                    </archive>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.bioimageanalysis.icy</groupId>
+            <artifactId>icy-kernel</artifactId>
+            <version>2.1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.bioimageanalysis.icy</groupId>
+            <artifactId>icy-micromanager</artifactId>
+            <version>1.0.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.bioimageanalysis.icy</groupId>
+            <artifactId>icy-blocks</artifactId>
+            <version>1.0.1</version>
+        </dependency>
+    </dependencies>
+
+    <repositories>
+        <repository>
+            <id>icy</id>
+            <url>https://icy-nexus.pasteur.fr/repository/Icy/</url>
+        </repository>
+    </repositories>
+
+    <distributionManagement>
+        <snapshotRepository>
+            <id>icy-dev</id>
+            <name>icy-dev</name>
+            <url>https://icy-nexus-dev.pasteur.cloud/repository/icy-core/</url>
+        </snapshotRepository>
+        <repository>
+            <id>icy-prod</id>
+            <name>icy-prod</name>
+            <url>https://icy-nexus.pasteur.fr/repository/icy-core/</url>
+        </repository>
+    </distributionManagement>
+</project>
\ No newline at end of file
diff --git a/src/plugins/stef/micromanager/block/AbstractMicroscopeBlock.java b/src/main/java/plugins/stef/micromanager/block/AbstractMicroscopeBlock.java
similarity index 100%
rename from src/plugins/stef/micromanager/block/AbstractMicroscopeBlock.java
rename to src/main/java/plugins/stef/micromanager/block/AbstractMicroscopeBlock.java
diff --git a/src/plugins/stef/micromanager/block/MicroscopyBlocks.java b/src/main/java/plugins/stef/micromanager/block/MicroscopyBlocks.java
similarity index 100%
rename from src/plugins/stef/micromanager/block/MicroscopyBlocks.java
rename to src/main/java/plugins/stef/micromanager/block/MicroscopyBlocks.java
diff --git a/src/plugins/stef/micromanager/block/capture/MicroscopeGetMetadata.java b/src/main/java/plugins/stef/micromanager/block/capture/MicroscopeGetMetadata.java
similarity index 100%
rename from src/plugins/stef/micromanager/block/capture/MicroscopeGetMetadata.java
rename to src/main/java/plugins/stef/micromanager/block/capture/MicroscopeGetMetadata.java
diff --git a/src/plugins/stef/micromanager/block/capture/MicroscopeSetTaggedImage.java b/src/main/java/plugins/stef/micromanager/block/capture/MicroscopeSetTaggedImage.java
similarity index 100%
rename from src/plugins/stef/micromanager/block/capture/MicroscopeSetTaggedImage.java
rename to src/main/java/plugins/stef/micromanager/block/capture/MicroscopeSetTaggedImage.java
diff --git a/src/plugins/stef/micromanager/block/capture/MicroscopeSnapChannels.java b/src/main/java/plugins/stef/micromanager/block/capture/MicroscopeSnapChannels.java
similarity index 98%
rename from src/plugins/stef/micromanager/block/capture/MicroscopeSnapChannels.java
rename to src/main/java/plugins/stef/micromanager/block/capture/MicroscopeSnapChannels.java
index 6c31aa4b872e50cb868a11529ecd72e7fbaa7753..2a39c964c5c7cc8df8a2ea57ab51407925cfec58 100644
--- a/src/plugins/stef/micromanager/block/capture/MicroscopeSnapChannels.java
+++ b/src/main/java/plugins/stef/micromanager/block/capture/MicroscopeSnapChannels.java
@@ -23,7 +23,8 @@ import plugins.tprovoost.Microscopy.MicroManager.tools.StageMover;
 
 /**
  * Snap multi channel image (Micro-Manager)
- * 
+ * Class in standby until an EzPlug fix
+ *
  * @author Stephane
  */
 public class MicroscopeSnapChannels extends AbstractMicroscopeBlock
diff --git a/src/plugins/stef/micromanager/block/capture/MicroscopeSnapImage.java b/src/main/java/plugins/stef/micromanager/block/capture/MicroscopeSnapImage.java
similarity index 100%
rename from src/plugins/stef/micromanager/block/capture/MicroscopeSnapImage.java
rename to src/main/java/plugins/stef/micromanager/block/capture/MicroscopeSnapImage.java
diff --git a/src/plugins/stef/micromanager/block/lang/VarChannels.java b/src/main/java/plugins/stef/micromanager/block/lang/VarChannels.java
similarity index 98%
rename from src/plugins/stef/micromanager/block/lang/VarChannels.java
rename to src/main/java/plugins/stef/micromanager/block/lang/VarChannels.java
index df454e529062b2c3bf0650c1ac0fa2ca25794754..b95d3e105dda97140c0e9b2aa903436165a140cd 100644
--- a/src/plugins/stef/micromanager/block/lang/VarChannels.java
+++ b/src/main/java/plugins/stef/micromanager/block/lang/VarChannels.java
@@ -9,6 +9,9 @@ import plugins.adufour.vars.lang.Var;
 import plugins.adufour.vars.lang.VarArray;
 import plugins.adufour.vars.util.VarListener;
 
+/**
+ * Class in standby until an EzPlug fix
+ */
 public class VarChannels extends VarArray<ChannelSpec>
 {
     VarChannelsEditor editor;
diff --git a/src/plugins/stef/micromanager/block/lang/VarChannelsEditor.java b/src/main/java/plugins/stef/micromanager/block/lang/VarChannelsEditor.java
similarity index 99%
rename from src/plugins/stef/micromanager/block/lang/VarChannelsEditor.java
rename to src/main/java/plugins/stef/micromanager/block/lang/VarChannelsEditor.java
index ef3e7e4c0f75188a94c6d9cd7c3ca93865dd07d5..7137301767e26dbde87efa55fc06c95f4508abc5 100644
--- a/src/plugins/stef/micromanager/block/lang/VarChannelsEditor.java
+++ b/src/main/java/plugins/stef/micromanager/block/lang/VarChannelsEditor.java
@@ -19,6 +19,9 @@ import plugins.adufour.vars.gui.VarEditor;
 import plugins.adufour.vars.lang.Var;
 import plugins.tprovoost.Microscopy.MicroManager.gui.ChannelTable;
 
+/**
+ * Class in standby until an EzPlug fix
+ */
 public class VarChannelsEditor extends VarEditor<ChannelSpec[]>
 {
     protected JPanel mainPanel;
diff --git a/src/plugins/stef/micromanager/block/lang/VarMMGroup.java b/src/main/java/plugins/stef/micromanager/block/lang/VarMMGroup.java
similarity index 100%
rename from src/plugins/stef/micromanager/block/lang/VarMMGroup.java
rename to src/main/java/plugins/stef/micromanager/block/lang/VarMMGroup.java
diff --git a/src/plugins/stef/micromanager/block/lang/VarMMPreset.java b/src/main/java/plugins/stef/micromanager/block/lang/VarMMPreset.java
similarity index 100%
rename from src/plugins/stef/micromanager/block/lang/VarMMPreset.java
rename to src/main/java/plugins/stef/micromanager/block/lang/VarMMPreset.java
diff --git a/src/plugins/stef/micromanager/block/lang/VarMultiStagePosition.java b/src/main/java/plugins/stef/micromanager/block/lang/VarMultiStagePosition.java
similarity index 100%
rename from src/plugins/stef/micromanager/block/lang/VarMultiStagePosition.java
rename to src/main/java/plugins/stef/micromanager/block/lang/VarMultiStagePosition.java
diff --git a/src/plugins/stef/micromanager/block/setting/MicroscopeChannels.java b/src/main/java/plugins/stef/micromanager/block/setting/MicroscopeChannels.java
similarity index 96%
rename from src/plugins/stef/micromanager/block/setting/MicroscopeChannels.java
rename to src/main/java/plugins/stef/micromanager/block/setting/MicroscopeChannels.java
index 042d8fb5140d63301dc2cd6b7703d0595b1f3fa3..c829b81a689de0b10c79ade9822b849012600eed 100644
--- a/src/plugins/stef/micromanager/block/setting/MicroscopeChannels.java
+++ b/src/main/java/plugins/stef/micromanager/block/setting/MicroscopeChannels.java
@@ -8,6 +8,7 @@ import plugins.stef.micromanager.block.lang.VarChannels;
 
 /**
  * Define a list of channel (Micro-Manager)
+ * Class in standby until an EzPlug fix
  * 
  * @author Stephane Dallongeville
  */
diff --git a/src/plugins/stef/micromanager/block/setting/MicroscopeGetBinning.java b/src/main/java/plugins/stef/micromanager/block/setting/MicroscopeGetBinning.java
similarity index 100%
rename from src/plugins/stef/micromanager/block/setting/MicroscopeGetBinning.java
rename to src/main/java/plugins/stef/micromanager/block/setting/MicroscopeGetBinning.java
diff --git a/src/plugins/stef/micromanager/block/setting/MicroscopeGetExposure.java b/src/main/java/plugins/stef/micromanager/block/setting/MicroscopeGetExposure.java
similarity index 100%
rename from src/plugins/stef/micromanager/block/setting/MicroscopeGetExposure.java
rename to src/main/java/plugins/stef/micromanager/block/setting/MicroscopeGetExposure.java
diff --git a/src/plugins/stef/micromanager/block/setting/MicroscopePositions.java b/src/main/java/plugins/stef/micromanager/block/setting/MicroscopePositions.java
similarity index 100%
rename from src/plugins/stef/micromanager/block/setting/MicroscopePositions.java
rename to src/main/java/plugins/stef/micromanager/block/setting/MicroscopePositions.java
diff --git a/src/plugins/stef/micromanager/block/setting/MicroscopeSetBinning.java b/src/main/java/plugins/stef/micromanager/block/setting/MicroscopeSetBinning.java
similarity index 100%
rename from src/plugins/stef/micromanager/block/setting/MicroscopeSetBinning.java
rename to src/main/java/plugins/stef/micromanager/block/setting/MicroscopeSetBinning.java
diff --git a/src/plugins/stef/micromanager/block/setting/MicroscopeSetConfig.java b/src/main/java/plugins/stef/micromanager/block/setting/MicroscopeSetConfig.java
similarity index 100%
rename from src/plugins/stef/micromanager/block/setting/MicroscopeSetConfig.java
rename to src/main/java/plugins/stef/micromanager/block/setting/MicroscopeSetConfig.java
diff --git a/src/plugins/stef/micromanager/block/setting/MicroscopeSetExposure.java b/src/main/java/plugins/stef/micromanager/block/setting/MicroscopeSetExposure.java
similarity index 100%
rename from src/plugins/stef/micromanager/block/setting/MicroscopeSetExposure.java
rename to src/main/java/plugins/stef/micromanager/block/setting/MicroscopeSetExposure.java
diff --git a/src/plugins/stef/micromanager/block/setting/MicroscopeSetShutter.java b/src/main/java/plugins/stef/micromanager/block/setting/MicroscopeSetShutter.java
similarity index 100%
rename from src/plugins/stef/micromanager/block/setting/MicroscopeSetShutter.java
rename to src/main/java/plugins/stef/micromanager/block/setting/MicroscopeSetShutter.java
diff --git a/src/plugins/stef/micromanager/block/stage/MicroscopeGetStageXYZ.java b/src/main/java/plugins/stef/micromanager/block/stage/MicroscopeGetStageXYZ.java
similarity index 100%
rename from src/plugins/stef/micromanager/block/stage/MicroscopeGetStageXYZ.java
rename to src/main/java/plugins/stef/micromanager/block/stage/MicroscopeGetStageXYZ.java
diff --git a/src/plugins/stef/micromanager/block/stage/MicroscopeSetStagePosition.java b/src/main/java/plugins/stef/micromanager/block/stage/MicroscopeSetStagePosition.java
similarity index 100%
rename from src/plugins/stef/micromanager/block/stage/MicroscopeSetStagePosition.java
rename to src/main/java/plugins/stef/micromanager/block/stage/MicroscopeSetStagePosition.java
diff --git a/src/plugins/stef/micromanager/block/stage/MicroscopeSetStageXY.java b/src/main/java/plugins/stef/micromanager/block/stage/MicroscopeSetStageXY.java
similarity index 100%
rename from src/plugins/stef/micromanager/block/stage/MicroscopeSetStageXY.java
rename to src/main/java/plugins/stef/micromanager/block/stage/MicroscopeSetStageXY.java
diff --git a/src/plugins/stef/micromanager/block/stage/MicroscopeSetStageZ.java b/src/main/java/plugins/stef/micromanager/block/stage/MicroscopeSetStageZ.java
similarity index 100%
rename from src/plugins/stef/micromanager/block/stage/MicroscopeSetStageZ.java
rename to src/main/java/plugins/stef/micromanager/block/stage/MicroscopeSetStageZ.java
diff --git a/src/plugins/stef/micromanager/block/tool/TaggedImageToIcyImage.java b/src/main/java/plugins/stef/micromanager/block/tool/TaggedImageToIcyImage.java
similarity index 100%
rename from src/plugins/stef/micromanager/block/tool/TaggedImageToIcyImage.java
rename to src/main/java/plugins/stef/micromanager/block/tool/TaggedImageToIcyImage.java