diff --git a/bindings.xjb b/bindings.xjb
index 089dc6c0..4fa6618f 100644
--- a/bindings.xjb
+++ b/bindings.xjb
@@ -5,9 +5,9 @@
-
-
-
+
+
+
@@ -60,7 +60,7 @@
-
+
diff --git a/pom.xml b/pom.xml
index 9f13eec6..e9fbd9a8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -637,7 +637,6 @@
- org.entur.netex.java.model
${git.commit.id}
${git.commit.time}
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
new file mode 100644
index 00000000..1f9a59c2
--- /dev/null
+++ b/src/main/java/module-info.java
@@ -0,0 +1,19 @@
+module org.entur.netex.java.model {
+ requires transitive jakarta.xml.bind;
+ requires transitive java.xml;
+ requires transitive org.apache.commons.lang3;
+ requires io.github.threetenjaxb.core;
+ requires org.slf4j;
+
+ exports org.rutebanken.netex;
+ exports org.rutebanken.netex.client;
+ exports org.rutebanken.netex.validation;
+ exports org.rutebanken.netex.model;
+ exports org.rutebanken.netex.util;
+ exports net.opengis.gml._3;
+ exports uk.org.siri.siri;
+
+ opens org.rutebanken.netex.model to jakarta.xml.bind, org.glassfish.jaxb.runtime, org.apache.commons.lang3;
+ opens net.opengis.gml._3 to jakarta.xml.bind, org.glassfish.jaxb.runtime, org.apache.commons.lang3;
+ opens uk.org.siri.siri to jakarta.xml.bind, org.glassfish.jaxb.runtime, org.apache.commons.lang3;
+}
diff --git a/src/main/java/org/rutebanken/util/LocalDateTimeISO8601XmlAdapter.java b/src/main/java/org/rutebanken/netex/util/LocalDateTimeISO8601XmlAdapter.java
similarity index 97%
rename from src/main/java/org/rutebanken/util/LocalDateTimeISO8601XmlAdapter.java
rename to src/main/java/org/rutebanken/netex/util/LocalDateTimeISO8601XmlAdapter.java
index 54894b7d..6f78c2d2 100644
--- a/src/main/java/org/rutebanken/util/LocalDateTimeISO8601XmlAdapter.java
+++ b/src/main/java/org/rutebanken/netex/util/LocalDateTimeISO8601XmlAdapter.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.util;
+package org.rutebanken.netex.util;
import jakarta.xml.bind.annotation.adapters.XmlAdapter;
import java.time.LocalDateTime;
diff --git a/src/main/java/org/rutebanken/util/LocalDateXmlAdapter.java b/src/main/java/org/rutebanken/netex/util/LocalDateXmlAdapter.java
similarity index 98%
rename from src/main/java/org/rutebanken/util/LocalDateXmlAdapter.java
rename to src/main/java/org/rutebanken/netex/util/LocalDateXmlAdapter.java
index 237b4640..5c0e25e8 100644
--- a/src/main/java/org/rutebanken/util/LocalDateXmlAdapter.java
+++ b/src/main/java/org/rutebanken/netex/util/LocalDateXmlAdapter.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.util;
+package org.rutebanken.netex.util;
import jakarta.xml.bind.annotation.adapters.XmlAdapter;
import java.time.LocalDateTime;
diff --git a/src/main/java/org/rutebanken/util/LocalTimeISO8601XmlAdapter.java b/src/main/java/org/rutebanken/netex/util/LocalTimeISO8601XmlAdapter.java
similarity index 98%
rename from src/main/java/org/rutebanken/util/LocalTimeISO8601XmlAdapter.java
rename to src/main/java/org/rutebanken/netex/util/LocalTimeISO8601XmlAdapter.java
index bdde2eb4..d4eb3e2d 100644
--- a/src/main/java/org/rutebanken/util/LocalTimeISO8601XmlAdapter.java
+++ b/src/main/java/org/rutebanken/netex/util/LocalTimeISO8601XmlAdapter.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.util;
+package org.rutebanken.netex.util;
import jakarta.xml.bind.annotation.adapters.XmlAdapter;
import java.time.LocalTime;
diff --git a/src/main/java/org/rutebanken/util/VersionXmlAdapter.java b/src/main/java/org/rutebanken/netex/util/VersionXmlAdapter.java
similarity index 97%
rename from src/main/java/org/rutebanken/util/VersionXmlAdapter.java
rename to src/main/java/org/rutebanken/netex/util/VersionXmlAdapter.java
index e8cedb60..34231a3b 100644
--- a/src/main/java/org/rutebanken/util/VersionXmlAdapter.java
+++ b/src/main/java/org/rutebanken/netex/util/VersionXmlAdapter.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.util;
+package org.rutebanken.netex.util;
import jakarta.xml.bind.annotation.adapters.XmlAdapter;
diff --git a/src/test/java/org/rutebanken/util/LocalDateTimeISO8601XmlAdapterTest.java b/src/test/java/org/rutebanken/netex/util/LocalDateTimeISO8601XmlAdapterTest.java
similarity index 98%
rename from src/test/java/org/rutebanken/util/LocalDateTimeISO8601XmlAdapterTest.java
rename to src/test/java/org/rutebanken/netex/util/LocalDateTimeISO8601XmlAdapterTest.java
index 3abd18a7..239e2671 100644
--- a/src/test/java/org/rutebanken/util/LocalDateTimeISO8601XmlAdapterTest.java
+++ b/src/test/java/org/rutebanken/netex/util/LocalDateTimeISO8601XmlAdapterTest.java
@@ -1,4 +1,4 @@
-package org.rutebanken.util;
+package org.rutebanken.netex.util;
import org.junit.jupiter.api.Test;
diff --git a/src/test/java/org/rutebanken/util/LocalTimeISO8601XmlAdapterTest.java b/src/test/java/org/rutebanken/netex/util/LocalTimeISO8601XmlAdapterTest.java
similarity index 99%
rename from src/test/java/org/rutebanken/util/LocalTimeISO8601XmlAdapterTest.java
rename to src/test/java/org/rutebanken/netex/util/LocalTimeISO8601XmlAdapterTest.java
index f32e1af3..b2bc0c13 100644
--- a/src/test/java/org/rutebanken/util/LocalTimeISO8601XmlAdapterTest.java
+++ b/src/test/java/org/rutebanken/netex/util/LocalTimeISO8601XmlAdapterTest.java
@@ -1,4 +1,4 @@
-package org.rutebanken.util;
+package org.rutebanken.netex.util;
import java.util.List;
import java.util.stream.Collectors;
diff --git a/src/test/java/org/rutebanken/util/VersionXmlAdapterTest.java b/src/test/java/org/rutebanken/netex/util/VersionXmlAdapterTest.java
similarity index 98%
rename from src/test/java/org/rutebanken/util/VersionXmlAdapterTest.java
rename to src/test/java/org/rutebanken/netex/util/VersionXmlAdapterTest.java
index 825c5cf1..b2eb8527 100644
--- a/src/test/java/org/rutebanken/util/VersionXmlAdapterTest.java
+++ b/src/test/java/org/rutebanken/netex/util/VersionXmlAdapterTest.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.util;
+package org.rutebanken.netex.util;
import org.junit.jupiter.api.Test;