diff --git a/java-se-cdi/pom.xml b/java-se-cdi/pom.xml
index aef0807..e46ffb7 100644
--- a/java-se-cdi/pom.xml
+++ b/java-se-cdi/pom.xml
@@ -54,6 +54,12 @@
+
+ org.fuin.cqrs4j.example
+ cqrs4j-example-shared
+ 0.1.0-SNAPSHOT
+
+
org.fuin
ddd-4-java
diff --git a/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/cmd/app/CmdExampleApp.java b/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/cmd/app/CmdExampleApp.java
index d72ef91..9268acc 100644
--- a/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/cmd/app/CmdExampleApp.java
+++ b/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/cmd/app/CmdExampleApp.java
@@ -23,8 +23,8 @@ import javax.inject.Inject;
import org.fuin.cqrs4j.example.javasecdi.cmd.domain.Person;
import org.fuin.cqrs4j.example.javasecdi.cmd.domain.PersonRepository;
import org.fuin.cqrs4j.example.javasecdi.cmd.domain.PersonRepositoryFactory;
-import org.fuin.cqrs4j.example.javasecdi.shared.domain.PersonId;
-import org.fuin.cqrs4j.example.javasecdi.shared.domain.PersonName;
+import org.fuin.cqrs4j.example.shared.PersonId;
+import org.fuin.cqrs4j.example.shared.PersonName;
import org.fuin.esc.api.EventStore;
import org.fuin.ext4logback.LogbackStandalone;
import org.fuin.ext4logback.NewLogConfigFileParams;
diff --git a/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/cmd/domain/DuplicatePersonNameException.java b/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/cmd/domain/DuplicatePersonNameException.java
index 49483a9..cf43bfb 100644
--- a/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/cmd/domain/DuplicatePersonNameException.java
+++ b/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/cmd/domain/DuplicatePersonNameException.java
@@ -2,8 +2,8 @@ package org.fuin.cqrs4j.example.javasecdi.cmd.domain;
import javax.validation.constraints.NotNull;
-import org.fuin.cqrs4j.example.javasecdi.shared.domain.PersonId;
-import org.fuin.cqrs4j.example.javasecdi.shared.domain.PersonName;
+import org.fuin.cqrs4j.example.shared.PersonId;
+import org.fuin.cqrs4j.example.shared.PersonName;
import org.fuin.objects4j.common.Contract;
/**
diff --git a/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/cmd/domain/Person.java b/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/cmd/domain/Person.java
index b4db80c..df096ec 100644
--- a/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/cmd/domain/Person.java
+++ b/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/cmd/domain/Person.java
@@ -4,12 +4,12 @@ import java.io.Serializable;
import javax.validation.constraints.NotNull;
+import org.fuin.cqrs4j.example.shared.PersonCreatedEvent;
+import org.fuin.cqrs4j.example.shared.PersonId;
+import org.fuin.cqrs4j.example.shared.PersonName;
import org.fuin.ddd4j.ddd.AbstractAggregateRoot;
import org.fuin.ddd4j.ddd.ApplyEvent;
import org.fuin.ddd4j.ddd.EntityType;
-import org.fuin.cqrs4j.example.javasecdi.shared.domain.PersonCreatedEvent;
-import org.fuin.cqrs4j.example.javasecdi.shared.domain.PersonId;
-import org.fuin.cqrs4j.example.javasecdi.shared.domain.PersonName;
import org.fuin.objects4j.common.Contract;
/**
diff --git a/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/cmd/domain/PersonRepository.java b/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/cmd/domain/PersonRepository.java
index 2e65fb0..76bbde3 100644
--- a/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/cmd/domain/PersonRepository.java
+++ b/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/cmd/domain/PersonRepository.java
@@ -3,9 +3,9 @@ package org.fuin.cqrs4j.example.javasecdi.cmd.domain;
import javax.annotation.concurrent.NotThreadSafe;
import javax.validation.constraints.NotNull;
+import org.fuin.cqrs4j.example.shared.PersonId;
import org.fuin.ddd4j.ddd.EntityType;
import org.fuin.ddd4j.esrepo.EventStoreRepository;
-import org.fuin.cqrs4j.example.javasecdi.shared.domain.PersonId;
import org.fuin.esc.api.EventStore;
/**
diff --git a/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/qry/domain/QryPerson.java b/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/qry/domain/QryPerson.java
index 8dd1cd6..bf577ae 100644
--- a/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/qry/domain/QryPerson.java
+++ b/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/qry/domain/QryPerson.java
@@ -10,8 +10,8 @@ import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
-import org.fuin.cqrs4j.example.javasecdi.shared.domain.PersonId;
-import org.fuin.cqrs4j.example.javasecdi.shared.domain.PersonName;
+import org.fuin.cqrs4j.example.shared.PersonId;
+import org.fuin.cqrs4j.example.shared.PersonName;
import org.fuin.objects4j.common.Contract;
/**
diff --git a/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/qry/handler/PersonCreatedEventHandler.java b/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/qry/handler/PersonCreatedEventHandler.java
index fbc9ec8..ea63750 100644
--- a/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/qry/handler/PersonCreatedEventHandler.java
+++ b/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/qry/handler/PersonCreatedEventHandler.java
@@ -5,11 +5,11 @@ import javax.inject.Inject;
import org.apache.deltaspike.jpa.api.transaction.Transactional;
import org.fuin.cqrs4j.EventHandler;
-import org.fuin.ddd4j.ddd.EventType;
import org.fuin.cqrs4j.example.javasecdi.qry.domain.QryPerson;
import org.fuin.cqrs4j.example.javasecdi.qry.domain.QryPersonRepository;
-import org.fuin.cqrs4j.example.javasecdi.shared.domain.PersonCreatedEvent;
-import org.fuin.cqrs4j.example.javasecdi.shared.domain.PersonId;
+import org.fuin.cqrs4j.example.shared.PersonCreatedEvent;
+import org.fuin.cqrs4j.example.shared.PersonId;
+import org.fuin.ddd4j.ddd.EventType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/shared/app/SharedEntityIdFactory.java b/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/shared/app/SharedEntityIdFactory.java
index a0a61ad..0cbe085 100644
--- a/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/shared/app/SharedEntityIdFactory.java
+++ b/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/shared/app/SharedEntityIdFactory.java
@@ -21,9 +21,9 @@ import java.util.HashMap;
import java.util.Map;
import java.util.function.Function;
+import org.fuin.cqrs4j.example.shared.PersonId;
import org.fuin.ddd4j.ddd.EntityId;
import org.fuin.ddd4j.ddd.EntityIdFactory;
-import org.fuin.cqrs4j.example.javasecdi.shared.domain.PersonId;
/**
* Factory that creates entity identifier instances based on the type.
diff --git a/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/shared/app/SharedUtils.java b/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/shared/app/SharedUtils.java
index 9a5e353..f76aa5c 100644
--- a/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/shared/app/SharedUtils.java
+++ b/java-se-cdi/src/main/java/org/fuin/cqrs4j/example/javasecdi/shared/app/SharedUtils.java
@@ -22,11 +22,11 @@ import java.nio.charset.Charset;
import javax.json.bind.adapter.JsonbAdapter;
import org.eclipse.yasson.FieldAccessStrategy;
+import org.fuin.cqrs4j.example.shared.PersonCreatedEvent;
+import org.fuin.cqrs4j.example.shared.PersonId;
+import org.fuin.cqrs4j.example.shared.PersonName;
import org.fuin.ddd4j.ddd.EntityIdPathConverter;
import org.fuin.ddd4j.ddd.EventIdConverter;
-import org.fuin.cqrs4j.example.javasecdi.shared.domain.PersonCreatedEvent;
-import org.fuin.cqrs4j.example.javasecdi.shared.domain.PersonId;
-import org.fuin.cqrs4j.example.javasecdi.shared.domain.PersonName;
import org.fuin.esc.spi.Base64Data;
import org.fuin.esc.spi.EscEvent;
import org.fuin.esc.spi.EscEvents;