diff --git a/.gitignore b/.gitignore
index b2f15ce895696fd311b35bd9ebb831c094d75ac0..57f16fb67c1b1589981416b323d7a9debc728665 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,11 +1,41 @@
-.idea/
-.settings/
-build/
+/build*
+/workspace
+setting.xml
+release/
 target/
-bin/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+icy.log
+
+### IntelliJ IDEA ###
+.idea/
+*.iws
 *.iml
-*.jar
+*.ipr
+
+### Eclipse ###
+.apt_generated
 .classpath
+.factorypath
 .project
-export.jardesc
-**/.DS_Store
\ No newline at end of file
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+**/.DS_Store
+Icon?
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 158ce2ea68083dcc06324b44a234691d3bfc5e01..8475dd069e515a3ef4f2f161c82075d2b8220b0c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,13 +7,11 @@
     <parent>
         <groupId>org.bioimageanalysis.icy</groupId>
         <artifactId>pom-icy</artifactId>
-        <version>2.2.0</version>
+        <version>3.0.0-a.1</version>
     </parent>
 
     <artifactId>label-extractor</artifactId>
-    <version>2.0.0</version>
-
-    <packaging>jar</packaging>
+    <version>2.0.0-a.1</version>
 
     <name>Label extractor</name>
     <description>
@@ -21,6 +19,10 @@
     </description>
 
     <dependencies>
+        <dependency>
+            <groupId>org.bioimageanalysis.icy</groupId>
+            <artifactId>kernel-extensions</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.bioimageanalysis.icy</groupId>
             <artifactId>ezplug</artifactId>
@@ -34,7 +36,7 @@
     <repositories>
         <repository>
             <id>icy</id>
-            <url>https://icy-nexus.pasteur.fr/repository/Icy/</url>
+            <url>https://nexus-icy.pasteur.cloud/repository/icy/</url>
         </repository>
     </repositories>
 </project>
\ No newline at end of file
diff --git a/src/main/java/plugins/adufour/roi/LabelExtractor.java b/src/main/java/plugins/adufour/roi/LabelExtractor.java
index 4b8ad5c6ce4c94701097811bf4cbabcd395ace4d..f6cda0082962a865f8a9a205cd7f97577d215dac 100644
--- a/src/main/java/plugins/adufour/roi/LabelExtractor.java
+++ b/src/main/java/plugins/adufour/roi/LabelExtractor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010-2023. Institut Pasteur.
+ * Copyright (c) 2010-2024. Institut Pasteur.
  *
  * This file is part of Icy.
  * Icy is free software: you can redistribute it and/or modify
@@ -18,17 +18,19 @@
 
 package plugins.adufour.roi;
 
-import icy.image.IcyBufferedImage;
-import icy.roi.ROI;
-import icy.sequence.Sequence;
-import icy.type.DataType;
-import icy.type.collection.array.Array1DUtil;
+import org.bioimageanalysis.extension.kernel.roi.roi2d.ROI2DArea;
+import org.bioimageanalysis.extension.kernel.roi.roi3d.ROI3DArea;
+import org.bioimageanalysis.icy.common.collection.array.Array1DUtil;
+import org.bioimageanalysis.icy.common.type.DataType;
+import org.bioimageanalysis.icy.extension.plugin.annotation_.IcyPluginIcon;
+import org.bioimageanalysis.icy.extension.plugin.annotation_.IcyPluginName;
+import org.bioimageanalysis.icy.model.image.IcyBufferedImage;
+import org.bioimageanalysis.icy.model.roi.ROI;
+import org.bioimageanalysis.icy.model.sequence.Sequence;
 import plugins.adufour.blocks.lang.Block;
 import plugins.adufour.blocks.util.VarList;
 import plugins.adufour.ezplug.*;
 import plugins.adufour.vars.lang.VarROIArray;
-import plugins.kernel.roi.roi2d.ROI2DArea;
-import plugins.kernel.roi.roi3d.ROI3DArea;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -42,6 +44,8 @@ import java.util.Map;
  *
  * @author Alexandre Dufour
  */
+@IcyPluginName("Label Extractor")
+@IcyPluginIcon(path = "/label-extractor.png")
 public class LabelExtractor extends EzPlug implements Block, EzStoppable {
     EzVarSequence inSeq = new EzVarSequence("Labeled sequence");
 
@@ -231,7 +235,7 @@ public class LabelExtractor extends EzPlug implements Block, EzStoppable {
         final int slice = width * height;
         final int depth = sequence.getSizeZ();
         final boolean is3D = depth > 1;
-        final DataType dataType = sequence.getDataType_();
+        final DataType dataType = sequence.getDataType();
 
         final Map<Integer, ConnectedComponent> ccs = new HashMap<>();
         final Map<Integer, ROI> roiMap = new HashMap<>();
diff --git a/src/main/resources/label-extractor.png b/src/main/resources/label-extractor.png
new file mode 100644
index 0000000000000000000000000000000000000000..d171741d0b9a24535c02f56e8cdbcd6b1411bff0
Binary files /dev/null and b/src/main/resources/label-extractor.png differ