diff --git a/.classpath b/.classpath
index 125c03c7a35fce61a6fb84c850179faf311e78d0..80086e67c19405fe7b7eca1e50054fd3fa07924e 100644
--- a/.classpath
+++ b/.classpath
@@ -5,6 +5,7 @@
 	<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="USER_HOME/SDKs/Java/jdk1.8.0_251/lib/tools.jar"/>
+	<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"/>
@@ -36,9 +37,9 @@
 	<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-protocols:3.0.9"/>
 	<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="con" path="org.eclipse.jdt.USER_LIBRARY/Maven: org.bioimageanalysis.icy:icy-ezplug:3.15.13"/>
 	<classpathentry kind="output" path="target/classes"/>
 </classpath>
diff --git a/.gitignore b/.gitignore
index 4d6d26eb5c996073a0b63007cf16faee399b26cd..299e39ac618542a86dda8dd4615047b4d795328b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,5 @@
 build/
 target/
 *.iml
-*.eml
 .classpath
 .project
\ No newline at end of file
diff --git a/src/main/java/plugins/stef/micromanager/block/capture/MicroscopeSnapChannels.java b/src/main/java/plugins/stef/micromanager/block/capture/MicroscopeSnapChannels.java
index 2a39c964c5c7cc8df8a2ea57ab51407925cfec58..e0f6b298f8cc853cb5a490b9c9d13668cb6aeedd 100644
--- a/src/main/java/plugins/stef/micromanager/block/capture/MicroscopeSnapChannels.java
+++ b/src/main/java/plugins/stef/micromanager/block/capture/MicroscopeSnapChannels.java
@@ -1,23 +1,21 @@
 package plugins.stef.micromanager.block.capture;
 
-import icy.util.StringUtil;
-
 import java.util.ArrayList;
 import java.util.List;
 
-import mmcorej.TaggedImage;
-
 import org.json.JSONObject;
 import org.micromanager.utils.ChannelSpec;
 import org.micromanager.utils.MDUtils;
 
+import icy.util.StringUtil;
+import mmcorej.TaggedImage;
 import plugins.adufour.blocks.util.VarList;
 import plugins.adufour.vars.lang.VarArray;
 import plugins.adufour.vars.lang.VarObject;
 import plugins.adufour.vars.util.VarException;
 import plugins.stef.micromanager.block.AbstractMicroscopeBlock;
-import plugins.stef.micromanager.block.lang.EzVarMMGroup;
 import plugins.stef.micromanager.block.lang.VarChannels;
+import plugins.stef.micromanager.block.lang.VarMMGroup;
 import plugins.tprovoost.Microscopy.MicroManager.MicroManager;
 import plugins.tprovoost.Microscopy.MicroManager.tools.StageMover;
 
@@ -30,7 +28,7 @@ import plugins.tprovoost.Microscopy.MicroManager.tools.StageMover;
 public class MicroscopeSnapChannels extends AbstractMicroscopeBlock
 {
     VarObject trigger;
-    EzVarMMGroup group;
+    VarMMGroup group;
     VarChannels channels;
     VarArray<TaggedImage> out;
 
@@ -39,7 +37,7 @@ public class MicroscopeSnapChannels extends AbstractMicroscopeBlock
         super();
 
         trigger = new VarObject("Trigger", null);
-        group = new EzVarMMGroup();
+        group = new VarMMGroup();
         channels = new VarChannels(group);
         out = new VarArray<TaggedImage>("Tagged image(s)", TaggedImage[].class, new TaggedImage[0]);
     }
@@ -61,7 +59,7 @@ public class MicroscopeSnapChannels extends AbstractMicroscopeBlock
         }
         catch (Exception e)
         {
-            throw new VarException(group.getVariable(), "Group value is not valid.");
+            throw new VarException(group, "Group value is not valid.");
         }
 
         final List<TaggedImage> result = new ArrayList<TaggedImage>();
@@ -126,7 +124,7 @@ public class MicroscopeSnapChannels extends AbstractMicroscopeBlock
     public void declareInput(VarList inputMap)
     {
         inputMap.add("trigger", trigger);
-        inputMap.add("group", group.getVariable());
+        inputMap.add("group", group);
         inputMap.add("channels", channels);
     }
 
diff --git a/src/main/java/plugins/stef/micromanager/block/lang/VarChannels.java b/src/main/java/plugins/stef/micromanager/block/lang/VarChannels.java
index b95d3e105dda97140c0e9b2aa903436165a140cd..ee0aca09eb0ce813604d3ea008cba4597982b0c0 100644
--- a/src/main/java/plugins/stef/micromanager/block/lang/VarChannels.java
+++ b/src/main/java/plugins/stef/micromanager/block/lang/VarChannels.java
@@ -1,9 +1,8 @@
 package plugins.stef.micromanager.block.lang;
 
-import icy.type.collection.CollectionUtil;
-
 import org.micromanager.utils.ChannelSpec;
 
+import icy.type.collection.CollectionUtil;
 import plugins.adufour.vars.gui.VarEditor;
 import plugins.adufour.vars.lang.Var;
 import plugins.adufour.vars.lang.VarArray;
@@ -16,7 +15,7 @@ public class VarChannels extends VarArray<ChannelSpec>
 {
     VarChannelsEditor editor;
 
-    public VarChannels(String name, EzVarMMGroup groupVar)
+    public VarChannels(String name, VarMMGroup groupVar)
     {
         super(name, ChannelSpec[].class, null);
 
@@ -26,7 +25,7 @@ public class VarChannels extends VarArray<ChannelSpec>
 
         setGroup(groupVar.getValue());
 
-        groupVar.getVariable().addListener(new VarListener<String>()
+        groupVar.addListener(new VarListener<String>()
         {
             @Override
             public void valueChanged(Var<String> source, String oldValue, String newValue)
@@ -43,7 +42,7 @@ public class VarChannels extends VarArray<ChannelSpec>
         });
     }
 
-    public VarChannels(EzVarMMGroup groupVar)
+    public VarChannels(VarMMGroup groupVar)
     {
         this("Channels", groupVar);
     }
diff --git a/src/main/java/plugins/stef/micromanager/block/setting/MicroscopeChannels.java b/src/main/java/plugins/stef/micromanager/block/setting/MicroscopeChannels.java
index c829b81a689de0b10c79ade9822b849012600eed..6f51e6893b6ac5dc32a84884ff0589e27c0ad5b2 100644
--- a/src/main/java/plugins/stef/micromanager/block/setting/MicroscopeChannels.java
+++ b/src/main/java/plugins/stef/micromanager/block/setting/MicroscopeChannels.java
@@ -3,8 +3,8 @@ package plugins.stef.micromanager.block.setting;
 import plugins.adufour.blocks.tools.input.InputBlock;
 import plugins.adufour.blocks.util.VarList;
 import plugins.stef.micromanager.block.AbstractMicroscopeBlock;
-import plugins.stef.micromanager.block.lang.EzVarMMGroup;
 import plugins.stef.micromanager.block.lang.VarChannels;
+import plugins.stef.micromanager.block.lang.VarMMGroup;
 
 /**
  * Define a list of channel (Micro-Manager)
@@ -14,12 +14,12 @@ import plugins.stef.micromanager.block.lang.VarChannels;
  */
 public class MicroscopeChannels extends AbstractMicroscopeBlock implements InputBlock
 {
-    EzVarMMGroup group;
+    VarMMGroup group;
     VarChannels channels;
 
     public MicroscopeChannels()
     {
-        group = new EzVarMMGroup();
+        group = new VarMMGroup();
         channels = new VarChannels(group);
     }
 
@@ -33,7 +33,7 @@ public class MicroscopeChannels extends AbstractMicroscopeBlock implements Input
     public void declareInput(VarList inputMap)
     {
         if (group != null)
-            inputMap.add("groups", group.getVariable());
+            inputMap.add("groups", group);
         if (channels != null)
             inputMap.add("channels", channels);
     }