diff --git a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java
index 79e64919825b2f876e0c3bf92dc6016a52787c15..91f3e4410b2d5ceefba5842354fabaaeb183e6f3 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java
@@ -1,10 +1,10 @@
 package at.tuwien.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.CreateAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.CreateAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.tuwien.service.AccessService;
 import at.tuwien.service.CacheService;
 import io.swagger.v3.oas.annotations.Operation;
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java
index c8bf60199d26577ca31d684345fd87dec17da362..bf6bbc48793d06c1f9411a8c9d49845f5984f935 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java
@@ -1,12 +1,12 @@
 package at.tuwien.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.internal.CreateDatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.internal.UpdateUserPasswordDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.internal.CreateDatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.internal.UpdateUserPasswordDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.tuwien.mapper.MetadataMapper;
 import at.tuwien.service.AccessService;
 import at.tuwien.service.CacheService;
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/RestEndpoint.java b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/RestEndpoint.java
index e67e3acb4350b690458756141d202b95f97f4b0d..a9edad96747a32c796ec0e3175d3bbab2c79b13f 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/RestEndpoint.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/RestEndpoint.java
@@ -1,6 +1,6 @@
 package at.tuwien.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDetailsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDetailsDto;
 import org.apache.spark.sql.Dataset;
 import org.apache.spark.sql.Row;
 import org.springframework.security.core.Authentication;
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/SubsetEndpoint.java b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/SubsetEndpoint.java
index 71323288684022104f2abcff51034d61c41499d7..fcc9d3cdecc3f1cebde3fc4e756acb79e8b70350 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/SubsetEndpoint.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/SubsetEndpoint.java
@@ -1,14 +1,14 @@
 package at.tuwien.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.ExportResourceDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryPersistDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.SubsetDto;
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.ExportResourceDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryPersistDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.SubsetDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.tuwien.gateway.MetadataServiceGateway;
 import at.tuwien.mapper.MariaDbMapper;
 import at.tuwien.service.CacheService;
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java
index cc290c44077897c66d5e9c0c5fdc2409c22eb464..e801ce2a45f4f025b86d6131f46073a3321a3e0c 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java
@@ -1,14 +1,14 @@
 package at.tuwien.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.ExportResourceDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.ImportDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.internal.TableCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.ExportResourceDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.ImportDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal.TableCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.tuwien.gateway.MetadataServiceGateway;
 import at.tuwien.mapper.MariaDbMapper;
 import at.tuwien.service.*;
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/UploadEndpoint.java b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/UploadEndpoint.java
index 810145343ca36e4143cb4a2e3cec674f611e7ced..41982ebc36d5a56b0fc6c8e07551b9846882c99c 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/UploadEndpoint.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/UploadEndpoint.java
@@ -1,9 +1,9 @@
 package at.tuwien.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.api.file.UploadResponseDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.file.UploadResponseDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.tuwien.service.StorageService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.Content;
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/ViewEndpoint.java b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/ViewEndpoint.java
index d7bb2ce11660ebc7cc489ce01c44a2be7a042697..245ca0ca26e0f835a183fef5d5a5bd16867cbc63 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/ViewEndpoint.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/ViewEndpoint.java
@@ -1,13 +1,13 @@
 package at.tuwien.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.ExportResourceDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.CreateViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableStatisticDto;
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.ExportResourceDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.CreateViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableStatisticDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.tuwien.mapper.MariaDbMapper;
 import at.tuwien.service.*;
 import at.tuwien.validation.EndpointValidator;
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/handlers/ApiExceptionHandler.java b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/handlers/ApiExceptionHandler.java
index ada082153e2cc3219bdc1783bb1824317ada3c88..8485d507c522de3f8b26b064e983bc823f79e947 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/handlers/ApiExceptionHandler.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/handlers/ApiExceptionHandler.java
@@ -1,7 +1,7 @@
 package at.tuwien.handlers;
 
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import io.swagger.v3.oas.annotations.Hidden;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.http.HttpHeaders;
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/validation/EndpointValidator.java b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/validation/EndpointValidator.java
index 6f5124850a796d715cdacd2776880dcbf73a6008..5f8b39704bbdc5ee7799a5335e47a8eb88943e0d 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/validation/EndpointValidator.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/validation/EndpointValidator.java
@@ -1,13 +1,13 @@
 package at.tuwien.validation;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.FilterDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.FilterTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.SubsetDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.FilterDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.FilterTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.SubsetDto;
 import at.tuwien.endpoints.RestEndpoint;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.tuwien.service.CacheService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/config/MariaDbConfig.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/config/MariaDbConfig.java
index 97fb83f40435480c5102aa05b7f0c8daa6d758c1..f0b3bb8784b2ff9232f1e16dce2abdf4188c6c3b 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/config/MariaDbConfig.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/config/MariaDbConfig.java
@@ -1,8 +1,8 @@
 package at.tuwien.config;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryDto;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.core.io.ClassPathResource;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/config/MariaDbContainerConfig.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/config/MariaDbContainerConfig.java
index b331dcea39648297ffca5b8db42c8c8ebc7b82c9..a1ad7e317170023e173ce590df2d21f50338f9f7 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/config/MariaDbContainerConfig.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/config/MariaDbContainerConfig.java
@@ -1,7 +1,7 @@
 package at.tuwien.config;
 
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.testcontainers.containers.MariaDBContainer;
@@ -11,7 +11,7 @@ import org.testcontainers.images.PullPolicy;
  * This class configures the MariaDB container for the integration tests.
  */
 @Configuration
-public class MariaDbContainerConfig extends AbstractUnitTest {
+public class MariaDbContainerConfig extends BaseTest {
 
     public static CustomMariaDBContainer getContainer() {
         return CustomMariaDBContainer.getInstance();
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/AccessEndpointUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/AccessEndpointUnitTest.java
index 26671988b0f73b77494e7b85b46e9266e858cb70..36579a1954c4818067c112ddf1838cc0d6e309bb 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/AccessEndpointUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/AccessEndpointUnitTest.java
@@ -1,15 +1,14 @@
 package at.tuwien.endpoint;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import at.tuwien.endpoints.AccessEndpoint;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
 import at.tuwien.service.AccessService;
 import at.tuwien.service.CacheService;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -28,7 +27,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class AccessEndpointUnitTest extends AbstractUnitTest {
+public class AccessEndpointUnitTest extends BaseTest {
 
     @Autowired
     private AccessEndpoint accessEndpoint;
@@ -39,11 +38,6 @@ public class AccessEndpointUnitTest extends AbstractUnitTest {
     @MockBean
     private AccessService accessService;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithMockUser(username = USER_LOCAL_ADMIN_USERNAME, authorities = {"system"})
     public void create_succeeds() throws UserNotFoundException, NotAllowedException, DatabaseUnavailableException,
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/DatabaseEndpointUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/DatabaseEndpointUnitTest.java
index 35e46938e793a6f6ff130f61bdd1c3ec76e5e79c..d36fd29a64160486cca7d3637f5ee88c6fc9c42d 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/DatabaseEndpointUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/DatabaseEndpointUnitTest.java
@@ -1,17 +1,16 @@
 package at.tuwien.endpoint;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import at.tuwien.endpoints.DatabaseEndpoint;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
 import at.tuwien.service.AccessService;
-import at.tuwien.service.ContainerService;
 import at.tuwien.service.CacheService;
+import at.tuwien.service.ContainerService;
 import at.tuwien.service.DatabaseService;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -33,7 +32,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class DatabaseEndpointUnitTest extends AbstractUnitTest {
+public class DatabaseEndpointUnitTest extends BaseTest {
 
     @Autowired
     private DatabaseEndpoint databaseEndpoint;
@@ -50,11 +49,6 @@ public class DatabaseEndpointUnitTest extends AbstractUnitTest {
     @MockBean
     private CacheService credentialService;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithMockUser(username = USER_LOCAL_ADMIN_USERNAME, authorities = {"system"})
     public void create_succeeds() throws DatabaseUnavailableException, RemoteUnavailableException,
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/SubsetEndpointUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/SubsetEndpointUnitTest.java
index 90396d44e0ccf2bbce13822fec801f26264b0000..7c21fa5ebfe0428877502c640afc9c28ec891cf6 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/SubsetEndpointUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/SubsetEndpointUnitTest.java
@@ -1,11 +1,11 @@
 package at.tuwien.endpoint;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryPersistDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.SubsetDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryPersistDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.SubsetDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import at.tuwien.endpoints.SubsetEndpoint;
 import at.tuwien.gateway.MetadataServiceGateway;
 import at.tuwien.service.CacheService;
@@ -17,7 +17,6 @@ import lombok.extern.log4j.Log4j2;
 import org.apache.spark.sql.Dataset;
 import org.apache.spark.sql.Row;
 import org.apache.spark.sql.SparkSession;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -42,7 +41,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class SubsetEndpointUnitTest extends AbstractUnitTest {
+public class SubsetEndpointUnitTest extends BaseTest {
 
     @Autowired
     private SubsetEndpoint subsetEndpoint;
@@ -68,11 +67,6 @@ public class SubsetEndpointUnitTest extends AbstractUnitTest {
     @MockBean
     private MetadataServiceGateway metadataServiceGateway;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithAnonymousUser
     public void list_publicDataPrivateSchemaAnonymous_succeeds() throws QueryNotFoundException,
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointUnitTest.java
index 1bde5acb6818e3b6f2b70675551fe457be59c6ef..280b28bbc8efc403716a29530e492b99f6943dc3 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointUnitTest.java
@@ -1,24 +1,23 @@
 package at.tuwien.endpoint;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.ImportDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.internal.TableCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.ImportDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal.TableCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import at.tuwien.endpoints.TableEndpoint;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
 import at.tuwien.gateway.MetadataServiceGateway;
 import at.tuwien.service.CacheService;
 import at.tuwien.service.DatabaseService;
 import at.tuwien.service.SubsetService;
 import at.tuwien.service.TableService;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
 import jakarta.servlet.http.HttpServletRequest;
 import lombok.extern.log4j.Log4j2;
 import org.apache.spark.sql.Dataset;
 import org.apache.spark.sql.Row;
 import org.apache.spark.sql.SparkSession;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.junit.jupiter.params.ParameterizedTest;
@@ -27,7 +26,6 @@ import org.junit.jupiter.params.provider.MethodSource;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.mock.mockito.MockBean;
-import org.springframework.core.io.InputStreamResource;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.security.access.AccessDeniedException;
@@ -47,7 +45,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class TableEndpointUnitTest extends AbstractUnitTest {
+public class TableEndpointUnitTest extends BaseTest {
 
     @Autowired
     private TableEndpoint tableEndpoint;
@@ -89,11 +87,6 @@ public class TableEndpointUnitTest extends AbstractUnitTest {
         );
     }
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithMockUser(username = USER_LOCAL_ADMIN_USERNAME, authorities = {"system"})
     public void create_succeeds() throws DatabaseUnavailableException, TableMalformedException, ViewNotFoundException,
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/ViewEndpointUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/ViewEndpointUnitTest.java
index 0abcea2588f1050393c19afe3d4b1f2ef5a96415..dfed71fbbb36b62f86d2311fc9555de451ecc77f 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/ViewEndpointUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/ViewEndpointUnitTest.java
@@ -1,20 +1,19 @@
 package at.tuwien.endpoint;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import at.tuwien.endpoints.ViewEndpoint;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
 import at.tuwien.service.CacheService;
 import at.tuwien.service.DatabaseService;
 import at.tuwien.service.SubsetService;
 import at.tuwien.service.ViewService;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
 import jakarta.servlet.http.HttpServletRequest;
 import lombok.extern.log4j.Log4j2;
 import org.apache.spark.sql.Dataset;
 import org.apache.spark.sql.Row;
 import org.apache.spark.sql.SparkSession;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -37,7 +36,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class ViewEndpointUnitTest extends AbstractUnitTest {
+public class ViewEndpointUnitTest extends BaseTest {
 
     @MockBean
     private ViewService viewService;
@@ -60,11 +59,6 @@ public class ViewEndpointUnitTest extends AbstractUnitTest {
     @Autowired
     private SparkSession sparkSession;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithMockUser(username = USER_LOCAL_ADMIN_USERNAME, authorities = {"system"})
     public void create_succeeds() throws DatabaseNotFoundException, RemoteUnavailableException, ViewMalformedException,
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/gateway/InterceptorUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/gateway/InterceptorUnitTest.java
index 7cf7103ce6a5b282c24273d1820caea16a689951..c41b8c326ce46b4c59f430be7497175c76540b8b 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/gateway/InterceptorUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/gateway/InterceptorUnitTest.java
@@ -1,9 +1,8 @@
 package at.tuwien.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Qualifier;
@@ -21,17 +20,12 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class InterceptorUnitTest extends AbstractUnitTest {
+public class InterceptorUnitTest extends BaseTest {
 
     @MockBean
     @Qualifier("keycloakRestTemplate")
     private RestTemplate restTemplate;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void intercept_succeeds() {
 
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/gateway/MetadataServiceGatewayUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/gateway/MetadataServiceGatewayUnitTest.java
index 54d7a5b557408a2a20d76d4e6d16703792fd2627..40025d894ecfbdcdb9e30e76e94251870b3b03bb 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/gateway/MetadataServiceGatewayUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/gateway/MetadataServiceGatewayUnitTest.java
@@ -1,16 +1,15 @@
 package at.tuwien.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,7 +33,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class MetadataServiceGatewayUnitTest extends AbstractUnitTest {
+public class MetadataServiceGatewayUnitTest extends BaseTest {
 
     @MockBean
     @Qualifier("internalRestTemplate")
@@ -43,11 +42,6 @@ public class MetadataServiceGatewayUnitTest extends AbstractUnitTest {
     @Autowired
     private MetadataServiceGateway metadataServiceGateway;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void getTableById_succeeds() throws TableNotFoundException, RemoteUnavailableException,
             MetadataServiceException {
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/handlers/ApiExceptionHandlerTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/handlers/ApiExceptionHandlerTest.java
index 4f867e8d4bed9dfb99e7ae2d61f491afd4b67ab8..063234a01269e100a8259f2651d76c81545d42e2 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/handlers/ApiExceptionHandlerTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/handlers/ApiExceptionHandlerTest.java
@@ -1,8 +1,8 @@
 package at.tuwien.handlers;
 
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
@@ -21,15 +21,15 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.Optional;
 
-import static at.ac.tuwien.ifs.dbrepo.test.utils.EndpointUtils.getErrorCodes;
-import static at.ac.tuwien.ifs.dbrepo.test.utils.EndpointUtils.getExceptions;
+import static at.ac.tuwien.ifs.dbrepo.core.test.utils.EndpointUtils.getErrorCodes;
+import static at.ac.tuwien.ifs.dbrepo.core.test.utils.EndpointUtils.getExceptions;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 @Log4j2
 @ExtendWith(SpringExtension.class)
 @SpringBootTest
-public class ApiExceptionHandlerTest extends AbstractUnitTest {
+public class ApiExceptionHandlerTest extends BaseTest {
 
     @Autowired
     private ApiExceptionHandler apiExceptionHandler;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/listener/DefaultListenerIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/listener/DefaultListenerIntegrationTest.java
index 280d2a6d6f497842557d6774580fb55161568f29..a0c97cf08e239146430b62364695281489525c8e 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/listener/DefaultListenerIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/listener/DefaultListenerIntegrationTest.java
@@ -1,13 +1,13 @@
 package at.tuwien.listener;
 
+import at.ac.tuwien.ifs.dbrepo.core.exception.DatabaseNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MetadataServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.RemoteUnavailableException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.TableNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import at.tuwien.config.MariaDbConfig;
 import at.tuwien.config.MariaDbContainerConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.DatabaseNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.MetadataServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.RemoteUnavailableException;
-import at.ac.tuwien.ifs.dbrepo.exception.TableNotFoundException;
 import at.tuwien.service.CacheService;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Disabled;
@@ -40,7 +40,7 @@ import static org.mockito.Mockito.when;
 @Testcontainers
 @ExtendWith(SpringExtension.class)
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
-public class DefaultListenerIntegrationTest extends AbstractUnitTest {
+public class DefaultListenerIntegrationTest extends BaseTest {
 
     @MockBean
     private CacheService credentialService;
@@ -56,7 +56,6 @@ public class DefaultListenerIntegrationTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() throws SQLException {
-        genesis();
         /* database */
         MariaDbConfig.dropAllDatabases(CONTAINER_1_PRIVILEGED_DTO);
         MariaDbConfig.createInitDatabase(DATABASE_1_PRIVILEGED_DTO);
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/listener/DefaultListenerUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/listener/DefaultListenerUnitTest.java
index 6beffa4759fe27453fd0a0c1329fdaf59e169be5..a53be7024f83ec47b2e9e70c050a83e298a74e29 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/listener/DefaultListenerUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/listener/DefaultListenerUnitTest.java
@@ -1,13 +1,13 @@
 package at.tuwien.listener;
 
+import at.ac.tuwien.ifs.dbrepo.core.exception.DatabaseNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MetadataServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.RemoteUnavailableException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.TableNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import at.tuwien.config.MariaDbConfig;
 import at.tuwien.config.MariaDbContainerConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.DatabaseNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.MetadataServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.RemoteUnavailableException;
-import at.ac.tuwien.ifs.dbrepo.exception.TableNotFoundException;
 import at.tuwien.service.CacheService;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -36,7 +36,7 @@ import static org.mockito.Mockito.when;
 @SpringBootTest
 @ExtendWith({SpringExtension.class, OutputCaptureExtension.class})
 @Testcontainers
-public class DefaultListenerUnitTest extends AbstractUnitTest {
+public class DefaultListenerUnitTest extends BaseTest {
 
     @MockBean
     private CacheService credentialService;
@@ -52,7 +52,6 @@ public class DefaultListenerUnitTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() throws SQLException {
-        genesis();
         /* metadata database */
         MariaDbConfig.dropAllDatabases(CONTAINER_1_PRIVILEGED_DTO);
         MariaDbConfig.createInitDatabase(DATABASE_1_PRIVILEGED_DTO);
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mapper/MariaDbMapperUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mapper/MariaDbMapperUnitTest.java
index 37dc14f3ec07ee0a640abfec6d3a395fc908be95..ffd7a9cdcc1fd18c4452babde9fe59cd45c4b3e2 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mapper/MariaDbMapperUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mapper/MariaDbMapperUnitTest.java
@@ -1,6 +1,6 @@
 package at.tuwien.mapper;
 
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.junit.jupiter.params.ParameterizedTest;
@@ -17,7 +17,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class MariaDbMapperUnitTest extends AbstractUnitTest {
+public class MariaDbMapperUnitTest extends BaseTest {
 
     @Autowired
     private MariaDbMapper mariaDbMapper;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/ActuatorEndpointMvcTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/ActuatorEndpointMvcTest.java
index 2781f51c829e52a2c3f7635cd9bdbf71f3d2d077..50f371a9a89349f794d73f59f7de2b809b2d6265 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/ActuatorEndpointMvcTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/ActuatorEndpointMvcTest.java
@@ -1,6 +1,6 @@
 package at.tuwien.mvc;
 
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -20,7 +20,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
 @AutoConfigureMockMvc
 @SpringBootTest
 @AutoConfigureObservability
-public class ActuatorEndpointMvcTest extends AbstractUnitTest {
+public class ActuatorEndpointMvcTest extends BaseTest {
 
     @Autowired
     private MockMvc mockMvc;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/OpenApiEndpointMvcTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/OpenApiEndpointMvcTest.java
index 1d77947dcc3d831ff029c92fcc49e34f4aa4fe86..248983b2c08c969722b361b62ec79fa09ba7180e 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/OpenApiEndpointMvcTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/OpenApiEndpointMvcTest.java
@@ -1,8 +1,8 @@
 package at.tuwien.mvc;
 
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
 import at.tuwien.endpoints.*;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.Content;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
@@ -30,7 +30,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
 @ExtendWith(SpringExtension.class)
 @AutoConfigureMockMvc
 @SpringBootTest
-public class OpenApiEndpointMvcTest extends AbstractUnitTest {
+public class OpenApiEndpointMvcTest extends BaseTest {
 
     @Autowired
     private MockMvc mockMvc;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/PrometheusEndpointMvcTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/PrometheusEndpointMvcTest.java
index f47d205cd7f4a34d799eced79e3b079a15f290e7..164aa99c06f63528fdc92cfae4f480e612c61383 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/PrometheusEndpointMvcTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/PrometheusEndpointMvcTest.java
@@ -1,16 +1,16 @@
 package at.tuwien.mvc;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.query.ImportDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryPersistDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TupleDeleteDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TupleDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TupleUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.ImportDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryPersistDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TupleDeleteDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TupleDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TupleUpdateDto;
 import at.tuwien.config.MetricsConfig;
 import at.tuwien.endpoints.SubsetEndpoint;
 import at.tuwien.endpoints.TableEndpoint;
 import at.tuwien.endpoints.ViewEndpoint;
 import at.tuwien.listener.DefaultListener;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import io.micrometer.observation.tck.TestObservationRegistry;
 import jakarta.servlet.http.HttpServletRequest;
 import lombok.extern.log4j.Log4j2;
@@ -42,7 +42,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
 @SpringBootTest
 @Import(MetricsConfig.class)
 @AutoConfigureObservability
-public class PrometheusEndpointMvcTest extends AbstractUnitTest {
+public class PrometheusEndpointMvcTest extends BaseTest {
 
     @Autowired
     private MockMvc mockMvc;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/SubsetEndpointMvcTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/SubsetEndpointMvcTest.java
index 158bed7ef021ffb2ef625e25ca354b440ff4baf2..1371d58bb3b8e1841dd90a76d6de73b22738e808 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/SubsetEndpointMvcTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/SubsetEndpointMvcTest.java
@@ -2,7 +2,7 @@ package at.tuwien.mvc;
 
 import at.tuwien.gateway.MetadataServiceGateway;
 import at.tuwien.service.SubsetService;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -25,7 +25,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
 @AutoConfigureMockMvc
 @SpringBootTest
 @AutoConfigureObservability
-public class SubsetEndpointMvcTest extends AbstractUnitTest {
+public class SubsetEndpointMvcTest extends BaseTest {
 
     @MockBean
     private MetadataServiceGateway metadataServiceGateway;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/AccessServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/AccessServiceIntegrationTest.java
index e1f0354d1bb63f7f6298dd3172fbc4e4a2518468..a1c273f8d01b83a93a3b699c066987262aa05def 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/AccessServiceIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/AccessServiceIntegrationTest.java
@@ -1,10 +1,10 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
 import at.tuwien.config.MariaDbConfig;
 import at.tuwien.config.MariaDbContainerConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.DatabaseMalformedException;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DatabaseMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -26,7 +26,7 @@ import static org.junit.jupiter.api.Assertions.*;
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
 @Testcontainers
-public class AccessServiceIntegrationTest extends AbstractUnitTest {
+public class AccessServiceIntegrationTest extends BaseTest {
 
     @Autowired
     private AccessService accessService;
@@ -42,7 +42,6 @@ public class AccessServiceIntegrationTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() throws SQLException {
-        genesis();
         /* metadata database */
         MariaDbConfig.dropDatabase(CONTAINER_1_PRIVILEGED_DTO, DATABASE_1_INTERNALNAME);
         MariaDbConfig.createInitDatabase(DATABASE_1_PRIVILEGED_DTO);
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java
index eddeef45e06ffcb47e0025fafff9d55ef5e196d4..2967bfce461a48d16de066a98d548192385e623a 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java
@@ -1,11 +1,11 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
 import at.tuwien.config.MariaDbConfig;
 import at.tuwien.config.MariaDbContainerConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.DatabaseMalformedException;
-import at.ac.tuwien.ifs.dbrepo.exception.QueryStoreCreateException;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DatabaseMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.QueryStoreCreateException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
@@ -28,7 +28,7 @@ import static org.junit.jupiter.api.Assertions.*;
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
 @Testcontainers
-public class ContainerServiceIntegrationTest extends AbstractUnitTest {
+public class ContainerServiceIntegrationTest extends BaseTest {
 
     @Autowired
     private ContainerService containerService;
@@ -43,7 +43,6 @@ public class ContainerServiceIntegrationTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() throws SQLException, InterruptedException {
-        genesis();
         /* metadata database */
         MariaDbConfig.dropDatabase(CONTAINER_1_PRIVILEGED_DTO, DATABASE_1_INTERNALNAME);
         MariaDbConfig.createDatabase(CONTAINER_1_PRIVILEGED_DTO, DATABASE_1_INTERNALNAME);
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/CredentialServiceUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/CredentialServiceUnitTest.java
index b1bdc7f6bc49197593441a572c841c820e3efcc0..994d01136049e0e10f691818d93accf24519b321 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/CredentialServiceUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/CredentialServiceUnitTest.java
@@ -1,15 +1,15 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.tuwien.gateway.MetadataServiceGateway;
 import at.tuwien.service.impl.CacheServiceImpl;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -27,7 +27,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class CredentialServiceUnitTest extends AbstractUnitTest {
+public class CredentialServiceUnitTest extends BaseTest {
 
     @Autowired
     private CacheServiceImpl credentialService;
@@ -37,7 +37,6 @@ public class CredentialServiceUnitTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() throws SQLException {
-        genesis();
         /* cache */
         credentialService.invalidateAll();
     }
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceIntegrationTest.java
index 8726fa86a374fca669e9591a3d9f0a4223ba4384..d907064afc8d45d56816baf6805f0887a58dd1c5 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceIntegrationTest.java
@@ -1,25 +1,25 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.ConstraintsDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.CreateTableConstraintsDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.CreateForeignKeyDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.ForeignKeyDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.ForeignKeyReferenceDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.ReferenceTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.primary.PrimaryKeyDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.unique.UniqueDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.internal.TableCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.internal.UpdateUserPasswordDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.ConstraintsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.CreateTableConstraintsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.CreateForeignKeyDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.ForeignKeyDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.ForeignKeyReferenceDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.ReferenceTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.primary.PrimaryKeyDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.unique.UniqueDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal.TableCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.internal.UpdateUserPasswordDto;
 import at.tuwien.config.MariaDbConfig;
 import at.tuwien.config.MariaDbContainerConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
@@ -45,7 +45,7 @@ import static org.junit.jupiter.api.Assertions.*;
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
 @Testcontainers
-public class DatabaseServiceIntegrationTest extends AbstractUnitTest {
+public class DatabaseServiceIntegrationTest extends BaseTest {
 
     @Autowired
     private DatabaseService databaseService;
@@ -60,7 +60,6 @@ public class DatabaseServiceIntegrationTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() throws SQLException, InterruptedException {
-        genesis();
         /* metadata database */
         MariaDbConfig.dropDatabase(CONTAINER_1_PRIVILEGED_DTO, DATABASE_1_INTERNALNAME);
         MariaDbConfig.createInitDatabase(DATABASE_1_PRIVILEGED_DTO);
@@ -616,7 +615,7 @@ public class DatabaseServiceIntegrationTest extends AbstractUnitTest {
 
     @Test
     public void createTable_malformed_fails() {
-        final at.ac.tuwien.ifs.dbrepo.api.database.table.internal.TableCreateDto request = TableCreateDto.builder()
+        final at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal.TableCreateDto request = TableCreateDto.builder()
                 .name("missing_foreign_key")
                 .columns(List.of())
                 .constraints(CreateTableConstraintsDto.builder()
@@ -637,7 +636,7 @@ public class DatabaseServiceIntegrationTest extends AbstractUnitTest {
     @Test
     public void createTable_compositePrimaryKey_fails() throws TableNotFoundException, TableMalformedException, SQLException,
             TableExistsException {
-        final at.ac.tuwien.ifs.dbrepo.api.database.table.internal.TableCreateDto request = TableCreateDto.builder()
+        final at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal.TableCreateDto request = TableCreateDto.builder()
                 .name("composite_primary_key")
                 .columns(List.of(CreateTableColumnDto.builder()
                                 .name("name")
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/QueueServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/QueueServiceIntegrationTest.java
index be89571cedcea7ae3c025ac6bc1d4c1cf5a29b8b..e722cebe99956a5a206f64c2d489a6d78cdf4633 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/QueueServiceIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/QueueServiceIntegrationTest.java
@@ -2,13 +2,13 @@ package at.tuwien.service;
 
 import at.tuwien.config.MariaDbConfig;
 import at.tuwien.config.MariaDbContainerConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.DatabaseNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.MetadataServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.RemoteUnavailableException;
-import at.ac.tuwien.ifs.dbrepo.exception.TableNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DatabaseNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MetadataServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.RemoteUnavailableException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.TableNotFoundException;
 import at.tuwien.gateway.MetadataServiceGateway;
 import at.tuwien.service.impl.QueueServiceRabbitMqImpl;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
@@ -32,7 +32,7 @@ import static org.mockito.Mockito.when;
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
 @Testcontainers
-public class QueueServiceIntegrationTest extends AbstractUnitTest {
+public class QueueServiceIntegrationTest extends BaseTest {
 
     @Autowired
     private QueueServiceRabbitMqImpl queueService;
@@ -50,7 +50,6 @@ public class QueueServiceIntegrationTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() throws SQLException {
-        genesis();
         /* metadata database */
         MariaDbConfig.dropDatabase(CONTAINER_1_PRIVILEGED_DTO, DATABASE_1_INTERNALNAME);
         MariaDbConfig.createInitDatabase(DATABASE_1_PRIVILEGED_DTO);
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/StorageServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/StorageServiceIntegrationTest.java
index f3cfb9c8b970df2b3faf8f407d08e6080a23d7be..dd563deb70cd7021e0a721075669d755328ff0a8 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/StorageServiceIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/StorageServiceIntegrationTest.java
@@ -1,12 +1,12 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.ExportResourceDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.ExportResourceDto;
 import at.tuwien.config.S3Config;
-import at.ac.tuwien.ifs.dbrepo.exception.MalformedException;
-import at.ac.tuwien.ifs.dbrepo.exception.StorageNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.StorageUnavailableException;
-import at.ac.tuwien.ifs.dbrepo.exception.TableMalformedException;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.StorageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.StorageUnavailableException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.TableMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.io.FileUtils;
 import org.apache.spark.sql.Dataset;
@@ -48,7 +48,7 @@ import static org.junit.jupiter.api.Assertions.*;
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
 @Testcontainers
-public class StorageServiceIntegrationTest extends AbstractUnitTest {
+public class StorageServiceIntegrationTest extends BaseTest {
 
     @Autowired
     private StorageService storageService;
@@ -84,7 +84,6 @@ public class StorageServiceIntegrationTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() throws SQLException {
-        genesis();
         /* s3 */
         if (s3Client.listBuckets().buckets().stream().noneMatch(b -> b.name().equals(s3Config.getS3Bucket()))) {
             s3Client.createBucket(CreateBucketRequest.builder()
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/SubsetServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/SubsetServiceIntegrationTest.java
index 222dec4e84fa827efbdc5241cbe8aae689337400..aad256fd119bb50f88cdbf598bdea92468391603 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/SubsetServiceIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/SubsetServiceIntegrationTest.java
@@ -1,12 +1,12 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.query.*;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierBriefDto;
 import at.tuwien.config.MariaDbConfig;
 import at.tuwien.config.MariaDbContainerConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.tuwien.gateway.MetadataServiceGateway;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.apache.spark.sql.Dataset;
 import org.apache.spark.sql.Row;
@@ -39,7 +39,7 @@ import static org.mockito.Mockito.when;
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
 @Testcontainers
-public class SubsetServiceIntegrationTest extends AbstractUnitTest {
+public class SubsetServiceIntegrationTest extends BaseTest {
 
     @Autowired
     private SubsetService subsetService;
@@ -60,7 +60,6 @@ public class SubsetServiceIntegrationTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() throws SQLException {
-        genesis();
         /* metadata database */
         MariaDbConfig.dropDatabase(CONTAINER_1_PRIVILEGED_DTO, DATABASE_1_INTERNALNAME);
         MariaDbConfig.createInitDatabase(DATABASE_1_PRIVILEGED_DTO);
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationTest.java
index 6172f89569a8298a1324081362b856b89c6234e8..a52cdf9bcbbf7ef3c1a316b60d4f2e6b53a206c7 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationTest.java
@@ -1,13 +1,13 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.query.ImportDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnStatisticDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.ImportDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnStatisticDto;
 import at.tuwien.config.MariaDbConfig;
 import at.tuwien.config.MariaDbContainerConfig;
 import at.tuwien.config.S3Config;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import com.google.common.io.Files;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeAll;
@@ -45,7 +45,7 @@ import static org.junit.jupiter.api.Assertions.*;
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
 @Testcontainers
-public class TableServiceIntegrationTest extends AbstractUnitTest {
+public class TableServiceIntegrationTest extends BaseTest {
 
     @Autowired
     private TableService tableService;
@@ -74,7 +74,6 @@ public class TableServiceIntegrationTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() throws SQLException {
-        genesis();
         /* metadata database */
         MariaDbConfig.dropDatabase(CONTAINER_1_PRIVILEGED_DTO, DATABASE_1_INTERNALNAME);
         MariaDbConfig.dropDatabase(CONTAINER_1_PRIVILEGED_DTO, DATABASE_2_INTERNALNAME);
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/ViewServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/ViewServiceIntegrationTest.java
index b21def212370b7a6f2df9f2b753bd8b2a0348b82..75f5d43a9b0ddb090655ef034547ba3edfd87710 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/ViewServiceIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/ViewServiceIntegrationTest.java
@@ -2,8 +2,8 @@ package at.tuwien.service;
 
 import at.tuwien.config.MariaDbConfig;
 import at.tuwien.config.MariaDbContainerConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.ViewMalformedException;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ViewMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -21,7 +21,7 @@ import java.sql.SQLException;
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
 @Testcontainers
-public class ViewServiceIntegrationTest extends AbstractUnitTest {
+public class ViewServiceIntegrationTest extends BaseTest {
 
     @Autowired
     private ViewService viewService;
@@ -31,7 +31,6 @@ public class ViewServiceIntegrationTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() throws SQLException {
-        genesis();
         /* metadata database */
         MariaDbConfig.dropDatabase(CONTAINER_1_PRIVILEGED_DTO, DATABASE_1_INTERNALNAME);
         MariaDbConfig.createInitDatabase(DATABASE_1_PRIVILEGED_DTO);
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/utils/MariaDbUtilTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/utils/MariaDbUtilTest.java
index dbcf11224be662263163f4774c747785638901a3..6a7a08cf26bdddd60c62114654a754391df07850 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/utils/MariaDbUtilTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/utils/MariaDbUtilTest.java
@@ -1,6 +1,6 @@
 package at.tuwien.utils;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnTypeDto;
 import org.junit.jupiter.api.Test;
 import org.springframework.amqp.core.Message;
 import org.springframework.amqp.core.MessageProperties;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/validation/EndpointValidatorUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/validation/EndpointValidatorUnitTest.java
index 03df61b44774d67d2cf9fb589b5000d282f465dd..0f865a3929b8c9667adf4d80b5c734daa11c1ca1 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/validation/EndpointValidatorUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/validation/EndpointValidatorUnitTest.java
@@ -1,7 +1,7 @@
 package at.tuwien.validation;
 
-import at.ac.tuwien.ifs.dbrepo.exception.PaginationException;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.exception.PaginationException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -18,7 +18,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
 @AutoConfigureMockMvc
 @SpringBootTest
 @AutoConfigureObservability
-public class EndpointValidatorUnitTest extends AbstractUnitTest {
+public class EndpointValidatorUnitTest extends BaseTest {
 
     @Autowired
     private EndpointValidator endpointValidator;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/auth/AuthTokenFilter.java b/dbrepo-data-service/services/src/main/java/at/tuwien/auth/AuthTokenFilter.java
index cdfd1d647e2ea4e2ad995b54f9b46095682eda5f..81590fbe4d5e17b03fd6f8b30c0e492786cbf458 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/auth/AuthTokenFilter.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/auth/AuthTokenFilter.java
@@ -1,7 +1,7 @@
 package at.tuwien.auth;
 
-import at.ac.tuwien.ifs.dbrepo.api.auth.RealmAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDetailsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.auth.RealmAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDetailsDto;
 import com.auth0.jwt.JWT;
 import com.auth0.jwt.JWTVerifier;
 import com.auth0.jwt.algorithms.Algorithm;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/auth/BasicAuthenticationProvider.java b/dbrepo-data-service/services/src/main/java/at/tuwien/auth/BasicAuthenticationProvider.java
index 66089b00b42edac0e799b80dfc23eafc14935f87..047469e772eedd03054f8023a1c1c839e6291ff4 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/auth/BasicAuthenticationProvider.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/auth/BasicAuthenticationProvider.java
@@ -1,6 +1,6 @@
 package at.tuwien.auth;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
 import at.tuwien.service.CredentialService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/auth/InternalRequestInterceptor.java b/dbrepo-data-service/services/src/main/java/at/tuwien/auth/InternalRequestInterceptor.java
index ae4eedc7c75f19203f39637c919741b7965b1f33..e5549a35b1931356518d6ada130776717f7f5c6a 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/auth/InternalRequestInterceptor.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/auth/InternalRequestInterceptor.java
@@ -1,6 +1,6 @@
 package at.tuwien.auth;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
 import at.tuwien.config.GatewayConfig;
 import at.tuwien.service.CredentialService;
 import lombok.extern.log4j.Log4j2;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/config/CacheConfig.java b/dbrepo-data-service/services/src/main/java/at/tuwien/config/CacheConfig.java
index 757d4b7f6b773992f10fb3170cfba4692923a95d..2466f40a2b89975a72cde4855ba908411abd2947 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/config/CacheConfig.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/config/CacheConfig.java
@@ -1,13 +1,13 @@
 package at.tuwien.config;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableStatisticDto;
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableStatisticDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
 import com.github.benmanes.caffeine.cache.Cache;
 import com.github.benmanes.caffeine.cache.Caffeine;
 import org.springframework.beans.factory.annotation.Value;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/KeycloakGateway.java b/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/KeycloakGateway.java
index 4c404b9d66119f1015760782057264eb76fdb1d5..5b23d7c367866e42bc80446a4c8931dcc1d86cd9 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/KeycloakGateway.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/KeycloakGateway.java
@@ -1,10 +1,10 @@
 package at.tuwien.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
-import at.ac.tuwien.ifs.dbrepo.exception.AccountNotSetupException;
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceConnectionException;
-import at.ac.tuwien.ifs.dbrepo.exception.CredentialsInvalidException;
-import at.ac.tuwien.ifs.dbrepo.exception.NotAllowedException;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AccountNotSetupException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceConnectionException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.CredentialsInvalidException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.NotAllowedException;
 import org.springframework.security.authentication.BadCredentialsException;
 
 public interface KeycloakGateway {
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/MetadataServiceGateway.java b/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/MetadataServiceGateway.java
index ecb4f9b937db0888d1b8751a0f885a5137561d5f..7d5571da9a660e7f4731862de3ddfc1548b995d7 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/MetadataServiceGateway.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/MetadataServiceGateway.java
@@ -1,13 +1,13 @@
 package at.tuwien.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import jakarta.validation.constraints.NotNull;
 
 import java.util.List;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/impl/KeycloakGatewayImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/impl/KeycloakGatewayImpl.java
index a44034ccedfb8a2a47dc8a73487db1f8fa6ffc23..d0f874cb9c639f8c9560cd9ea3c10ac1344ca3d0 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/impl/KeycloakGatewayImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/impl/KeycloakGatewayImpl.java
@@ -1,6 +1,6 @@
 package at.tuwien.gateway.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
 import at.tuwien.config.KeycloakConfig;
 import at.tuwien.gateway.KeycloakGateway;
 import at.tuwien.mapper.MetadataMapper;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/impl/MetadataServiceGatewayImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/impl/MetadataServiceGatewayImpl.java
index 2922d00f058881043204699d16002ceba3d83eb7..959ad34e5d386fc35b241570dcb949c40563ae77 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/impl/MetadataServiceGatewayImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/impl/MetadataServiceGatewayImpl.java
@@ -1,14 +1,14 @@
 package at.tuwien.gateway.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
 import at.tuwien.config.GatewayConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.tuwien.gateway.MetadataServiceGateway;
 import at.tuwien.mapper.MetadataMapper;
 import jakarta.validation.constraints.NotNull;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/listener/DefaultListener.java b/dbrepo-data-service/services/src/main/java/at/tuwien/listener/DefaultListener.java
index 799a5d3c795e96b33daf00788059d86e5613b5ed..aad70d3f378637fe8902c717287b12a933e9d37e 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/listener/DefaultListener.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/listener/DefaultListener.java
@@ -1,11 +1,11 @@
 package at.tuwien.listener;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.exception.DatabaseNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.MetadataServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.RemoteUnavailableException;
-import at.ac.tuwien.ifs.dbrepo.exception.TableNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DatabaseNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MetadataServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.RemoteUnavailableException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.TableNotFoundException;
 import at.tuwien.service.CacheService;
 import at.tuwien.service.QueueService;
 import com.fasterxml.jackson.core.type.TypeReference;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/DataMapper.java b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/DataMapper.java
index 9088073b0cc33226d60697465aeee57b5e51478c..904d867643f33decdfc59a5a7e094024c7603f87 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/DataMapper.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/DataMapper.java
@@ -1,20 +1,20 @@
 package at.tuwien.mapper;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.ConstraintsDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.ForeignKeyBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.ForeignKeyDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.ForeignKeyReferenceDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.ReferenceTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.primary.PrimaryKeyDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.unique.UniqueDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
-import at.ac.tuwien.ifs.dbrepo.exception.TableNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.ConstraintsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.ForeignKeyBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.ForeignKeyDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.ForeignKeyReferenceDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.ReferenceTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.primary.PrimaryKeyDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.unique.UniqueDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.TableNotFoundException;
 import org.apache.hadoop.shaded.com.google.common.hash.Hashing;
 import org.apache.hadoop.shaded.org.apache.commons.io.FileUtils;
 import org.jetbrains.annotations.NotNull;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MariaDbMapper.java b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MariaDbMapper.java
index 2bb7eeb084e2bbc6ec82568cbe1c16f5196d845c..4861a7a1d7675a2e9b1008700face58c4c688758 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MariaDbMapper.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MariaDbMapper.java
@@ -1,22 +1,22 @@
 package at.tuwien.mapper;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.image.OperatorDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.FilterDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.FilterTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.OrderDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.SubsetDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TupleDeleteDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TupleDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TupleUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.CreateTableColumnDto;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.QueryMalformedException;
-import at.ac.tuwien.ifs.dbrepo.exception.TableMalformedException;
-import at.ac.tuwien.ifs.dbrepo.exception.TableNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.OperatorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.FilterDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.FilterTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.OrderDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.SubsetDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TupleDeleteDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TupleDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TupleUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.CreateTableColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.QueryMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.TableMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.TableNotFoundException;
 import at.tuwien.utils.MariaDbUtil;
 import org.jooq.Record;
 import org.jooq.*;
@@ -317,7 +317,7 @@ public interface MariaDbMapper {
     }
 
     default String tableCreateDtoToCreateTableRawQuery(String databaseName,
-                                                       at.ac.tuwien.ifs.dbrepo.api.database.table.internal.TableCreateDto data) {
+                                                       at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal.TableCreateDto data) {
         final StringBuilder stringBuilder = new StringBuilder("CREATE TABLE `")
                 .append(databaseName)
                 .append("`.`")
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MetadataMapper.java b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MetadataMapper.java
index 68d83d97c39d768057a7f4409e849dec0d0be7ec..ff979bd0886157fdda574c5d3c87a3547417fa3b 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MetadataMapper.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MetadataMapper.java
@@ -1,21 +1,20 @@
 package at.tuwien.mapper;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.internal.CreateDatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierDto;
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.internal.CreateDatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
 import org.keycloak.representations.AccessTokenResponse;
 import org.mapstruct.Mapper;
 import org.mapstruct.Mapping;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/AccessService.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/AccessService.java
index 1abee15a64b30b0938a0103bb5a7cabd47c27032..71899fc081edef19d4ce5a12040b5b9c84d2391a 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/AccessService.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/AccessService.java
@@ -1,9 +1,9 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
-import at.ac.tuwien.ifs.dbrepo.exception.DatabaseMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DatabaseMalformedException;
 
 import java.sql.SQLException;
 
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/CacheService.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/CacheService.java
index 5f5de380ba2d353e39f8a1c7ceb1fa90dd8d6b89..9424af16c24b1e51bd4fb03ce2bec251a4af9d1b 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/CacheService.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/CacheService.java
@@ -1,13 +1,13 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableStatisticDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableStatisticDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 
 import java.sql.SQLException;
 import java.util.UUID;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/ContainerService.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/ContainerService.java
index 68f953ce9aa19b23592fc3917de4600110d6605a..f788a06eebf2cf9a69e57754ca964e3f0dbcb9e2 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/ContainerService.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/ContainerService.java
@@ -1,10 +1,10 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.internal.CreateDatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.exception.DatabaseMalformedException;
-import at.ac.tuwien.ifs.dbrepo.exception.QueryStoreCreateException;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.internal.CreateDatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DatabaseMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.QueryStoreCreateException;
 
 import java.sql.SQLException;
 
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/CredentialService.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/CredentialService.java
index 469db41a023a922c12f6b8ad19846ab7837e8467..bb9765c810011f4e89ed0a9ee006cb267f7c73dd 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/CredentialService.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/CredentialService.java
@@ -1,6 +1,6 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
 
 public interface CredentialService {
 
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/DatabaseService.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/DatabaseService.java
index 31bfc1dbbe75a218c97828b4e1ddf3a22bd69ebd..a12c8e0d4d88decfd94d2695522f6a62076985f7 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/DatabaseService.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/DatabaseService.java
@@ -1,11 +1,11 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.internal.TableCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.internal.UpdateUserPasswordDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal.TableCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.internal.UpdateUserPasswordDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 
 import java.sql.SQLException;
 import java.util.List;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/QueueService.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/QueueService.java
index bfbe27066f7b5fe86a4e9229e01e3c6426dbd854..e35f4029bbdd60031fb65fe6c73e4a556cfa7af5 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/QueueService.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/QueueService.java
@@ -1,7 +1,7 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
 
 import java.sql.SQLException;
 import java.util.Map;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/StorageService.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/StorageService.java
index 062d008257f22ed239d9d89547cce943e36c02c4..65896d53e32c9024af39ac34cf2ed41029b0a045 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/StorageService.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/StorageService.java
@@ -1,10 +1,10 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.ExportResourceDto;
-import at.ac.tuwien.ifs.dbrepo.exception.MalformedException;
-import at.ac.tuwien.ifs.dbrepo.exception.StorageNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.StorageUnavailableException;
-import at.ac.tuwien.ifs.dbrepo.exception.TableMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.api.ExportResourceDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.StorageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.StorageUnavailableException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.TableMalformedException;
 import org.apache.spark.sql.Dataset;
 import org.apache.spark.sql.Row;
 
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/SubsetService.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/SubsetService.java
index 9e15373ee30a18ca316afd838720d9fc40fb1e46..30f6c2604fbea95af91aa856fa2725477591eec3 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/SubsetService.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/SubsetService.java
@@ -1,9 +1,9 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.SubsetDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.SubsetDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import org.apache.spark.sql.Dataset;
 import org.apache.spark.sql.Row;
 
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/TableService.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/TableService.java
index 9d6e1b98fbdf610ce535edf492e088cd8cc09e88..7ecc58bef88ad5adb025b6c86759d7c94e9c2c7a 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/TableService.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/TableService.java
@@ -1,9 +1,9 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.ImportDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.*;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.ImportDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.*;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 
 import java.sql.SQLException;
 import java.time.Instant;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/ViewService.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/ViewService.java
index d0a885c7e11fabe13738ecb1faea8b1c87b7b4fe..7fb1f0bdf855acfe79126873a16b71214e8b5049 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/ViewService.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/ViewService.java
@@ -1,9 +1,9 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.exception.QueryMalformedException;
-import at.ac.tuwien.ifs.dbrepo.exception.ViewMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.QueryMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ViewMalformedException;
 
 import java.sql.SQLException;
 import java.time.Instant;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/AccessServiceMariaDbImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/AccessServiceMariaDbImpl.java
index d7b303499d69543134980e35170ff9858a180257..fee072d633eeb1bdbbe3b1e0e57d510b97e10756 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/AccessServiceMariaDbImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/AccessServiceMariaDbImpl.java
@@ -1,9 +1,9 @@
 package at.tuwien.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
-import at.ac.tuwien.ifs.dbrepo.exception.DatabaseMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DatabaseMalformedException;
 import at.tuwien.mapper.MariaDbMapper;
 import at.tuwien.service.AccessService;
 import com.mchange.v2.c3p0.ComboPooledDataSource;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/CacheServiceImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/CacheServiceImpl.java
index 67fd442e777ca0ba134c371d72bf245b3e414ec0..65646d1ad402962b84ecb02cf3549bc3ec65aec9 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/CacheServiceImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/CacheServiceImpl.java
@@ -1,13 +1,13 @@
 package at.tuwien.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableStatisticDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableStatisticDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.tuwien.gateway.MetadataServiceGateway;
 import at.tuwien.service.CacheService;
 import at.tuwien.service.TableService;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceMariaDbImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceMariaDbImpl.java
index 1fff245fd49da997ad9675fe49d457e9449d4465..ff14b7329da5cd01666099c8ab17d77c49aa808e 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceMariaDbImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceMariaDbImpl.java
@@ -1,12 +1,12 @@
 package at.tuwien.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.internal.CreateDatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.internal.CreateDatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
 import at.tuwien.config.RabbitConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.DatabaseMalformedException;
-import at.ac.tuwien.ifs.dbrepo.exception.QueryStoreCreateException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DatabaseMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.QueryStoreCreateException;
 import at.tuwien.mapper.MariaDbMapper;
 import at.tuwien.service.ContainerService;
 import com.mchange.v2.c3p0.ComboPooledDataSource;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/CredentialServiceImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/CredentialServiceImpl.java
index 8e24497cb83e0fbd95539d23d3de3332c7a6f5a0..cbe1912b3a5231a7d3708a75af957ff4bcbf3402 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/CredentialServiceImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/CredentialServiceImpl.java
@@ -1,6 +1,6 @@
 package at.tuwien.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
 import at.tuwien.gateway.KeycloakGateway;
 import at.tuwien.service.CredentialService;
 import com.github.benmanes.caffeine.cache.Cache;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/DataConnector.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/DataConnector.java
index a29e471f0f8d90ca99c5f8f80e0ad6d0ba8991e0..366afd92a3205e20d01f198ce0dbb2c76e812e05 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/DataConnector.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/DataConnector.java
@@ -1,7 +1,7 @@
 package at.tuwien.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
 import com.mchange.v2.c3p0.ComboPooledDataSource;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.stereotype.Service;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceMariaDbImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceMariaDbImpl.java
index 55dc137c96d16501fda84370f6ea3843b02d5396..c6a0d61595b008d73032f35063ff34bf472d83d3 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceMariaDbImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceMariaDbImpl.java
@@ -1,12 +1,12 @@
 package at.tuwien.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.unique.UniqueDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.internal.TableCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.internal.UpdateUserPasswordDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.unique.UniqueDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal.TableCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.internal.UpdateUserPasswordDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.tuwien.mapper.DataMapper;
 import at.tuwien.mapper.MariaDbMapper;
 import at.tuwien.mapper.MetadataMapper;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/QueueServiceRabbitMqImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/QueueServiceRabbitMqImpl.java
index 80cf9937671bd9e201c24c644d4e6c1c1dfc9191..541f68e9516505bbc81ba7609c12f8ef4982963d 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/QueueServiceRabbitMqImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/QueueServiceRabbitMqImpl.java
@@ -1,8 +1,8 @@
 package at.tuwien.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnDto;
 import at.tuwien.mapper.DataMapper;
 import at.tuwien.mapper.MetadataMapper;
 import at.tuwien.service.QueueService;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/StorageServiceS3Impl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/StorageServiceS3Impl.java
index db3ff4fd2677a0013b16451bd2257802a0f3254b..76bfb60c4de4b0facc647809b17db95e784a84cd 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/StorageServiceS3Impl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/StorageServiceS3Impl.java
@@ -1,11 +1,11 @@
 package at.tuwien.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.ExportResourceDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.ExportResourceDto;
 import at.tuwien.config.S3Config;
-import at.ac.tuwien.ifs.dbrepo.exception.MalformedException;
-import at.ac.tuwien.ifs.dbrepo.exception.StorageNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.StorageUnavailableException;
-import at.ac.tuwien.ifs.dbrepo.exception.TableMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.StorageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.StorageUnavailableException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.TableMalformedException;
 import at.tuwien.service.StorageService;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.lang3.RandomStringUtils;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/SubsetServiceMariaDbImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/SubsetServiceMariaDbImpl.java
index 8b3a486bff502fe5bf2b4eac1e44ff48804b60b5..7ace8e4a0595477f96f01151668ebd0f9ed321dd 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/SubsetServiceMariaDbImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/SubsetServiceMariaDbImpl.java
@@ -1,11 +1,11 @@
 package at.tuwien.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.SubsetDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierTypeDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.SubsetDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.tuwien.gateway.MetadataServiceGateway;
 import at.tuwien.mapper.DataMapper;
 import at.tuwien.mapper.MariaDbMapper;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/TableServiceMariaDbImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/TableServiceMariaDbImpl.java
index 75dd74dfa7ac791ae4d56be65455bb124d1c5eaf..8e6e6acab3b5b15f855b95393379c53669c54edb 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/TableServiceMariaDbImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/TableServiceMariaDbImpl.java
@@ -1,12 +1,12 @@
 package at.tuwien.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.ImportDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnStatisticDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnTypeDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.ImportDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnStatisticDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.tuwien.mapper.DataMapper;
 import at.tuwien.mapper.MariaDbMapper;
 import at.tuwien.service.DatabaseService;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/ViewServiceMariaDbImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/ViewServiceMariaDbImpl.java
index 652f1c6d6c910139faa0969f8d56a72deb22f098..0ef62bb025159966d295975ac0810074214eafc6 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/ViewServiceMariaDbImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/ViewServiceMariaDbImpl.java
@@ -1,9 +1,9 @@
 package at.tuwien.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.exception.QueryMalformedException;
-import at.ac.tuwien.ifs.dbrepo.exception.ViewMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.QueryMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ViewMalformedException;
 import at.tuwien.mapper.MariaDbMapper;
 import at.tuwien.service.ViewService;
 import com.mchange.v2.c3p0.ComboPooledDataSource;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/utils/MariaDbUtil.java b/dbrepo-data-service/services/src/main/java/at/tuwien/utils/MariaDbUtil.java
index 1ec5b98968816e67d453d52b9ebff518e3207dd0..6d831d8d11c393c0148e1543756ee3c7de88015c 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/utils/MariaDbUtil.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/utils/MariaDbUtil.java
@@ -1,6 +1,6 @@
 package at.tuwien.utils;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnTypeDto;
 
 import java.util.List;
 
diff --git a/dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/OaiErrorType.java b/dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/OaiErrorType.java
similarity index 96%
rename from dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/OaiErrorType.java
rename to dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/OaiErrorType.java
index a15acb2dda8acc84e1046fb384b4102d922dcce3..e2a13d7762d9beb17c017ef5c359dfc39fe3e297 100644
--- a/dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/OaiErrorType.java
+++ b/dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/OaiErrorType.java
@@ -1,4 +1,4 @@
-package at.tuwien.oaipmh;
+package at.ac.tuwien.ifs.dbrepo.oaipmh;
 
 import lombok.Getter;
 
diff --git a/dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/OaiListIdentifiersParameters.java b/dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/OaiListIdentifiersParameters.java
similarity index 97%
rename from dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/OaiListIdentifiersParameters.java
rename to dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/OaiListIdentifiersParameters.java
index 721175ed17359a1f680931dee4ee763d6cf7dc9c..d55f1b994f8982c9c1b2f369d54822d38f1a4fb8 100644
--- a/dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/OaiListIdentifiersParameters.java
+++ b/dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/OaiListIdentifiersParameters.java
@@ -1,4 +1,4 @@
-package at.tuwien.oaipmh;
+package at.ac.tuwien.ifs.dbrepo.oaipmh;
 
 import lombok.*;
 import org.apache.commons.lang3.StringUtils;
diff --git a/dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/OaiListRecordsParameters.java b/dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/OaiListRecordsParameters.java
similarity index 97%
rename from dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/OaiListRecordsParameters.java
rename to dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/OaiListRecordsParameters.java
index a18f0b0aec1e50b8fd814e8221c15c89ff0cb8ab..b7eb9ce37ed359625275b8a3d09c5629a0a57de7 100644
--- a/dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/OaiListRecordsParameters.java
+++ b/dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/OaiListRecordsParameters.java
@@ -1,4 +1,4 @@
-package at.tuwien.oaipmh;
+package at.ac.tuwien.ifs.dbrepo.oaipmh;
 
 import lombok.*;
 import org.apache.commons.lang3.StringUtils;
diff --git a/dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/OaiRecordParameters.java b/dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/OaiRecordParameters.java
similarity index 93%
rename from dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/OaiRecordParameters.java
rename to dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/OaiRecordParameters.java
index da0433c0b67964af3d75c8dba5577f276c111bb5..3b24e111dd91ab618377b378b7a5025de376227a 100644
--- a/dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/OaiRecordParameters.java
+++ b/dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/OaiRecordParameters.java
@@ -1,4 +1,4 @@
-package at.tuwien.oaipmh;
+package at.ac.tuwien.ifs.dbrepo.oaipmh;
 
 import lombok.*;
 
diff --git a/dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/RequestParameters.java b/dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/RequestParameters.java
similarity index 90%
rename from dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/RequestParameters.java
rename to dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/RequestParameters.java
index 3f3d9f1a0468f006a24a0467c0a11f09671d1035..1af3449b1e1882d24a169e488e83a28739d35cd3 100644
--- a/dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/RequestParameters.java
+++ b/dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/RequestParameters.java
@@ -1,4 +1,4 @@
-package at.tuwien.oaipmh;
+package at.ac.tuwien.ifs.dbrepo.oaipmh;
 
 import org.apache.commons.lang3.StringUtils;
 
diff --git a/dbrepo-metadata-service/pom.xml b/dbrepo-metadata-service/pom.xml
index 7e140e4bd43eae6f94c98cdc5d73ed187e56002f..3dacfc7e94d4107d24133eb08a022d859edd1bd8 100644
--- a/dbrepo-metadata-service/pom.xml
+++ b/dbrepo-metadata-service/pom.xml
@@ -40,7 +40,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <mapstruct.version>1.5.5.Final</mapstruct.version>
+        <mapstruct.version>1.6.3</mapstruct.version>
         <rabbitmq.version>5.20.0</rabbitmq.version>
         <commons-io.version>2.17.0</commons-io.version>
         <commons-validator.version>1.8.0</commons-validator.version>
diff --git a/dbrepo-metadata-service/repositories/pom.xml b/dbrepo-metadata-service/repositories/pom.xml
index f7759c5757e2ac744fed70977151b295c2251479..3bc1da72f57821ddc2c1cc1b226a55053c4e30c5 100644
--- a/dbrepo-metadata-service/repositories/pom.xml
+++ b/dbrepo-metadata-service/repositories/pom.xml
@@ -27,30 +27,4 @@
 
     </dependencies>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <source>${java.version}</source>
-                    <target>${java.version}</target>
-                    <annotationProcessorPaths>
-                        <path>
-                            <groupId>org.projectlombok</groupId>
-                            <artifactId>lombok</artifactId>
-                            <version>${lombok.version}</version>
-                        </path>
-                        <!-- keep this order https://stackoverflow.com/questions/47676369/mapstruct-and-lombok-not-working-together#answer-65021876 -->
-                        <path>
-                            <groupId>org.mapstruct</groupId>
-                            <artifactId>mapstruct-processor</artifactId>
-                            <version>${mapstruct.version}</version>
-                        </path>
-                    </annotationProcessorPaths>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
 </project>
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/MetadataMapper.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/mapper/MetadataMapper.java
similarity index 86%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/MetadataMapper.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/mapper/MetadataMapper.java
index 87dfb2765e3ff6e15cc9decd9389309051def43c..324868bed11f7a6bfeceb867b987f674fc8c1fa6 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/MetadataMapper.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/mapper/MetadataMapper.java
@@ -1,78 +1,78 @@
-package at.tuwien.mapper;
-
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.CreateContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.DataTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageDto;
-import at.ac.tuwien.ifs.dbrepo.api.crossref.CrossrefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.CreateTableColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.ConceptDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.ConceptSaveDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.UnitDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.UnitSaveDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.ConstraintsDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.CreateTableConstraintsDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.ForeignKeyBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.ForeignKeyDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.ForeignKeyReferenceDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.ReferenceTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.primary.PrimaryKeyDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.unique.UniqueDto;
-import at.ac.tuwien.ifs.dbrepo.api.datacite.doi.*;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.CreateDashboardDto;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.PermissionTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.*;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.ld.LdCreatorDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.ld.LdDatasetDto;
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.UserCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.OrcidDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.OrcidAffiliationGroupDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group.OrcidEmploymentSummaryDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group.summary.organization.disambiguated.OrcidDisambiguatedDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group.summary.organization.disambiguated.OrcidDisambiguatedSourceTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.ror.RorDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.EntityDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.OntologyBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.OntologyCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.OntologyDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.external.ExternalMetadataDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.external.ExternalResultType;
-import at.ac.tuwien.ifs.dbrepo.api.user.external.affiliation.ExternalAffiliationDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
-import at.ac.tuwien.ifs.dbrepo.entity.container.image.ContainerImage;
-import at.ac.tuwien.ifs.dbrepo.entity.container.image.DataType;
-import at.ac.tuwien.ifs.dbrepo.entity.database.*;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumn;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnConcept;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnUnit;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.Constraints;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.foreignKey.ForeignKey;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.foreignKey.ForeignKeyReference;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.foreignKey.ReferenceType;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.primaryKey.PrimaryKey;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.unique.Unique;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.*;
-import at.ac.tuwien.ifs.dbrepo.entity.maintenance.BannerMessage;
-import at.ac.tuwien.ifs.dbrepo.entity.maintenance.BannerMessageType;
-import at.ac.tuwien.ifs.dbrepo.entity.semantics.Ontology;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
+package at.ac.tuwien.ifs.dbrepo.mapper;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.CreateContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.DataTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.crossref.CrossrefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.CreateTableColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.ConceptDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.ConceptSaveDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.UnitDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.UnitSaveDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.ConstraintsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.CreateTableConstraintsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.ForeignKeyBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.ForeignKeyDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.ForeignKeyReferenceDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.ReferenceTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.primary.PrimaryKeyDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.unique.UniqueDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.CreateDashboardDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.PermissionTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.ld.LdCreatorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.ld.LdDatasetDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.UserCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.OrcidDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.OrcidAffiliationGroupDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group.OrcidEmploymentSummaryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group.summary.organization.disambiguated.OrcidDisambiguatedDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group.summary.organization.disambiguated.OrcidDisambiguatedSourceTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.ror.RorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.EntityDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.OntologyBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.OntologyCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.OntologyDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.external.ExternalMetadataDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.external.ExternalResultType;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.external.affiliation.ExternalAffiliationDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.Container;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.image.ContainerImage;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.image.DataType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.*;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumn;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnConcept;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnUnit;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.Constraints;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.foreignKey.ForeignKey;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.foreignKey.ForeignKeyReference;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.foreignKey.ReferenceType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.primaryKey.PrimaryKey;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.unique.Unique;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.*;
+import at.ac.tuwien.ifs.dbrepo.core.entity.maintenance.BannerMessage;
+import at.ac.tuwien.ifs.dbrepo.core.entity.maintenance.BannerMessageType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.semantics.Ontology;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
 import org.keycloak.representations.AccessTokenResponse;
 import org.keycloak.representations.idm.UserRepresentation;
 import org.mapstruct.*;
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/SparqlMapper.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/mapper/SparqlMapper.java
similarity index 97%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/SparqlMapper.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/mapper/SparqlMapper.java
index a38ce9ce2dcfa53d5aa2ffc11b4a72c41db2b860..2ca00f05dbef64403a9a25c5603e4e8ebe951bf4 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/SparqlMapper.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/mapper/SparqlMapper.java
@@ -1,6 +1,6 @@
-package at.tuwien.mapper;
+package at.ac.tuwien.ifs.dbrepo.mapper;
 
-import at.ac.tuwien.ifs.dbrepo.entity.semantics.Ontology;
+import at.ac.tuwien.ifs.dbrepo.core.entity.semantics.Ontology;
 import org.mapstruct.Mapper;
 
 import java.util.List;
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/BannerMessageRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/BannerMessageRepository.java
similarity index 72%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/BannerMessageRepository.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/BannerMessageRepository.java
index 692d367a1b99a638546b646405415c9f9d5ff44d..655b530bb62b2ef13b2a414295f773b2af9514e6 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/BannerMessageRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/BannerMessageRepository.java
@@ -1,6 +1,6 @@
-package at.tuwien.repository;
+package at.ac.tuwien.ifs.dbrepo.repository;
 
-import at.ac.tuwien.ifs.dbrepo.entity.maintenance.BannerMessage;
+import at.ac.tuwien.ifs.dbrepo.core.entity.maintenance.BannerMessage;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ConceptRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/ConceptRepository.java
similarity index 71%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ConceptRepository.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/ConceptRepository.java
index bbbe6bb74385bffd3ce0ebfcf5729adf7e7e2459..546243b1ac1ec95ee9d7c09d5124505ef5a8b0ff 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ConceptRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/ConceptRepository.java
@@ -1,6 +1,6 @@
-package at.tuwien.repository;
+package at.ac.tuwien.ifs.dbrepo.repository;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnConcept;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnConcept;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ContainerRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/ContainerRepository.java
similarity index 81%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ContainerRepository.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/ContainerRepository.java
index 3c19437149465669f0f339406b3a9681e1e2e72a..9d258ed78158ec9e5d09fcdf1c3263d9dffc3c38 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ContainerRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/ContainerRepository.java
@@ -1,6 +1,6 @@
-package at.tuwien.repository;
+package at.ac.tuwien.ifs.dbrepo.repository;
 
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.Container;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/DatabaseRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/DatabaseRepository.java
similarity index 87%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/DatabaseRepository.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/DatabaseRepository.java
index 38415a7464850627e47edee9172118f6dc19be4f..2d61108679fffd08c13660d63e91a5e9a1127050 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/DatabaseRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/DatabaseRepository.java
@@ -1,6 +1,6 @@
-package at.tuwien.repository;
+package at.ac.tuwien.ifs.dbrepo.repository;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/IdentifierRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/IdentifierRepository.java
similarity index 91%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/IdentifierRepository.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/IdentifierRepository.java
index 19143ee2227c262c3b43d5f3759d5b080502700b..4011a8d1683329af5181d387b6031cefa8fd461b 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/IdentifierRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/IdentifierRepository.java
@@ -1,6 +1,6 @@
-package at.tuwien.repository;
+package at.ac.tuwien.ifs.dbrepo.repository;
 
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.Identifier;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Identifier;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ImageRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/ImageRepository.java
similarity index 77%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ImageRepository.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/ImageRepository.java
index 137eb8f3987cb0df24e7827ac0dfbcebddb6d908..55af367a638bdee8a10827675962fb1d820582c9 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ImageRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/ImageRepository.java
@@ -1,6 +1,6 @@
-package at.tuwien.repository;
+package at.ac.tuwien.ifs.dbrepo.repository;
 
-import at.ac.tuwien.ifs.dbrepo.entity.container.image.ContainerImage;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.image.ContainerImage;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/LicenseRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/LicenseRepository.java
similarity index 73%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/LicenseRepository.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/LicenseRepository.java
index 8630253d7328289cdb61d4cd464a1603d12290f8..e04b1ffb7e02c09f070e5ff804ef254fc129a788 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/LicenseRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/LicenseRepository.java
@@ -1,6 +1,6 @@
-package at.tuwien.repository;
+package at.ac.tuwien.ifs.dbrepo.repository;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.License;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.License;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/OntologyRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/OntologyRepository.java
similarity index 78%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/OntologyRepository.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/OntologyRepository.java
index 9849fd819dd0d4f47b6d8c81a9e5e37feef40410..35460fc0507cfc40110b28e99f457a6f9efe2b4c 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/OntologyRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/OntologyRepository.java
@@ -1,6 +1,6 @@
-package at.tuwien.repository;
+package at.ac.tuwien.ifs.dbrepo.repository;
 
-import at.ac.tuwien.ifs.dbrepo.entity.semantics.Ontology;
+import at.ac.tuwien.ifs.dbrepo.core.entity.semantics.Ontology;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/TableRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/TableRepository.java
similarity index 69%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/TableRepository.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/TableRepository.java
index 0ccacc8b9424e2f9ce3e3a46cdd04f677cf86079..e6d36701010c01e27fd4a856096f62f392ec9924 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/TableRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/TableRepository.java
@@ -1,6 +1,6 @@
-package at.tuwien.repository;
+package at.ac.tuwien.ifs.dbrepo.repository;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/UnitRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/UnitRepository.java
similarity index 71%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/UnitRepository.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/UnitRepository.java
index ebdea2bc03cea96415e9e72b682e978305d2611a..ed4c6c778cbc16c886a68efda3ebb0f797b8b6cc 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/UnitRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/UnitRepository.java
@@ -1,6 +1,6 @@
-package at.tuwien.repository;
+package at.ac.tuwien.ifs.dbrepo.repository;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnUnit;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnUnit;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/UserRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/UserRepository.java
similarity index 80%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/UserRepository.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/UserRepository.java
index c6790962857df0637b71eeb5e23813eb8b100f5e..f270810ac1f37358baf6ddbe10420a9f555ab50d 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/UserRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/UserRepository.java
@@ -1,6 +1,6 @@
-package at.tuwien.repository;
+package at.ac.tuwien.ifs.dbrepo.repository;
 
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ViewRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/ViewRepository.java
similarity index 71%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ViewRepository.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/ViewRepository.java
index 1efc118bf7942b5d0f3bfccc2864d9829a65d12f..d35ed6e337cd3a8147942386e32a27ff22c3f6bb 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ViewRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/ViewRepository.java
@@ -1,6 +1,6 @@
-package at.tuwien.repository;
+package at.ac.tuwien.ifs.dbrepo.repository;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.View;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.View;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/utils/EnumToStringConverter.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/utils/EnumToStringConverter.java
similarity index 92%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/utils/EnumToStringConverter.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/utils/EnumToStringConverter.java
index 2e53ae6cdc17dcf9b915bc9aef3793701cba98e8..158d5be8087253b6ccc74d88394f0017729f52a1 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/utils/EnumToStringConverter.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/utils/EnumToStringConverter.java
@@ -1,4 +1,4 @@
-package at.tuwien.utils;
+package at.ac.tuwien.ifs.dbrepo.utils;
 
 import org.mapstruct.TargetType;
 
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/DbrepoMetadataServiceApplication.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/DbrepoMetadataServiceApplication.java
similarity index 87%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/DbrepoMetadataServiceApplication.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/DbrepoMetadataServiceApplication.java
index 21a98f9781d89b62072b8699a884b10a327c657c..266ebd57b441fc833b673c97c210f957631d1c32 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/DbrepoMetadataServiceApplication.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/DbrepoMetadataServiceApplication.java
@@ -1,4 +1,4 @@
-package at.tuwien;
+package at.ac.tuwien.ifs.dbrepo;
 
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -9,7 +9,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
 
 @EnableJpaAuditing
 @EnableTransactionManagement
-@EntityScan(basePackages = {"at.ac.tuwien.ifs.dbrepo.entity"})
+@EntityScan(basePackages = {"at.ac.tuwien.ifs.dbrepo.core.entity"})
 @EnableJpaRepositories(basePackages = {"at.tuwien.repository"})
 @SpringBootApplication
 public class DbrepoMetadataServiceApplication {
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/config/MvcConfig.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/config/MvcConfig.java
similarity index 71%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/config/MvcConfig.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/config/MvcConfig.java
index 6bdb80973176bc7ae5722b932e7f7b1a2a183d45..70ed7ea611f7c5aa21e72b77a3f9353ba95f4c22 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/config/MvcConfig.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/config/MvcConfig.java
@@ -1,7 +1,7 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
-import at.tuwien.converters.IdentifierStatusTypeDtoConverter;
-import at.tuwien.converters.IdentifierTypeDtoConverter;
+import at.ac.tuwien.ifs.dbrepo.converters.IdentifierStatusTypeDtoConverter;
+import at.ac.tuwien.ifs.dbrepo.converters.IdentifierTypeDtoConverter;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.format.FormatterRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/config/SwaggerConfig.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/config/SwaggerConfig.java
similarity index 98%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/config/SwaggerConfig.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/config/SwaggerConfig.java
index 7830213b8ebe029c4a314601ce8c76417e22c987..21881faa1ff4f29b677d0596c8ea8148895ac238 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/config/SwaggerConfig.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/config/SwaggerConfig.java
@@ -1,4 +1,4 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import io.swagger.v3.oas.models.ExternalDocumentation;
 import io.swagger.v3.oas.models.OpenAPI;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/converters/IdentifierStatusTypeDtoConverter.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/converters/IdentifierStatusTypeDtoConverter.java
similarity index 75%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/converters/IdentifierStatusTypeDtoConverter.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/converters/IdentifierStatusTypeDtoConverter.java
index 26e36a9b7e93c2b599b06f5fcb3da1f6a239e476..cb59169cfd0e3078b620ca5b4d8291f4849d26b1 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/converters/IdentifierStatusTypeDtoConverter.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/converters/IdentifierStatusTypeDtoConverter.java
@@ -1,6 +1,6 @@
-package at.tuwien.converters;
+package at.ac.tuwien.ifs.dbrepo.converters;
 
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierStatusTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierStatusTypeDto;
 import org.springframework.core.convert.converter.Converter;
 import org.springframework.stereotype.Component;
 
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/converters/IdentifierTypeDtoConverter.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/converters/IdentifierTypeDtoConverter.java
similarity index 75%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/converters/IdentifierTypeDtoConverter.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/converters/IdentifierTypeDtoConverter.java
index dd8ff85cc720f2124be70ba6858da6978cfba540..6c0fc163bd729265cce077d844b1b361c8e45ac3 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/converters/IdentifierTypeDtoConverter.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/converters/IdentifierTypeDtoConverter.java
@@ -1,6 +1,6 @@
-package at.tuwien.converters;
+package at.ac.tuwien.ifs.dbrepo.converters;
 
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierTypeDto;
 import org.springframework.core.convert.converter.Converter;
 import org.springframework.stereotype.Component;
 
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/AbstractEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/AbstractEndpoint.java
similarity index 92%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/AbstractEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/AbstractEndpoint.java
index ddbc125a32becb3145c1888d7573b99d33f0b475..b6f5f65cf9821971ed253e1a769c4ed3dc7cbabc 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/AbstractEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/AbstractEndpoint.java
@@ -1,11 +1,11 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDetailsDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
-import at.ac.tuwien.ifs.dbrepo.entity.database.View;
-import at.ac.tuwien.ifs.dbrepo.exception.NotAllowedException;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDetailsDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.View;
+import at.ac.tuwien.ifs.dbrepo.core.exception.NotAllowedException;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.security.core.Authentication;
 
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/AccessEndpoint.java
similarity index 95%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/AccessEndpoint.java
index e1f5b8cc1095972d44ced48e9b5a872c0ef976bf..b8deb55db028780ef1a9bcbdcd6f22b94432fe62 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/AccessEndpoint.java
@@ -1,17 +1,17 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.CreateAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.AccessService;
-import at.tuwien.service.DashboardService;
-import at.tuwien.service.DatabaseService;
-import at.tuwien.service.UserService;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.CreateAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.AccessService;
+import at.ac.tuwien.ifs.dbrepo.service.DashboardService;
+import at.ac.tuwien.ifs.dbrepo.service.DatabaseService;
+import at.ac.tuwien.ifs.dbrepo.service.UserService;
 import io.micrometer.observation.annotation.Observed;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.Content;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ConceptEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/ConceptEndpoint.java
similarity index 90%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ConceptEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/ConceptEndpoint.java
index e9a26fca60cba01cb4ce2273a35f6b152ab5c197..a25f267df8715549f7cf0949f8f8a3057aec5f8a 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ConceptEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/ConceptEndpoint.java
@@ -1,8 +1,8 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.ConceptDto;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.ConceptService;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.ConceptDto;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.ConceptService;
 import io.micrometer.observation.annotation.Observed;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.ArraySchema;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ContainerEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/ContainerEndpoint.java
similarity index 92%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ContainerEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/ContainerEndpoint.java
index 3a5dd5281d6ee19b6e8ab54b98226ab3c166f5bb..ab5301c87ece25c79aab200ceadede6e0f79c850 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ContainerEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/ContainerEndpoint.java
@@ -1,15 +1,15 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.CreateContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
-import at.ac.tuwien.ifs.dbrepo.exception.ContainerAlreadyExistsException;
-import at.ac.tuwien.ifs.dbrepo.exception.ContainerNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageNotFoundException;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.ContainerService;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.CreateContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.Container;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ContainerAlreadyExistsException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ContainerNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.ContainerService;
 import io.micrometer.observation.annotation.Observed;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.ArraySchema;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/DatabaseEndpoint.java
similarity index 98%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/DatabaseEndpoint.java
index 4c14860c3b1a19be9e08fa0cd202ce5499389be1..242422496a61d9f99f651409eed67a8f04634fc5 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/DatabaseEndpoint.java
@@ -1,15 +1,14 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseModifyDashboardDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.*;
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.CreateDashboardResponseDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.CreateDashboardResponseDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.Container;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.*;
 import io.micrometer.observation.annotation.Observed;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.headers.Header;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/IdentifierEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/IdentifierEndpoint.java
similarity index 97%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/IdentifierEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/IdentifierEndpoint.java
index 14629943d4ed40ea01f3d1530e2db558f3909b9e..d6a4c7a7d5c039283a2ff81536164268973e9629 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/IdentifierEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/IdentifierEndpoint.java
@@ -1,19 +1,19 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.*;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.ld.LdDatasetDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.external.ExternalMetadataDto;
-import at.tuwien.config.EndpointConfig;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.Identifier;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.IdentifierStatusType;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.*;
-import at.tuwien.validation.EndpointValidator;
+import at.ac.tuwien.ifs.dbrepo.config.EndpointConfig;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.ld.LdDatasetDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.external.ExternalMetadataDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Identifier;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.IdentifierStatusType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.*;
+import at.ac.tuwien.ifs.dbrepo.validation.EndpointValidator;
 import io.micrometer.observation.annotation.Observed;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.ArraySchema;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ImageEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/ImageEndpoint.java
similarity index 91%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ImageEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/ImageEndpoint.java
index f72404e730d1464d58328c5521ef1f4d6a51946d..8d51d99bd1e8c36913ad39e0b6dee1fb16af3940 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ImageEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/ImageEndpoint.java
@@ -1,16 +1,16 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageChangeDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageDto;
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.image.ContainerImage;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageAlreadyExistsException;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageInvalidException;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageNotFoundException;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.ImageService;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageChangeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.image.ContainerImage;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageAlreadyExistsException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageInvalidException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.ImageService;
 import io.micrometer.observation.annotation.Observed;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.ArraySchema;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/LicenseEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/LicenseEndpoint.java
similarity index 91%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/LicenseEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/LicenseEndpoint.java
index 9e59eda922182162cb7d7c0d7f69e057c825c4df..125a030acae099f788f8459b100fb72773dc7098 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/LicenseEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/LicenseEndpoint.java
@@ -1,8 +1,8 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.LicenseDto;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.LicenseService;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.LicenseDto;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.LicenseService;
 import io.micrometer.observation.annotation.Observed;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.ArraySchema;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/MessageEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/MessageEndpoint.java
similarity index 92%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/MessageEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/MessageEndpoint.java
index e3fca284a170a45073a6ce3dddb49f67260e0440..6fed77bd5c41a141a6098b4c66a6d296dabf4c29 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/MessageEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/MessageEndpoint.java
@@ -1,14 +1,14 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.maintenance.BannerMessage;
-import at.ac.tuwien.ifs.dbrepo.exception.MessageNotFoundException;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.BannerMessageService;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.maintenance.BannerMessage;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MessageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.BannerMessageService;
 import io.micrometer.observation.annotation.Observed;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.ArraySchema;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/MetadataEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/MetadataEndpoint.java
similarity index 94%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/MetadataEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/MetadataEndpoint.java
index acdb205598a1dd5f8eed401969ef393ca44d1c89..4916ed8612ea04ba16375d645e3ac08424dc56a6 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/MetadataEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/MetadataEndpoint.java
@@ -1,10 +1,10 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.exception.IdentifierNotFoundException;
-import at.tuwien.oaipmh.OaiErrorType;
-import at.tuwien.oaipmh.OaiListIdentifiersParameters;
-import at.tuwien.oaipmh.OaiRecordParameters;
-import at.tuwien.service.MetadataService;
+import at.ac.tuwien.ifs.dbrepo.core.exception.IdentifierNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiErrorType;
+import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiListIdentifiersParameters;
+import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiRecordParameters;
+import at.ac.tuwien.ifs.dbrepo.service.MetadataService;
 import io.micrometer.observation.annotation.Observed;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/OntologyEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/OntologyEndpoint.java
similarity index 94%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/OntologyEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/OntologyEndpoint.java
index a1f6c3c169601c856c6b6023372b4ce4b8df2f87..8e2b5381df9af1a506a9d7b7fb2158e08e1122e1 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/OntologyEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/OntologyEndpoint.java
@@ -1,15 +1,15 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.*;
-import at.ac.tuwien.ifs.dbrepo.entity.semantics.Ontology;
-import at.ac.tuwien.ifs.dbrepo.exception.FilterBadRequestException;
-import at.ac.tuwien.ifs.dbrepo.exception.MalformedException;
-import at.ac.tuwien.ifs.dbrepo.exception.OntologyNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.UriMalformedException;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.EntityService;
-import at.tuwien.service.OntologyService;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.*;
+import at.ac.tuwien.ifs.dbrepo.core.entity.semantics.Ontology;
+import at.ac.tuwien.ifs.dbrepo.core.exception.FilterBadRequestException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.OntologyNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UriMalformedException;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.EntityService;
+import at.ac.tuwien.ifs.dbrepo.service.OntologyService;
 import io.micrometer.observation.annotation.Observed;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.ArraySchema;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/TableEndpoint.java
similarity index 96%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/TableEndpoint.java
index 7c9147fcb84e412b382cd4d2ea74cc00dd7b38f2..880bf62fb791ff4f684caddb78a44f83a926107c 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/TableEndpoint.java
@@ -1,21 +1,21 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.CreateTableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.ColumnSemanticsUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.EntityDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.TableColumnEntityDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.*;
-import at.tuwien.validation.EndpointValidator;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.CreateTableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.ColumnSemanticsUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.EntityDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.TableColumnEntityDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.*;
+import at.ac.tuwien.ifs.dbrepo.validation.EndpointValidator;
 import io.micrometer.observation.annotation.Observed;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.ArraySchema;
@@ -49,7 +49,6 @@ public class TableEndpoint extends AbstractEndpoint {
     private final UserService userService;
     private final TableService tableService;
     private final EntityService entityService;
-    private final AccessService accessService;
     private final MetadataMapper metadataMapper;
     private final DatabaseService databaseService;
     private final DashboardService dashboardService;
@@ -57,12 +56,11 @@ public class TableEndpoint extends AbstractEndpoint {
 
     @Autowired
     public TableEndpoint(UserService userService, TableService tableService, EntityService entityService,
-                         AccessService accessService, MetadataMapper metadataMapper, DatabaseService databaseService,
+                         MetadataMapper metadataMapper, DatabaseService databaseService,
                          DashboardService dashboardService, EndpointValidator endpointValidator) {
         this.userService = userService;
         this.tableService = tableService;
         this.entityService = entityService;
-        this.accessService = accessService;
         this.metadataMapper = metadataMapper;
         this.databaseService = databaseService;
         this.dashboardService = dashboardService;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/UnitEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/UnitEndpoint.java
similarity index 90%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/UnitEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/UnitEndpoint.java
index 6793e9c97094e465a8b99a42b588e75eefa87dca..90b9cacf47e177374f0c43cbdb9ab70b2c888090 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/UnitEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/UnitEndpoint.java
@@ -1,8 +1,8 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.UnitDto;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.UnitService;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.UnitDto;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.UnitService;
 import io.micrometer.observation.annotation.Observed;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.ArraySchema;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/UserEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/UserEndpoint.java
similarity index 93%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/UserEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/UserEndpoint.java
index 8d322830d13ebbdfe4c768150a6dfafaa66df6d8..4bf7f2d976211cdeca66992536f67c6ea40026b6 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/UserEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/UserEndpoint.java
@@ -1,16 +1,16 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.auth.CreateUserDto;
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.NotAllowedException;
-import at.ac.tuwien.ifs.dbrepo.exception.UserNotFoundException;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.UserService;
+import at.ac.tuwien.ifs.dbrepo.core.api.auth.CreateUserDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.NotAllowedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UserNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.UserService;
 import io.micrometer.observation.annotation.Observed;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.ArraySchema;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ViewEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/ViewEndpoint.java
similarity index 95%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ViewEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/ViewEndpoint.java
index 1b4d91b8926b339ccef1d3d7bb38543d11d2278a..bc5033821e37ec205985b8e3eaf9dd40f1f5109b 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ViewEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/ViewEndpoint.java
@@ -1,19 +1,19 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.CreateViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
-import at.ac.tuwien.ifs.dbrepo.entity.database.View;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.DashboardService;
-import at.tuwien.service.DatabaseService;
-import at.tuwien.service.UserService;
-import at.tuwien.service.ViewService;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.CreateViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.View;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.DashboardService;
+import at.ac.tuwien.ifs.dbrepo.service.DatabaseService;
+import at.ac.tuwien.ifs.dbrepo.service.UserService;
+import at.ac.tuwien.ifs.dbrepo.service.ViewService;
 import io.micrometer.observation.annotation.Observed;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.ArraySchema;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/handlers/ApiExceptionHandler.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/handlers/ApiExceptionHandler.java
similarity index 99%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/handlers/ApiExceptionHandler.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/handlers/ApiExceptionHandler.java
index 82711a4b481093d082540ab8032683f0f9dd9099..0d4a6170016a3f138d734e872939905e5e17278d 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/handlers/ApiExceptionHandler.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/handlers/ApiExceptionHandler.java
@@ -1,7 +1,7 @@
-package at.tuwien.handlers;
+package at.ac.tuwien.ifs.dbrepo.handlers;
 
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import com.auth0.jwt.exceptions.TokenExpiredException;
 import io.swagger.v3.oas.annotations.Hidden;
 import jakarta.ws.rs.NotAuthorizedException;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/validation/EndpointValidator.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/validation/EndpointValidator.java
similarity index 94%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/validation/EndpointValidator.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/validation/EndpointValidator.java
index 5a9e59138c729d48b84111371f61ab4545d92e34..8068a8d734102988195943163733b0e2cb35cd5f 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/validation/EndpointValidator.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/validation/EndpointValidator.java
@@ -1,19 +1,19 @@
-package at.tuwien.validation;
+package at.ac.tuwien.ifs.dbrepo.validation;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.CreateTableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.SortType;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.CreateTableColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierSaveDto;
-import at.tuwien.endpoints.AbstractEndpoint;
-import at.ac.tuwien.ifs.dbrepo.entity.database.AccessType;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.service.AccessService;
-import at.tuwien.service.UserService;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.CreateTableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.SortType;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.CreateTableColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierSaveDto;
+import at.ac.tuwien.ifs.dbrepo.endpoints.AbstractEndpoint;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.AccessType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.service.AccessService;
+import at.ac.tuwien.ifs.dbrepo.service.UserService;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.validator.GenericValidator;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/ApplicationIntegrationTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/ApplicationIntegrationTest.java
similarity index 95%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/ApplicationIntegrationTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/ApplicationIntegrationTest.java
index 33c7bc76c552c70989dbc4ffc39e317fdb5826ac..49b18a76c55556955391ec6338b01e74005dd1c9 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/ApplicationIntegrationTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/ApplicationIntegrationTest.java
@@ -1,4 +1,4 @@
-package at.tuwien;
+package at.ac.tuwien.ifs.dbrepo;
 
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/config/ObjectMapperConfig.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/ObjectMapperConfig.java
similarity index 95%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/config/ObjectMapperConfig.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/ObjectMapperConfig.java
index 6cbf682c8d26d93fef6884a45159a8f238e6f953..508540f52a345246feec8269f351377063d02bdd 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/config/ObjectMapperConfig.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/ObjectMapperConfig.java
@@ -1,4 +1,4 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.SerializationFeature;
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/config/RabbitConfig.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/RabbitConfig.java
similarity index 91%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/config/RabbitConfig.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/RabbitConfig.java
index 059d4beeb66eadb4005e20eeed9900fa0e5739ff..3dddb8cf33d8adade6efc587daf0d50dec057acb 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/config/RabbitConfig.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/RabbitConfig.java
@@ -1,6 +1,6 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
-import at.ac.tuwien.ifs.dbrepo.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.Getter;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Value;
@@ -11,6 +11,8 @@ import org.springframework.http.client.support.BasicAuthenticationInterceptor;
 import org.springframework.web.client.RestTemplate;
 import org.springframework.web.util.DefaultUriBuilderFactory;
 
+import java.io.IOException;
+
 @Getter
 @Log4j2
 @Configuration
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/converters/IdentifierStatusTypeDtoConverterUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/converters/IdentifierStatusTypeDtoConverterUnitTest.java
similarity index 73%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/converters/IdentifierStatusTypeDtoConverterUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/converters/IdentifierStatusTypeDtoConverterUnitTest.java
index 20ca4650a50c010ee0fab113ab919e61c94ade82..20f1f615eb786b1f44697f9fa7a50b2671a3baa2 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/converters/IdentifierStatusTypeDtoConverterUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/converters/IdentifierStatusTypeDtoConverterUnitTest.java
@@ -1,28 +1,24 @@
-package at.tuwien.converters;
+package at.ac.tuwien.ifs.dbrepo.converters;
 
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierStatusTypeDto;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierStatusTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 
+import java.io.IOException;
+
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 
 @Log4j2
 @SpringBootTest
-public class IdentifierStatusTypeDtoConverterUnitTest extends AbstractUnitTest {
+public class IdentifierStatusTypeDtoConverterUnitTest extends BaseTest {
 
     @Autowired
     private IdentifierStatusTypeDtoConverter identifierStatusTypeDtoConverter;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void identifierStatusTypeDtoConverter_succeeds() {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/converters/IdentifierTypeDtoConverterUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/converters/IdentifierTypeDtoConverterUnitTest.java
similarity index 73%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/converters/IdentifierTypeDtoConverterUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/converters/IdentifierTypeDtoConverterUnitTest.java
index 72d14ea47bfe77987634e429347e65c520a3d098..1d73cc34452a120c9da246457693fff9dd6615f4 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/converters/IdentifierTypeDtoConverterUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/converters/IdentifierTypeDtoConverterUnitTest.java
@@ -1,28 +1,24 @@
-package at.tuwien.converters;
+package at.ac.tuwien.ifs.dbrepo.converters;
 
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierTypeDto;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 
+import java.io.IOException;
+
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 
 @Log4j2
 @SpringBootTest
-public class IdentifierTypeDtoConverterUnitTest extends AbstractUnitTest {
+public class IdentifierTypeDtoConverterUnitTest extends BaseTest {
 
     @Autowired
     private IdentifierTypeDtoConverter identifierTypeDtoConverter;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void IdentifierTypeDtoConverter_succeeds() {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/AbstractEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/AbstractEndpointUnitTest.java
similarity index 80%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/AbstractEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/AbstractEndpointUnitTest.java
index 467e58d37517c990b4233217123eb339e6ce29e0..db1c899c4d68a640c5871901084db52878519639 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/AbstractEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/AbstractEndpointUnitTest.java
@@ -1,9 +1,8 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDetailsDto;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDetailsDto;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -18,16 +17,11 @@ import static org.junit.jupiter.api.Assertions.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class AbstractEndpointUnitTest extends AbstractUnitTest {
+public class AbstractEndpointUnitTest extends BaseTest {
 
     @Autowired
     private AccessEndpoint accessEndpoint;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void hasRole_noPrincipal_fails() {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/AccessEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/AccessEndpointUnitTest.java
similarity index 93%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/AccessEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/AccessEndpointUnitTest.java
index 4097363081e14d6b7bc1de4d15e39d0933d46382..357aa6daa50da9cd34e1b99f26683760fe0d7db5 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/AccessEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/AccessEndpointUnitTest.java
@@ -1,19 +1,18 @@
-package at.tuwien.endpoints;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseAccessDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.AccessService;
-import at.tuwien.service.DashboardService;
-import at.tuwien.service.DatabaseService;
-import at.tuwien.service.UserService;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.AccessService;
+import at.ac.tuwien.ifs.dbrepo.service.DashboardService;
+import at.ac.tuwien.ifs.dbrepo.service.DatabaseService;
+import at.ac.tuwien.ifs.dbrepo.service.UserService;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,6 +26,7 @@ import org.springframework.security.test.context.support.WithAnonymousUser;
 import org.springframework.security.test.context.support.WithMockUser;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 
+import java.io.IOException;
 import java.security.Principal;
 import java.util.List;
 import java.util.UUID;
@@ -38,7 +38,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class AccessEndpointUnitTest extends AbstractUnitTest {
+public class AccessEndpointUnitTest extends BaseTest {
 
     @MockBean
     private AccessService accessService;
@@ -58,11 +58,6 @@ public class AccessEndpointUnitTest extends AbstractUnitTest {
     @Autowired
     private MetadataMapper metadataMapper;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithAnonymousUser
     public void create_anonymous_fails() {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ActuatorComponentTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ActuatorComponentTest.java
similarity index 84%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ActuatorComponentTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ActuatorComponentTest.java
index b1d0cfdfd105fd07fdefa05e4344beaecd93ff1d..f86a8c4e8b4641ad05d9d2b62a233b56df38953a 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ActuatorComponentTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ActuatorComponentTest.java
@@ -1,8 +1,7 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -11,6 +10,8 @@ import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 import org.springframework.test.web.servlet.MockMvc;
 
+import java.io.IOException;
+
 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
 import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
 import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
@@ -20,16 +21,11 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
 @ExtendWith(SpringExtension.class)
 @AutoConfigureMockMvc
 @SpringBootTest
-public class ActuatorComponentTest extends AbstractUnitTest {
+public class ActuatorComponentTest extends BaseTest {
 
     @Autowired
     private MockMvc mockMvc;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void actuatorInfo_succeeds() throws Exception {
         this.mockMvc.perform(get("/actuator/info"))
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ConceptEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ConceptEndpointUnitTest.java
similarity index 79%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ConceptEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ConceptEndpointUnitTest.java
index 2bc5f0f91b8806496cbda55148abb171ec9647e4..dc3fa63cd60ed1cf1ff6ea2e1ad865328cd9be50 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ConceptEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ConceptEndpointUnitTest.java
@@ -1,10 +1,9 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.ConceptDto;
-import at.tuwien.service.ConceptService;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.ConceptDto;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.service.ConceptService;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -16,15 +15,17 @@ import org.springframework.security.test.context.support.WithAnonymousUser;
 import org.springframework.security.test.context.support.WithMockUser;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 
+import java.io.IOException;
 import java.util.List;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.mockito.Mockito.when;
 
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class ConceptEndpointUnitTest extends AbstractUnitTest {
+public class ConceptEndpointUnitTest extends BaseTest {
 
     @MockBean
     private ConceptService conceptService;
@@ -32,11 +33,6 @@ public class ConceptEndpointUnitTest extends AbstractUnitTest {
     @Autowired
     private ConceptEndpoint conceptEndpoint;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithAnonymousUser
     public void findAllConcepts_anonymous_succeeds() {
@@ -70,5 +66,5 @@ public class ConceptEndpointUnitTest extends AbstractUnitTest {
         assertNotNull(body);
         assertEquals(2, body.size());
     }
-   
+
 }
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ContainerEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ContainerEndpointUnitTest.java
similarity index 88%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ContainerEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ContainerEndpointUnitTest.java
index 07cbc1c99e5390a49734d44bade7e8f7dd2e5d57..93849d1aea9c9cbca3d3d8ce1920e754b1dc6925 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ContainerEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ContainerEndpointUnitTest.java
@@ -1,16 +1,15 @@
-package at.tuwien.endpoints;
-
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.CreateContainerDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
-import at.ac.tuwien.ifs.dbrepo.exception.ContainerAlreadyExistsException;
-import at.ac.tuwien.ifs.dbrepo.exception.ContainerNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageNotFoundException;
-import at.tuwien.service.impl.ContainerServiceImpl;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.CreateContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.Container;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ContainerAlreadyExistsException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ContainerNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.service.impl.ContainerServiceImpl;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,6 +22,7 @@ import org.springframework.security.test.context.support.WithAnonymousUser;
 import org.springframework.security.test.context.support.WithMockUser;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 
+import java.io.IOException;
 import java.security.Principal;
 import java.util.List;
 import java.util.UUID;
@@ -34,7 +34,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @ExtendWith(SpringExtension.class)
 @SpringBootTest
-public class ContainerEndpointUnitTest extends AbstractUnitTest {
+public class ContainerEndpointUnitTest extends BaseTest {
 
     @MockBean
     private ContainerServiceImpl containerService;
@@ -42,11 +42,6 @@ public class ContainerEndpointUnitTest extends AbstractUnitTest {
     @Autowired
     private ContainerEndpoint containerEndpoint;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithAnonymousUser
     public void findById_anonymous_succeeds() throws ContainerNotFoundException {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/DatabaseEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/DatabaseEndpointUnitTest.java
similarity index 95%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/DatabaseEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/DatabaseEndpointUnitTest.java
index a3a6f983c792cecc80ee3cfd0110b7083a8f8fb6..bf6bd79352976f41455cb83cbb732a8376c7fa25 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/DatabaseEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/DatabaseEndpointUnitTest.java
@@ -1,14 +1,13 @@
-package at.tuwien.endpoints;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.*;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.service.*;
-import at.tuwien.service.impl.DatabaseServiceImpl;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.*;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.service.*;
+import at.ac.tuwien.ifs.dbrepo.service.impl.DatabaseServiceImpl;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,7 +33,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class DatabaseEndpointUnitTest extends AbstractUnitTest {
+public class DatabaseEndpointUnitTest extends BaseTest {
 
     @MockBean
     private BrokerService messageQueueService;
@@ -60,11 +59,6 @@ public class DatabaseEndpointUnitTest extends AbstractUnitTest {
     @Autowired
     private DatabaseEndpoint databaseEndpoint;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithAnonymousUser
     public void create_anonymous_fails() {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/IdentifierEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/IdentifierEndpointUnitTest.java
similarity index 98%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/IdentifierEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/IdentifierEndpointUnitTest.java
index 6af9ca1ffe006bffc5b55833b611b7ef54cfc310..00cd00277ad3bd9eace82e87bbd4847111198b27 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/IdentifierEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/IdentifierEndpointUnitTest.java
@@ -1,22 +1,20 @@
-package at.tuwien.endpoints;
-
-import at.ac.tuwien.ifs.dbrepo.api.identifier.*;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.ld.LdDatasetDto;
-import at.tuwien.config.EndpointConfig;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.Identifier;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.IdentifierType;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.DataServiceGateway;
-import at.tuwien.service.*;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.ld.LdDatasetDto;
+import at.ac.tuwien.ifs.dbrepo.config.EndpointConfig;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Identifier;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.IdentifierType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.DataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.service.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.junit.jupiter.params.ParameterizedTest;
@@ -37,7 +35,6 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
 
 import java.io.File;
 import java.io.IOException;
-import java.io.InputStream;
 import java.nio.charset.StandardCharsets;
 import java.security.Principal;
 import java.util.List;
@@ -50,7 +47,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @ExtendWith(SpringExtension.class)
 @SpringBootTest
-public class IdentifierEndpointUnitTest extends AbstractUnitTest {
+public class IdentifierEndpointUnitTest extends BaseTest {
 
     @MockBean
     private IdentifierService identifierService;
@@ -186,11 +183,6 @@ public class IdentifierEndpointUnitTest extends AbstractUnitTest {
         );
     }
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithAnonymousUser
     public void findAll_empty_succeeds() {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ImageEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ImageEndpointUnitTest.java
similarity index 88%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ImageEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ImageEndpointUnitTest.java
index a2f32fcf767baafaf92b64f278410de38184ed97..3a8edc222bf3829914e6b98bb7749743691edef8 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ImageEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ImageEndpointUnitTest.java
@@ -1,17 +1,16 @@
-package at.tuwien.endpoints;
-
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageChangeDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.image.ContainerImage;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageAlreadyExistsException;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageInvalidException;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageNotFoundException;
-import at.tuwien.service.impl.ImageServiceImpl;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageChangeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.image.ContainerImage;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageAlreadyExistsException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageInvalidException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.service.impl.ImageServiceImpl;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,6 +22,7 @@ import org.springframework.security.test.context.support.WithAnonymousUser;
 import org.springframework.security.test.context.support.WithMockUser;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 
+import java.io.IOException;
 import java.security.Principal;
 import java.util.List;
 import java.util.UUID;
@@ -33,7 +33,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @ExtendWith(SpringExtension.class)
 @SpringBootTest
-public class ImageEndpointUnitTest extends AbstractUnitTest {
+public class ImageEndpointUnitTest extends BaseTest {
 
     @MockBean
     private ImageServiceImpl imageService;
@@ -41,11 +41,6 @@ public class ImageEndpointUnitTest extends AbstractUnitTest {
     @Autowired
     private ImageEndpoint imageEndpoint;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithAnonymousUser
     public void findAll_anonymous_succeeds() {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/LicenseEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/LicenseEndpointUnitTest.java
similarity index 81%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/LicenseEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/LicenseEndpointUnitTest.java
index 066b215cd5c12b7d7acc9ae16aa78ace4ff67ae6..765d16dc834d717659f08eecaa81e1021cc75ce5 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/LicenseEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/LicenseEndpointUnitTest.java
@@ -1,10 +1,9 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.api.database.LicenseDto;
-import at.tuwien.repository.LicenseRepository;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.LicenseDto;
+import at.ac.tuwien.ifs.dbrepo.repository.LicenseRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,7 +22,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class LicenseEndpointUnitTest extends AbstractUnitTest {
+public class LicenseEndpointUnitTest extends BaseTest {
 
     @MockBean
     private LicenseRepository licenseRepository;
@@ -31,11 +30,6 @@ public class LicenseEndpointUnitTest extends AbstractUnitTest {
     @Autowired
     private LicenseEndpoint licenseEndpoint;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void list_succeeds() {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MessageEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/MessageEndpointUnitTest.java
similarity index 90%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MessageEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/MessageEndpointUnitTest.java
index 023beb37d2d006c7f0ffd7fe5be6fa5a12bdb5b7..e3ce1f25f94bdafe2de17431128ca9f8cb64afb1 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MessageEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/MessageEndpointUnitTest.java
@@ -1,14 +1,13 @@
-package at.tuwien.endpoints;
-
-import at.ac.tuwien.ifs.dbrepo.exception.MessageNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.maintenance.BannerMessage;
-import at.tuwien.service.BannerMessageService;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.maintenance.BannerMessage;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MessageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.service.BannerMessageService;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -29,7 +28,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class MessageEndpointUnitTest extends AbstractUnitTest {
+public class MessageEndpointUnitTest extends BaseTest {
 
     @MockBean
     private BannerMessageService bannerMessageService;
@@ -37,11 +36,6 @@ public class MessageEndpointUnitTest extends AbstractUnitTest {
     @Autowired
     private MessageEndpoint messageEndpoint;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithAnonymousUser
     public void list_anonymous_succeeds() {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MetadataEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/MetadataEndpointUnitTest.java
similarity index 92%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MetadataEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/MetadataEndpointUnitTest.java
index 53959172734e6406f994fe1f1614bd0169cd4334..012ca1f1c0dc4f8545959870357a96db674a8675 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MetadataEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/MetadataEndpointUnitTest.java
@@ -1,12 +1,11 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.tuwien.oaipmh.OaiListIdentifiersParameters;
-import at.tuwien.oaipmh.OaiRecordParameters;
-import at.tuwien.repository.IdentifierRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.tuwien.utils.XmlUtils;
+import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiListIdentifiersParameters;
+import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiRecordParameters;
+import at.ac.tuwien.ifs.dbrepo.repository.IdentifierRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.utils.XmlUtils;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,7 +26,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class MetadataEndpointUnitTest extends AbstractUnitTest {
+public class MetadataEndpointUnitTest extends BaseTest {
 
     @MockBean
     private IdentifierRepository identifierRepository;
@@ -35,11 +34,6 @@ public class MetadataEndpointUnitTest extends AbstractUnitTest {
     @Autowired
     private MetadataEndpoint metadataEndpoint;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithAnonymousUser
     public void identify_succeeds() {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/OntologyEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/OntologyEndpointUnitTest.java
similarity index 93%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/OntologyEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/OntologyEndpointUnitTest.java
index 1860fe90dc0d864b48c4b6f3ee58b332fc5c2abc..5cce9f955079329f360673127b74e9edaacbfdb7 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/OntologyEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/OntologyEndpointUnitTest.java
@@ -1,18 +1,17 @@
-package at.tuwien.endpoints;
-
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.*;
-import at.ac.tuwien.ifs.dbrepo.entity.semantics.Ontology;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.service.EntityService;
-import at.tuwien.service.OntologyService;
-import at.tuwien.service.UserService;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.*;
+import at.ac.tuwien.ifs.dbrepo.core.entity.semantics.Ontology;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.service.EntityService;
+import at.ac.tuwien.ifs.dbrepo.service.OntologyService;
+import at.ac.tuwien.ifs.dbrepo.service.UserService;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.apache.jena.sys.JenaSystem;
 import org.hibernate.HibernateException;
 import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,7 +33,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class OntologyEndpointUnitTest extends AbstractUnitTest {
+public class OntologyEndpointUnitTest extends BaseTest {
 
     @MockBean
     private OntologyService ontologyService;
@@ -53,11 +52,6 @@ public class OntologyEndpointUnitTest extends AbstractUnitTest {
         JenaSystem.init();
     }
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithAnonymousUser
     public void findAll_anonymous_succeeds() {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/TableEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/TableEndpointUnitTest.java
similarity index 95%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/TableEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/TableEndpointUnitTest.java
index f60428786cab0432b10f1da2f3a9da12e46a351d..97dd2f16e9f0eb5e59c979d97b7fb1ab14101573 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/TableEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/TableEndpointUnitTest.java
@@ -1,29 +1,28 @@
-package at.tuwien.endpoints;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.table.CreateTableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.CreateTableColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.ColumnSemanticsUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.CreateTableConstraintsDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.EntityDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.TableColumnEntityDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumn;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.service.*;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.tuwien.validation.EndpointValidator;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.CreateTableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.CreateTableColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.ColumnSemanticsUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.CreateTableConstraintsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.EntityDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.TableColumnEntityDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumn;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.service.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.validation.EndpointValidator;
 import lombok.extern.log4j.Log4j2;
 import org.apache.jena.sys.JenaSystem;
 import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.junit.jupiter.params.ParameterizedTest;
@@ -49,7 +48,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class TableEndpointUnitTest extends AbstractUnitTest {
+public class TableEndpointUnitTest extends BaseTest {
 
     @MockBean
     private DatabaseService databaseService;
@@ -57,21 +56,12 @@ public class TableEndpointUnitTest extends AbstractUnitTest {
     @MockBean
     private AccessService accessService;
 
-    @MockBean
-    private UnitService unitService;
-
-    @MockBean
-    private ConceptService conceptService;
-
     @MockBean
     private TableService tableService;
 
     @MockBean
     private UserService userService;
 
-    @MockBean
-    private DashboardService dashboardService;
-
     @MockBean
     private EntityService entityService;
 
@@ -104,11 +94,6 @@ public class TableEndpointUnitTest extends AbstractUnitTest {
         JenaSystem.init();
     }
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithAnonymousUser
     public void list_publicDataPrivateSchemaAnonymous_fails() {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/UnitEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/UnitEndpointUnitTest.java
similarity index 79%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/UnitEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/UnitEndpointUnitTest.java
index b9d2e39a61e5ad429ad4f2b9bffc0c5355234839..de54e96b7d75d81afa986bbaa4bb785a94a6cc10 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/UnitEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/UnitEndpointUnitTest.java
@@ -1,10 +1,9 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.UnitDto;
-import at.tuwien.service.UnitService;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.UnitDto;
+import at.ac.tuwien.ifs.dbrepo.service.UnitService;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -18,13 +17,14 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
 
 import java.util.List;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.mockito.Mockito.when;
 
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class UnitEndpointUnitTest extends AbstractUnitTest {
+public class UnitEndpointUnitTest extends BaseTest {
 
     @MockBean
     private UnitService unitService;
@@ -32,11 +32,6 @@ public class UnitEndpointUnitTest extends AbstractUnitTest {
     @Autowired
     private UnitEndpoint unitEndpoint;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithAnonymousUser
     public void findAllUnits_anonymous_succeeds() {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/UserEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/UserEndpointUnitTest.java
similarity index 91%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/UserEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/UserEndpointUnitTest.java
index 39cad67016a7ab0e225061216eaf8cc45623c31c..05ab6e5d3a7cfa13865864fdc0c009a63c086bd4 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/UserEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/UserEndpointUnitTest.java
@@ -1,17 +1,16 @@
-package at.tuwien.endpoints;
-
-import at.ac.tuwien.ifs.dbrepo.api.auth.CreateUserDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.NotAllowedException;
-import at.ac.tuwien.ifs.dbrepo.exception.UserNotFoundException;
-import at.tuwien.service.UserService;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.auth.CreateUserDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.NotAllowedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UserNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.service.UserService;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -37,7 +36,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class UserEndpointUnitTest extends AbstractUnitTest {
+public class UserEndpointUnitTest extends BaseTest {
 
     @MockBean
     private UserService userService;
@@ -45,11 +44,6 @@ public class UserEndpointUnitTest extends AbstractUnitTest {
     @Autowired
     private UserEndpoint userEndpoint;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithAnonymousUser
     public void findAll_anonymous_succeeds() throws UserNotFoundException {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ViewEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ViewEndpointUnitTest.java
similarity index 94%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ViewEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ViewEndpointUnitTest.java
index 374b642b804edce75cc318c229e2577796636dc6..2673ea3068f775a188ac204c3e1ea1e168f3ff5e 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ViewEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ViewEndpointUnitTest.java
@@ -1,18 +1,17 @@
-package at.tuwien.endpoints;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.CreateViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
-import at.ac.tuwien.ifs.dbrepo.entity.database.View;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.service.*;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.CreateViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.View;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.service.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -35,7 +34,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class ViewEndpointUnitTest extends AbstractUnitTest {
+public class ViewEndpointUnitTest extends BaseTest {
 
     @MockBean
     private DatabaseService databaseService;
@@ -55,11 +54,6 @@ public class ViewEndpointUnitTest extends AbstractUnitTest {
     @Autowired
     private ViewEndpoint viewEndpoint;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithAnonymousUser
     public void findAll_publicAnonymous_succeeds() throws UserNotFoundException, AccessNotFoundException,
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/entities/EntitiesUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/entity/EntitiesUnitTest.java
similarity index 63%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/entities/EntitiesUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/entity/EntitiesUnitTest.java
index 0f3ddc336ce7617fdcc2654d96166dbbf11d4635..32f5b79f667b36135c06cb7f3447a36dd29d08c1 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/entities/EntitiesUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/entity/EntitiesUnitTest.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.entity;
+package at.ac.tuwien.ifs.dbrepo.core.entity;
 
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
 
@@ -9,7 +9,7 @@ import java.util.UUID;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 @Log4j2
-public class EntitiesUnitTest extends AbstractUnitTest {
+public class EntitiesUnitTest extends BaseTest {
 
     @Test
     public void uuidVersion_succeeds() {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/BrokerServiceGatewayUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/BrokerServiceGatewayUnitTest.java
similarity index 94%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/BrokerServiceGatewayUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/BrokerServiceGatewayUnitTest.java
index 16e8ba123caa7076470bee91ef1f6c1f98fe49fb..e8d2b0192303cf32a428759de306c5f437e87ebd 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/BrokerServiceGatewayUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/BrokerServiceGatewayUnitTest.java
@@ -1,8 +1,9 @@
-package at.tuwien.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.api.amqp.GrantExchangePermissionsDto;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.amqp.GrantExchangePermissionsDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.BrokerServiceConnectionException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.BrokerServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -25,7 +26,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class BrokerServiceGatewayUnitTest extends AbstractUnitTest {
+public class BrokerServiceGatewayUnitTest extends BaseTest {
 
     @MockBean
     @Qualifier("brokerRestTemplate")
@@ -36,8 +37,8 @@ public class BrokerServiceGatewayUnitTest extends AbstractUnitTest {
 
     private final GrantExchangePermissionsDto WRITE_ALL_PERMISSIONS = GrantExchangePermissionsDto.builder()
             .exchange("dbrepo")
-            .read("^(dbrepo\\.1\\..*)$") /* WRITE_ALL */
-            .write("^(dbrepo\\.1\\..*)$")
+            .read("^(dbrepo\\." + DATABASE_1_ID + "\\..*)$") /* WRITE_ALL */
+            .write("^(dbrepo\\." + DATABASE_1_ID + "\\..*)$")
             .build();
 
     @Test
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/CrossrefGatewayUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/CrossrefGatewayUnitTest.java
similarity index 81%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/CrossrefGatewayUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/CrossrefGatewayUnitTest.java
index 94ac4f62a79aed070d94a4b8408d4d65706e48a6..bbf0e453071c0db561ff3bcdd14e56bebb02bda9 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/CrossrefGatewayUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/CrossrefGatewayUnitTest.java
@@ -1,13 +1,12 @@
-package at.tuwien.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.api.crossref.CrossrefDto;
-import at.ac.tuwien.ifs.dbrepo.exception.DoiNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.api.crossref.CrossrefDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DoiNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.http.HttpEntity;
@@ -16,7 +15,6 @@ import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 import org.springframework.web.client.HttpServerErrorException;
-import org.springframework.web.client.ResourceAccessException;
 import org.springframework.web.client.RestTemplate;
 
 import static org.junit.jupiter.api.Assertions.assertThrows;
@@ -25,7 +23,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class CrossrefGatewayUnitTest extends AbstractUnitTest {
+public class CrossrefGatewayUnitTest extends BaseTest {
 
     @MockBean
     private RestTemplate restTemplate;
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/DashboardServiceGatewayUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/DashboardServiceGatewayUnitTest.java
similarity index 95%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/DashboardServiceGatewayUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/DashboardServiceGatewayUnitTest.java
index 55f42008b7a692dd161c465a1885338a2afda7f2..c1a60d0115d5c02e81ff49d13bcb6a486cccd12a 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/DashboardServiceGatewayUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/DashboardServiceGatewayUnitTest.java
@@ -1,10 +1,10 @@
-package at.tuwien.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.api.grafana.CreateDashboardResponseDto;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.PermissionTypeDto;
-import at.ac.tuwien.ifs.dbrepo.exception.DashboardServiceConnectionException;
-import at.ac.tuwien.ifs.dbrepo.exception.DashboardServiceException;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.CreateDashboardResponseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.PermissionTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DashboardServiceConnectionException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DashboardServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -21,7 +21,6 @@ import org.springframework.web.client.HttpClientErrorException;
 import org.springframework.web.client.HttpServerErrorException;
 import org.springframework.web.client.RestTemplate;
 
-import static at.ac.tuwien.ifs.dbrepo.test.BaseTest.DATABASE_2_CREATE_DASHBOARD_DTO;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.mockito.ArgumentMatchers.*;
@@ -31,7 +30,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class DashboardServiceGatewayUnitTest extends AbstractUnitTest {
+public class DashboardServiceGatewayUnitTest extends BaseTest {
 
     @MockBean
     @Qualifier("dashboardServiceRestTemplate")
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/DataServiceGatewayUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/DataServiceGatewayUnitTest.java
similarity index 98%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/DataServiceGatewayUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/DataServiceGatewayUnitTest.java
index 8acb7530bf2fc06508c4860ac9e15b5ea06e8bff..14df28608a18d6bddd5519abb67b8bcb20a09113 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/DataServiceGatewayUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/DataServiceGatewayUnitTest.java
@@ -1,13 +1,13 @@
-package at.tuwien.gateway;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableStatisticDto;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+package at.ac.tuwien.ifs.dbrepo.gateway;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableStatisticDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -32,7 +32,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class DataServiceGatewayUnitTest extends AbstractUnitTest {
+public class DataServiceGatewayUnitTest extends BaseTest {
 
     @MockBean
     @Qualifier("dataServiceRestTemplate")
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/KeycloakGatewayIntegrationTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/KeycloakGatewayIntegrationTest.java
similarity index 89%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/KeycloakGatewayIntegrationTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/KeycloakGatewayIntegrationTest.java
index 7fee23320eb34fb0e9e8d57902e5f03bae3bff1d..40d8eab970de1ae48e0fa39005cba88b7c9ae2bd 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/KeycloakGatewayIntegrationTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/KeycloakGatewayIntegrationTest.java
@@ -1,10 +1,10 @@
-package at.tuwien.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.UserNotFoundException;
-import at.tuwien.gateway.impl.KeycloakGatewayImpl;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.tuwien.utils.KeycloakUtils;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UserNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.gateway.impl.KeycloakGatewayImpl;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.utils.KeycloakUtils;
 import dasniko.testcontainers.keycloak.KeycloakContainer;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
@@ -20,15 +20,13 @@ import org.testcontainers.images.PullPolicy;
 import org.testcontainers.junit.jupiter.Container;
 import org.testcontainers.junit.jupiter.Testcontainers;
 
-import java.util.UUID;
-
 import static org.junit.jupiter.api.Assertions.*;
 
 @Log4j2
 @SpringBootTest
 @Testcontainers
 @ExtendWith(SpringExtension.class)
-public class KeycloakGatewayIntegrationTest extends AbstractUnitTest {
+public class KeycloakGatewayIntegrationTest extends BaseTest {
 
     @Autowired
     private KeycloakGatewayImpl keycloakGateway;
@@ -38,7 +36,6 @@ public class KeycloakGatewayIntegrationTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() {
-        genesis();
         /* auth service */
         keycloakUtils.deleteUser(USER_1_USERNAME);
     }
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/OrcidGatewayUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/OrcidGatewayUnitTest.java
similarity index 81%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/OrcidGatewayUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/OrcidGatewayUnitTest.java
index 63d8d5e9363238aeff5c4b3b0b9bec364cf13a47..31d8baeab55a9122b1ea7b252a59446a31aa58eb 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/OrcidGatewayUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/OrcidGatewayUnitTest.java
@@ -1,13 +1,12 @@
-package at.tuwien.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.OrcidDto;
-import at.ac.tuwien.ifs.dbrepo.exception.OrcidNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.OrcidDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.OrcidNotFoundException;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.http.HttpEntity;
@@ -16,16 +15,17 @@ import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 import org.springframework.web.client.HttpServerErrorException;
-import org.springframework.web.client.ResourceAccessException;
 import org.springframework.web.client.RestTemplate;
 
+import java.io.IOException;
+
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.mockito.Mockito.*;
 
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class OrcidGatewayUnitTest extends AbstractUnitTest {
+public class OrcidGatewayUnitTest extends BaseTest {
 
     @MockBean
     private RestTemplate restTemplate;
@@ -33,6 +33,9 @@ public class OrcidGatewayUnitTest extends AbstractUnitTest {
     @Autowired
     private OrcidGateway orcidGateway;
 
+    public OrcidGatewayUnitTest() throws IOException {
+    }
+
     @Test
     public void findByUrl_succeeds() throws OrcidNotFoundException {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/RorGatewayUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/RorGatewayUnitTest.java
similarity index 77%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/RorGatewayUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/RorGatewayUnitTest.java
index 259b132f489bbe93b4f73280dca2f9cef35d0379..b8b100c413761cbed6b57738146c1001345e70a6 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/RorGatewayUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/RorGatewayUnitTest.java
@@ -1,15 +1,18 @@
-package at.tuwien.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.api.ror.RorDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.ror.RorDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.RorNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.mock.mockito.MockBean;
-import org.springframework.http.*;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 import org.springframework.web.client.HttpServerErrorException;
 import org.springframework.web.client.RestTemplate;
@@ -20,7 +23,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class RorGatewayUnitTest extends AbstractUnitTest {
+public class RorGatewayUnitTest extends BaseTest {
 
     @MockBean
     private RestTemplate restTemplate;
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/SearchServiceGatewayUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/SearchServiceGatewayUnitTest.java
similarity index 93%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/SearchServiceGatewayUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/SearchServiceGatewayUnitTest.java
index 63a9dc407a04ecefdb2d9927ff063988e983041a..3ff4a3a508b19a2c29f10df1b9bcabfaf2448980 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/SearchServiceGatewayUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/SearchServiceGatewayUnitTest.java
@@ -1,8 +1,10 @@
-package at.tuwien.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseBriefDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DatabaseNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.SearchServiceConnectionException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.SearchServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -25,7 +27,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class SearchServiceGatewayUnitTest extends AbstractUnitTest {
+public class SearchServiceGatewayUnitTest extends BaseTest {
 
     @MockBean
     @Qualifier("searchServiceRestTemplate")
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/handlers/ApiExceptionHandlerTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/handlers/ApiExceptionHandlerTest.java
similarity index 98%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/handlers/ApiExceptionHandlerTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/handlers/ApiExceptionHandlerTest.java
index c458f0ee19033b4899a0851b64e518e4f52a0e59..7ab54f089c254c22b1f17af4622f6d65fe4a4044 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/handlers/ApiExceptionHandlerTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/handlers/ApiExceptionHandlerTest.java
@@ -1,8 +1,8 @@
-package at.tuwien.handlers;
+package at.ac.tuwien.ifs.dbrepo.handlers;
 
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import com.auth0.jwt.exceptions.TokenExpiredException;
 import jakarta.ws.rs.NotAuthorizedException;
 import lombok.extern.log4j.Log4j2;
@@ -23,14 +23,14 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.Optional;
 
-import static at.ac.tuwien.ifs.dbrepo.test.utils.EndpointUtils.getErrorCodes;
-import static at.ac.tuwien.ifs.dbrepo.test.utils.EndpointUtils.getExceptions;
+import static at.ac.tuwien.ifs.dbrepo.core.test.utils.EndpointUtils.getErrorCodes;
+import static at.ac.tuwien.ifs.dbrepo.core.test.utils.EndpointUtils.getExceptions;
 import static org.junit.jupiter.api.Assertions.*;
 
 @Log4j2
 @ExtendWith(SpringExtension.class)
 @SpringBootTest
-public class ApiExceptionHandlerTest extends AbstractUnitTest {
+public class ApiExceptionHandlerTest extends BaseTest {
 
     @Autowired
     private ApiExceptionHandler apiExceptionHandler;
@@ -49,7 +49,7 @@ public class ApiExceptionHandlerTest extends AbstractUnitTest {
             final Method method = optional.get();
             /* exception */
             Assertions.assertNotNull(exception.getDeclaredAnnotation(ResponseStatus.class).code());
-            Assertions.assertNotEquals(exception.getDeclaredAnnotation(ResponseStatus.class).code(), HttpStatus.INTERNAL_SERVER_ERROR);
+            Assertions.assertNotEquals(HttpStatus.INTERNAL_SERVER_ERROR, exception.getDeclaredAnnotation(ResponseStatus.class).code());
             Assertions.assertNotNull(exception.getDeclaredAnnotation(ResponseStatus.class).reason(), "Exception " + exception.getName() + " does not provide a reason code");
             assertTrue(errorCodes.contains(exception.getDeclaredAnnotation(ResponseStatus.class).reason()), "Exception code " + exception.getDeclaredAnnotation(ResponseStatus.class).reason() + " does have a reason code mapped in localized ui error messages");
             /* handler method */
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mapper/MetadataMapperUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mapper/MetadataMapperUnitTest.java
similarity index 92%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mapper/MetadataMapperUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mapper/MetadataMapperUnitTest.java
index 768a06c6dc78b691c399c6a47f560334cfcd5435..ef1ce49f094b436f0de25bbd6b6605a4b1b92373 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mapper/MetadataMapperUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mapper/MetadataMapperUnitTest.java
@@ -1,14 +1,11 @@
-package at.tuwien.mapper;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.View;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.Identifier;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.IdentifierType;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.mapper;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Identifier;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.IdentifierType;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.Arguments;
@@ -26,7 +23,7 @@ import static org.junit.jupiter.api.Assertions.*;
 
 @Log4j2
 @SpringBootTest
-public class MetadataMapperUnitTest extends AbstractUnitTest {
+public class MetadataMapperUnitTest extends BaseTest {
 
     private final DateTimeFormatter mariaDbFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss[.SSS]")
             .withZone(ZoneId.of("UTC"));
@@ -34,11 +31,6 @@ public class MetadataMapperUnitTest extends AbstractUnitTest {
     @Autowired
     private MetadataMapper metadataMapper;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void mapMariaDbInstant_succeeds() {
         final String timestamp = "2023-01-08 08:49:29";
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/ActuatorEndpointMvcTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/ActuatorEndpointMvcTest.java
similarity index 90%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/ActuatorEndpointMvcTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/ActuatorEndpointMvcTest.java
index 2781f51c829e52a2c3f7635cd9bdbf71f3d2d077..7d8c74437a1204dda49c7f18bdaba94ff668d01e 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/ActuatorEndpointMvcTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/ActuatorEndpointMvcTest.java
@@ -1,6 +1,6 @@
-package at.tuwien.mvc;
+package at.ac.tuwien.ifs.dbrepo.mvc;
 
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -20,7 +20,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
 @AutoConfigureMockMvc
 @SpringBootTest
 @AutoConfigureObservability
-public class ActuatorEndpointMvcTest extends AbstractUnitTest {
+public class ActuatorEndpointMvcTest extends BaseTest {
 
     @Autowired
     private MockMvc mockMvc;
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/AuthenticationPrivilegedIntegrationMvcTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/AuthenticationPrivilegedIntegrationMvcTest.java
similarity index 89%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/AuthenticationPrivilegedIntegrationMvcTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/AuthenticationPrivilegedIntegrationMvcTest.java
index b83232cd0df67e1bbc3424316944c64c0d56d50a..eb75887adf4977a4ec9efc02d1198c3ead022d5a 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/AuthenticationPrivilegedIntegrationMvcTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/AuthenticationPrivilegedIntegrationMvcTest.java
@@ -1,16 +1,16 @@
-package at.tuwien.mvc;
-
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceConnectionException;
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.CredentialsInvalidException;
-import at.tuwien.gateway.KeycloakGateway;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.repository.LicenseRepository;
-import at.tuwien.repository.UserRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.tuwien.utils.KeycloakUtils;
+package at.ac.tuwien.ifs.dbrepo.mvc;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceConnectionException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.CredentialsInvalidException;
+import at.ac.tuwien.ifs.dbrepo.gateway.KeycloakGateway;
+import at.ac.tuwien.ifs.dbrepo.repository.ContainerRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.LicenseRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.UserRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.utils.KeycloakUtils;
 import dasniko.testcontainers.keycloak.KeycloakContainer;
 import jakarta.transaction.Transactional;
 import lombok.extern.log4j.Log4j2;
@@ -41,7 +41,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
 @AutoConfigureMockMvc
 @Testcontainers
 @SpringBootTest
-public class AuthenticationPrivilegedIntegrationMvcTest extends AbstractUnitTest {
+public class AuthenticationPrivilegedIntegrationMvcTest extends BaseTest {
 
     @Autowired
     private MockMvc mockMvc;
@@ -79,7 +79,6 @@ public class AuthenticationPrivilegedIntegrationMvcTest extends AbstractUnitTest
 
     @BeforeEach
     public void beforeEach() throws AuthServiceException, AuthServiceConnectionException, CredentialsInvalidException {
-        genesis();
         /* metadata database */
         licenseRepository.save(LICENSE_1);
         userRepository.saveAll(List.of(USER_1, USER_2, USER_3, USER_4, USER_LOCAL));
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/IdentifierEndpointMvcTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/IdentifierEndpointMvcTest.java
similarity index 86%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/IdentifierEndpointMvcTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/IdentifierEndpointMvcTest.java
index fdbedbea6c1a626661d52502ec0b1e2b0a3a77b6..b0cdca73e25243c1f59a8b3069bc6926a4e386cc 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/IdentifierEndpointMvcTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/IdentifierEndpointMvcTest.java
@@ -1,7 +1,7 @@
-package at.tuwien.mvc;
+package at.ac.tuwien.ifs.dbrepo.mvc;
 
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.tuwien.gateway.OrcidGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.OrcidGateway;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import com.mchange.io.FileUtils;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
@@ -16,7 +16,8 @@ import org.springframework.test.web.servlet.MockMvc;
 
 import java.io.File;
 
-import static org.mockito.Mockito.*;
+import static org.mockito.Mockito.anyString;
+import static org.mockito.Mockito.when;
 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
 import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
 import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
@@ -26,7 +27,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
 @ExtendWith(SpringExtension.class)
 @AutoConfigureMockMvc
 @SpringBootTest
-public class IdentifierEndpointMvcTest extends AbstractUnitTest {
+public class IdentifierEndpointMvcTest extends BaseTest {
 
     @MockBean
     private OrcidGateway orcidGateway;
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/MetadataEndpointMvcTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/MetadataEndpointMvcTest.java
similarity index 93%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/MetadataEndpointMvcTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/MetadataEndpointMvcTest.java
index 25dae0b211dffb30d65c3ccf8d21e769bdfac3ea..870251323e0af7913d07da4bf24872a94e7544bf 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/MetadataEndpointMvcTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/MetadataEndpointMvcTest.java
@@ -1,10 +1,9 @@
-package at.tuwien.mvc;
+package at.ac.tuwien.ifs.dbrepo.mvc;
 
-import at.tuwien.repository.IdentifierRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.tuwien.config.MetadataConfig;
+import at.ac.tuwien.ifs.dbrepo.config.MetadataConfig;
+import at.ac.tuwien.ifs.dbrepo.repository.IdentifierRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -28,7 +27,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
 @AutoConfigureMockMvc
 @SpringBootTest
-public class MetadataEndpointMvcTest extends AbstractUnitTest {
+public class MetadataEndpointMvcTest extends BaseTest {
 
     @MockBean
     private IdentifierRepository identifierRepository;
@@ -39,11 +38,6 @@ public class MetadataEndpointMvcTest extends AbstractUnitTest {
     @Autowired
     private MockMvc mockMvc;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void identify_succeeds() throws Exception {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/OpenApiEndpointMvcTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/OpenApiEndpointMvcTest.java
similarity index 95%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/OpenApiEndpointMvcTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/OpenApiEndpointMvcTest.java
index e990c8b84d7180aa51720771eb97125127b24a82..7883d56552710064d9ceeb72da80caf733a1172f 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/OpenApiEndpointMvcTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/OpenApiEndpointMvcTest.java
@@ -1,8 +1,8 @@
-package at.tuwien.mvc;
+package at.ac.tuwien.ifs.dbrepo.mvc;
 
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.tuwien.endpoints.*;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.endpoints.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.Content;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
@@ -30,7 +30,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
 @ExtendWith(SpringExtension.class)
 @AutoConfigureMockMvc
 @SpringBootTest
-public class OpenApiEndpointMvcTest extends AbstractUnitTest {
+public class OpenApiEndpointMvcTest extends BaseTest {
 
     @Autowired
     private MockMvc mockMvc;
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/PrometheusEndpointMvcTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/PrometheusEndpointMvcTest.java
similarity index 96%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/PrometheusEndpointMvcTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/PrometheusEndpointMvcTest.java
index d9f09c4b2e68f1b19c360f27e0f2d0ae1fcf6c87..198a6c6270319181d04c3b5c9ce8205d4d1aae70 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/PrometheusEndpointMvcTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/PrometheusEndpointMvcTest.java
@@ -1,14 +1,14 @@
-package at.tuwien.mvc;
-
-import at.ac.tuwien.ifs.dbrepo.api.container.CreateContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseModifyImageDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseModifyVisibilityDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseTransferDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.ColumnSemanticsUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierTypeDto;
-import at.tuwien.config.MetricsConfig;
-import at.tuwien.endpoints.*;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.mvc;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.container.CreateContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseModifyImageDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseModifyVisibilityDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseTransferDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.ColumnSemanticsUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierTypeDto;
+import at.ac.tuwien.ifs.dbrepo.config.MetricsConfig;
+import at.ac.tuwien.ifs.dbrepo.endpoints.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import io.micrometer.observation.tck.TestObservationRegistry;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
@@ -38,7 +38,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
 @SpringBootTest
 @Import(MetricsConfig.class)
 @AutoConfigureObservability
-public class PrometheusEndpointMvcTest extends AbstractUnitTest {
+public class PrometheusEndpointMvcTest extends BaseTest {
 
     @Autowired
     private MockMvc mockMvc;
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/AccessServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/AccessServiceUnitTest.java
similarity index 94%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/AccessServiceUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/AccessServiceUnitTest.java
index e9e8092b3e47c3e3802a9bbc993e4e68eb66e16d..17a7cb32f84e6b39ebead7f7ea81672604c5d259 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/AccessServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/AccessServiceUnitTest.java
@@ -1,15 +1,14 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseBriefDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.AccessType;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
-import at.tuwien.repository.DatabaseRepository;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.AccessType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,7 +33,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class AccessServiceUnitTest extends AbstractUnitTest {
+public class AccessServiceUnitTest extends BaseTest {
 
     @MockBean
     private DatabaseRepository databaseRepository;
@@ -50,11 +49,6 @@ public class AccessServiceUnitTest extends AbstractUnitTest {
     @Autowired
     private AccessService accessService;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void list_succeeds() {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/AuthenticationServiceIntegrationTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/AuthenticationServiceIntegrationTest.java
similarity index 82%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/AuthenticationServiceIntegrationTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/AuthenticationServiceIntegrationTest.java
index 6ab6c1fb2bb65815a90954b2cd1f404725e69259..016e0f949b23d7db857c4944f015753e20defa34 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/AuthenticationServiceIntegrationTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/AuthenticationServiceIntegrationTest.java
@@ -1,13 +1,12 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.KeycloakGateway;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.tuwien.utils.KeycloakUtils;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.KeycloakGateway;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.utils.KeycloakUtils;
 import dasniko.testcontainers.keycloak.KeycloakContainer;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,7 +26,7 @@ import java.util.UUID;
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class AuthenticationServiceIntegrationTest extends AbstractUnitTest {
+public class AuthenticationServiceIntegrationTest extends BaseTest {
 
     @Autowired
     private AuthenticationService authenticationService;
@@ -38,11 +37,6 @@ public class AuthenticationServiceIntegrationTest extends AbstractUnitTest {
     @Autowired
     private KeycloakUtils keycloakUtils;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Container
     private static final KeycloakContainer keycloakContainer = new KeycloakContainer(KEYCLOAK_IMAGE)
             .withImagePullPolicy(PullPolicy.alwaysPull())
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/BrokerServiceIntegrationTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/BrokerServiceIntegrationTest.java
similarity index 88%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/BrokerServiceIntegrationTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/BrokerServiceIntegrationTest.java
index edd641f67b57353b8634fe6b248ecd6d3fd3bffd..05ab5f8bc7975dfeb56d7c2eb75820479b2d67f2 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/BrokerServiceIntegrationTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/BrokerServiceIntegrationTest.java
@@ -1,18 +1,17 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.api.amqp.GrantExchangePermissionsDto;
-import at.ac.tuwien.ifs.dbrepo.api.amqp.GrantVirtualHostPermissionsDto;
-import at.ac.tuwien.ifs.dbrepo.api.amqp.TopicPermissionDto;
-import at.ac.tuwien.ifs.dbrepo.api.amqp.VirtualHostPermissionDto;
-import at.tuwien.config.RabbitConfig;
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.BrokerServiceConnectionException;
-import at.ac.tuwien.ifs.dbrepo.exception.BrokerServiceException;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.tuwien.utils.AmqpUtils;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.amqp.GrantExchangePermissionsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.amqp.GrantVirtualHostPermissionsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.amqp.TopicPermissionDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.amqp.VirtualHostPermissionDto;
+import at.ac.tuwien.ifs.dbrepo.config.RabbitConfig;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.BrokerServiceConnectionException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.BrokerServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.utils.AmqpUtils;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -36,7 +35,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
-public class BrokerServiceIntegrationTest extends AbstractUnitTest {
+public class BrokerServiceIntegrationTest extends BaseTest {
 
     @Autowired
     private RabbitConfig rabbitConfig;
@@ -54,11 +53,6 @@ public class BrokerServiceIntegrationTest extends AbstractUnitTest {
         registry.add("dbrepo.endpoints.brokerService", rabbitContainer::getHttpUrl);
     }
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void updatePermissions_empty_succeeds() throws BrokerServiceException, BrokerServiceConnectionException {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ConceptServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ConceptServiceUnitTest.java
similarity index 78%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ConceptServiceUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ConceptServiceUnitTest.java
index fb23ae65791940b1217874712a3dac26d46468c0..67f14f3ebb6e9f236512cf06a8a86f9cc3d777ae 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ConceptServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ConceptServiceUnitTest.java
@@ -1,11 +1,10 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.exception.ConceptNotFoundException;
-import at.tuwien.repository.ConceptRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnConcept;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnConcept;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ConceptNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.repository.ConceptRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,7 +22,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class ConceptServiceUnitTest extends AbstractUnitTest {
+public class ConceptServiceUnitTest extends BaseTest {
 
     @MockBean
     private ConceptRepository conceptRepository;
@@ -31,11 +30,6 @@ public class ConceptServiceUnitTest extends AbstractUnitTest {
     @Autowired
     private ConceptService conceptService;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void findAll_succeeds() {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ContainerServiceUnitTest.java
similarity index 86%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ContainerServiceUnitTest.java
index 0d5e660cb15e43ebbbb2cf28957dada6896ab283..3af0a8816b3589c91ba889fce19b6c8c85751244 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ContainerServiceUnitTest.java
@@ -1,15 +1,14 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.api.container.CreateContainerDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
-import at.ac.tuwien.ifs.dbrepo.exception.ContainerAlreadyExistsException;
-import at.ac.tuwien.ifs.dbrepo.exception.ContainerNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageNotFoundException;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.ImageRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.container.CreateContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.Container;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ContainerAlreadyExistsException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ContainerNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.repository.ContainerRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.ImageRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -32,7 +31,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class ContainerServiceUnitTest extends AbstractUnitTest {
+public class ContainerServiceUnitTest extends BaseTest {
 
     @MockBean
     private ContainerRepository containerRepository;
@@ -43,11 +42,6 @@ public class ContainerServiceUnitTest extends AbstractUnitTest {
     @Autowired
     private ContainerService containerService;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void create_succeeds() throws ContainerAlreadyExistsException, ImageNotFoundException {
         final CreateContainerDto request = CreateContainerDto.builder()
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/DataCiteIdentifierServicePersistenceTest.java
similarity index 91%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServicePersistenceTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/DataCiteIdentifierServicePersistenceTest.java
index f0dfe23ea35ef10abec5e43cd29c64b8fd592b04..3f3720b2d8cb5bd9cdae4a9fa274280bdd702337 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServicePersistenceTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/DataCiteIdentifierServicePersistenceTest.java
@@ -1,20 +1,20 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.api.datacite.DataCiteBody;
-import at.ac.tuwien.ifs.dbrepo.api.datacite.doi.DataCiteDoi;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.BibliographyTypeDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.Creator;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.Identifier;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.IdentifierStatusType;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.NameIdentifierSchemeType;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.SearchServiceGateway;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.repository.LicenseRepository;
-import at.tuwien.repository.UserRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.datacite.DataCiteBody;
+import at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi.DataCiteDoi;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.BibliographyTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Creator;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Identifier;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.IdentifierStatusType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.NameIdentifierSchemeType;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.SearchServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.repository.ContainerRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.LicenseRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.UserRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -46,7 +46,7 @@ import static org.mockito.Mockito.when;
 @ExtendWith(SpringExtension.class)
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
 @SpringBootTest(properties = "spring.profiles.active=local,junit,doi")
-public class DataCiteIdentifierServicePersistenceTest extends AbstractUnitTest {
+public class DataCiteIdentifierServicePersistenceTest extends BaseTest {
 
     @MockBean
     private SearchServiceGateway searchServiceGateway;
@@ -75,7 +75,6 @@ public class DataCiteIdentifierServicePersistenceTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() {
-        genesis();
         /* metadata database */
         licenseRepository.save(LICENSE_1);
         userRepository.saveAll(List.of(USER_1, USER_2, USER_3, USER_4, USER_5));
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/DatabaseServicePersistenceTest.java
similarity index 74%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServicePersistenceTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/DatabaseServicePersistenceTest.java
index 7055834b5221128bc21983dcd512dd39b13305d3..c0d36efdba747f17cb9973501a4f621f6d715dfd 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServicePersistenceTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/DatabaseServicePersistenceTest.java
@@ -1,13 +1,12 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.exception.DatabaseNotFoundException;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.repository.LicenseRepository;
-import at.tuwien.repository.UserRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DatabaseNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.repository.ContainerRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.LicenseRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.UserRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -21,13 +20,12 @@ import org.springframework.transaction.annotation.Transactional;
 import java.util.List;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 @Log4j2
 @SpringBootTest
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
 @ExtendWith(SpringExtension.class)
-public class DatabaseServicePersistenceTest extends AbstractUnitTest {
+public class DatabaseServicePersistenceTest extends BaseTest {
 
     @Autowired
     private DatabaseService databaseService;
@@ -46,7 +44,6 @@ public class DatabaseServicePersistenceTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() {
-        genesis();
         /* metadata database */
         licenseRepository.save(LICENSE_1);
         userRepository.saveAll(List.of(USER_1, USER_2, USER_3, USER_4, USER_5));
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/DatabaseServiceUnitTest.java
similarity index 93%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/DatabaseServiceUnitTest.java
index 33be047995294a4104d1833fa6e96fc1533baa44..d38b12b3abc741b2b191a7e1dca12c9af6ba414e 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/DatabaseServiceUnitTest.java
@@ -1,18 +1,17 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseModifyVisibilityDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.internal.CreateDatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.internal.UpdateUserPasswordDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.DataServiceGateway;
-import at.tuwien.gateway.SearchServiceGateway;
-import at.tuwien.repository.DatabaseRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseModifyVisibilityDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.internal.CreateDatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.internal.UpdateUserPasswordDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.DataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.SearchServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -32,7 +31,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class DatabaseServiceUnitTest extends AbstractUnitTest {
+public class DatabaseServiceUnitTest extends BaseTest {
 
     @MockBean
     private SearchServiceGateway searchServiceGateway;
@@ -46,11 +45,6 @@ public class DatabaseServiceUnitTest extends AbstractUnitTest {
     @Autowired
     private DatabaseService databaseService;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void findAll_succeeds() {
         /* mock */
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/EntityServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/EntityServiceUnitTest.java
similarity index 85%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/EntityServiceUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/EntityServiceUnitTest.java
index d2555c6703d5340c9f170e21b83d8d53cb9d8bce..27987dd6b43c518a5f301241e762c4186e6b83c8 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/EntityServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/EntityServiceUnitTest.java
@@ -1,11 +1,12 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.EntityDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.TableColumnEntityDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.EntityDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.TableColumnEntityDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.OntologyNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.SemanticEntityNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -24,7 +25,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class EntityServiceUnitTest extends AbstractUnitTest {
+public class EntityServiceUnitTest extends BaseTest {
 
     @MockBean
     private OntologyService ontologyService;
@@ -32,11 +33,6 @@ public class EntityServiceUnitTest extends AbstractUnitTest {
     @Autowired
     private EntityService entityService;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void findByLabel_wikidataSparql_succeeds() throws MalformedException {
 
@@ -49,7 +45,6 @@ public class EntityServiceUnitTest extends AbstractUnitTest {
         assertFalse(response.isEmpty());
         final EntityDto entity0 = response.get(0);
         assertNotNull(entity0.getUri());
-        log.trace("found concept {}", entity0);
     }
 
     @Test
@@ -66,7 +61,6 @@ public class EntityServiceUnitTest extends AbstractUnitTest {
         assertEquals(1, response.size());
         final EntityDto entity0 = response.get(0);
         assertNotNull(entity0.getUri());
-        log.trace("found concept {}", entity0);
     }
 
     @Test
@@ -82,7 +76,6 @@ public class EntityServiceUnitTest extends AbstractUnitTest {
         /* test */
         final EntityDto response = entityService.findOneByUri(CONCEPT_1_URI);
         assertNotNull(response.getUri());
-        log.trace("found concept {}", response);
     }
 
     @Test
@@ -97,7 +90,6 @@ public class EntityServiceUnitTest extends AbstractUnitTest {
         assertFalse(response.isEmpty());
         final EntityDto entity0 = response.get(0);
         assertNotNull(entity0.getUri());
-        log.trace("found unit {}", entity0);
     }
 
     @Test
@@ -114,7 +106,6 @@ public class EntityServiceUnitTest extends AbstractUnitTest {
         assertEquals(1, response.size());
         final EntityDto entity0 = response.get(0);
         assertNotNull(entity0.getUri());
-        log.trace("found unit {}", entity0);
     }
 
     @Test
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/IdentifierServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/IdentifierServicePersistenceTest.java
similarity index 93%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/IdentifierServicePersistenceTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/IdentifierServicePersistenceTest.java
index 68a50698cac8e55addcf4310b23e7ef2763398de..3474e21f472f2297eb9514eb3684c7885afd6625 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/IdentifierServicePersistenceTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/IdentifierServicePersistenceTest.java
@@ -1,19 +1,18 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.BibliographyTypeDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.License;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.*;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.DataServiceGateway;
-import at.tuwien.gateway.SearchServiceGateway;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.repository.LicenseRepository;
-import at.tuwien.repository.UserRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.BibliographyTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.License;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.*;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.DataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.SearchServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.repository.ContainerRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.LicenseRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.UserRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -42,7 +41,7 @@ import static org.mockito.Mockito.when;
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
-public class IdentifierServicePersistenceTest extends AbstractUnitTest {
+public class IdentifierServicePersistenceTest extends BaseTest {
 
     @MockBean
     private DataServiceGateway dataServiceGateway;
@@ -71,14 +70,9 @@ public class IdentifierServicePersistenceTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() {
-        genesis();
         /* metadata database */
         licenseRepository.save(LICENSE_1);
         userRepository.saveAll(List.of(USER_1, USER_2, USER_3, USER_4, USER_5));
-        final Container debug1 = CONTAINER_1;
-        final Container debug2 = CONTAINER_2;
-        final Container debug3 = CONTAINER_3;
-        final Container debug4 = CONTAINER_4;
         containerRepository.saveAll(List.of(CONTAINER_1, CONTAINER_2, CONTAINER_3, CONTAINER_4));
         databaseRepository.saveAll(List.of(DATABASE_1, DATABASE_2, DATABASE_3, DATABASE_4));
     }
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ImageServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ImageServicePersistenceTest.java
similarity index 83%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ImageServicePersistenceTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ImageServicePersistenceTest.java
index f23a7c96d04cf26c7e3f661350756f5c92ee37ca..da0e741028b2958eff8547f25eec925c37b0cc49 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ImageServicePersistenceTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ImageServicePersistenceTest.java
@@ -1,11 +1,11 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.exception.ImageInvalidException;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageCreateDto;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageAlreadyExistsException;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.ImageRepository;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageAlreadyExistsException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageInvalidException;
+import at.ac.tuwien.ifs.dbrepo.repository.ContainerRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.ImageRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -21,7 +21,7 @@ import static org.junit.jupiter.api.Assertions.*;
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
 @ExtendWith(SpringExtension.class)
 @SpringBootTest
-public class ImageServicePersistenceTest extends AbstractUnitTest {
+public class ImageServicePersistenceTest extends BaseTest {
 
     @Autowired
     private ImageService imageService;
@@ -34,7 +34,6 @@ public class ImageServicePersistenceTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() {
-        genesis();
         /* metadata database */
         imageRepository.save(IMAGE_1);
     }
@@ -94,7 +93,7 @@ public class ImageServicePersistenceTest extends AbstractUnitTest {
     }
 
     @Test
-    public void delete_hasNoContainer_succeeds()  {
+    public void delete_hasNoContainer_succeeds() {
 
         /* test */
         imageService.delete(IMAGE_1);
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ImageServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ImageServiceUnitTest.java
similarity index 83%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ImageServiceUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ImageServiceUnitTest.java
index 12737718aaf25a3cdebdba2a4ac94155f711d98a..289c5bc104ff5dfc59b2948d81d48289840b197e 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ImageServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ImageServiceUnitTest.java
@@ -1,16 +1,14 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.exception.ImageInvalidException;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageChangeDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageCreateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.image.ContainerImage;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageAlreadyExistsException;
-import at.tuwien.repository.ImageRepository;
-import at.tuwien.service.impl.ImageServiceImpl;
-import jakarta.validation.ConstraintViolationException;
-import org.junit.jupiter.api.BeforeEach;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageChangeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.image.ContainerImage;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageAlreadyExistsException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageInvalidException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.repository.ImageRepository;
+import at.ac.tuwien.ifs.dbrepo.service.impl.ImageServiceImpl;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,11 +21,12 @@ import java.util.Optional;
 
 import static org.junit.jupiter.api.Assertions.*;
 import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.*;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 @ExtendWith(SpringExtension.class)
 @SpringBootTest
-public class ImageServiceUnitTest extends AbstractUnitTest {
+public class ImageServiceUnitTest extends BaseTest {
 
     @MockBean
     private ImageRepository imageRepository;
@@ -35,11 +34,6 @@ public class ImageServiceUnitTest extends AbstractUnitTest {
     @Autowired
     private ImageService imageService;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void getAll_succeeds() {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/LicenseServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/LicenseServiceUnitTest.java
similarity index 78%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/LicenseServiceUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/LicenseServiceUnitTest.java
index 88935be4216a29c9397146756ac8bd37d986d2b5..417c50424fb5280f6a22fc710782deb94d3839d8 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/LicenseServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/LicenseServiceUnitTest.java
@@ -1,11 +1,10 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.exception.LicenseNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.entity.database.License;
-import at.tuwien.repository.LicenseRepository;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.License;
+import at.ac.tuwien.ifs.dbrepo.core.exception.LicenseNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.repository.LicenseRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,7 +23,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class LicenseServiceUnitTest extends AbstractUnitTest {
+public class LicenseServiceUnitTest extends BaseTest {
 
     @MockBean
     private LicenseRepository licenseRepository;
@@ -32,11 +31,6 @@ public class LicenseServiceUnitTest extends AbstractUnitTest {
     @Autowired
     private LicenseService licenseService;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void findAll_succeeds() {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MessageServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/MessageServiceUnitTest.java
similarity index 84%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MessageServiceUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/MessageServiceUnitTest.java
index 68b569962bbe802ca4c98e4d21b11f259117a568..0fb606d6dfea57eb506fa10d1d9ce7f3a99b714c 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MessageServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/MessageServiceUnitTest.java
@@ -1,13 +1,12 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.exception.MessageNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.maintenance.BannerMessage;
-import at.tuwien.repository.BannerMessageRepository;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.maintenance.BannerMessage;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MessageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.repository.BannerMessageRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,14 +22,13 @@ import java.util.UUID;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyLong;
 import static org.mockito.Mockito.when;
 
 @Log4j2
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class MessageServiceUnitTest extends AbstractUnitTest {
+public class MessageServiceUnitTest extends BaseTest {
 
     @MockBean
     private BannerMessageRepository bannerMessageRepository;
@@ -38,11 +36,6 @@ public class MessageServiceUnitTest extends AbstractUnitTest {
     @Autowired
     private BannerMessageService bannerMessageService;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void findAll_succeeds() {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MetadataServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/MetadataServiceUnitTest.java
similarity index 88%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MetadataServiceUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/MetadataServiceUnitTest.java
index 32d45fc41a971fb8617e5febc35bdd4c8f408c89..a00b44e392982748b4e07e89d1995d5f1e5147f3 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MetadataServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/MetadataServiceUnitTest.java
@@ -1,22 +1,21 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.api.crossref.CrossrefDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.OrcidDto;
-import at.ac.tuwien.ifs.dbrepo.api.ror.RorDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.external.ExternalMetadataDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.external.affiliation.ExternalAffiliationDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.CrossrefGateway;
-import at.tuwien.gateway.OrcidGateway;
-import at.tuwien.gateway.RorGateway;
-import at.tuwien.oaipmh.OaiErrorType;
-import at.tuwien.oaipmh.OaiListIdentifiersParameters;
-import at.tuwien.oaipmh.OaiRecordParameters;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.crossref.CrossrefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.OrcidDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.ror.RorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.external.ExternalMetadataDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.external.affiliation.ExternalAffiliationDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.CrossrefGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.OrcidGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.RorGateway;
+import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiErrorType;
+import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiListIdentifiersParameters;
+import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiRecordParameters;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -40,7 +39,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class MetadataServiceUnitTest extends AbstractUnitTest {
+public class MetadataServiceUnitTest extends BaseTest {
 
     @MockBean
     private OrcidGateway orcidGateway;
@@ -60,11 +59,6 @@ public class MetadataServiceUnitTest extends AbstractUnitTest {
     @Autowired
     private ObjectMapper objectMapper;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void identify_succeeds() {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/StorageServiceIntegrationTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/StorageServiceIntegrationTest.java
similarity index 90%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/StorageServiceIntegrationTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/StorageServiceIntegrationTest.java
index 608ae03fc9fb6fc4abcc92f962d7c53e7ca344b3..66ac04fe569b41be309fa63602921df006f6663d 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/StorageServiceIntegrationTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/StorageServiceIntegrationTest.java
@@ -1,8 +1,9 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.tuwien.config.S3Config;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.config.S3Config;
+import at.ac.tuwien.ifs.dbrepo.core.exception.StorageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.StorageUnavailableException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -33,7 +34,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class StorageServiceIntegrationTest extends AbstractUnitTest {
+public class StorageServiceIntegrationTest extends BaseTest {
 
     @Autowired
     private StorageService storageService;
@@ -54,7 +55,6 @@ public class StorageServiceIntegrationTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() throws SQLException {
-        genesis();
         /* s3 */
         if (s3Client.listBuckets().buckets().stream().noneMatch(b -> b.name().equals(s3Config.getS3Bucket()))) {
             s3Client.createBucket(CreateBucketRequest.builder()
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/TableServicePersistenceTest.java
similarity index 85%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServicePersistenceTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/TableServicePersistenceTest.java
index 41e131da8bff3bc4f16461afad368c5394045a27..503a4be8d3664020fc8beb9a6ea16b7f54d1eba6 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServicePersistenceTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/TableServicePersistenceTest.java
@@ -1,24 +1,24 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.table.CreateTableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.CreateTableColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.CreateTableConstraintsDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumn;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnType;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.foreignKey.ForeignKey;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.primaryKey.PrimaryKey;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.unique.Unique;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.DataServiceGateway;
-import at.tuwien.gateway.SearchServiceGateway;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.repository.LicenseRepository;
-import at.tuwien.repository.UserRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.CreateTableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.CreateTableColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.CreateTableConstraintsDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumn;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.foreignKey.ForeignKey;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.primaryKey.PrimaryKey;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.unique.Unique;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.DataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.SearchServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.repository.ContainerRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.LicenseRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.UserRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -42,7 +42,7 @@ import static org.mockito.Mockito.*;
 @SpringBootTest
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
 @ExtendWith(SpringExtension.class)
-public class TableServicePersistenceTest extends AbstractUnitTest {
+public class TableServicePersistenceTest extends BaseTest {
 
     @MockBean
     private SearchServiceGateway searchServiceGateway;
@@ -70,7 +70,6 @@ public class TableServicePersistenceTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() {
-        genesis();
         /* metadata database */
         licenseRepository.save(LICENSE_1);
         userRepository.saveAll(List.of(USER_1, USER_2, USER_3));
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/TableServiceUnitTest.java
similarity index 91%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServiceUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/TableServiceUnitTest.java
index 0748065d07fbd16a057284078e919255894380f0..56df16cf8c44064357acf1da3a9a38c4ecfdf13e 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/TableServiceUnitTest.java
@@ -1,28 +1,27 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.table.CreateTableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableStatisticDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnStatisticDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.CreateTableColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.ColumnSemanticsUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.CreateTableConstraintsDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.CreateForeignKeyDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.ColumnEnum;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.ColumnSet;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumn;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnType;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.Constraints;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.DataServiceGateway;
-import at.tuwien.gateway.SearchServiceGateway;
-import at.tuwien.repository.DatabaseRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.CreateTableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableStatisticDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnStatisticDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.CreateTableColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.ColumnSemanticsUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.CreateTableConstraintsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.CreateForeignKeyDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.ColumnEnum;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.ColumnSet;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumn;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.Constraints;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.DataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.SearchServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -42,7 +41,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class TableServiceUnitTest extends AbstractUnitTest {
+public class TableServiceUnitTest extends BaseTest {
 
     @MockBean
     private DatabaseRepository databaseRepository;
@@ -68,11 +67,6 @@ public class TableServiceUnitTest extends AbstractUnitTest {
     @Autowired
     private TableService tableService;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void findById_succeeds() throws TableNotFoundException, DatabaseNotFoundException {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UnitServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/UnitServiceUnitTest.java
similarity index 79%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UnitServiceUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/UnitServiceUnitTest.java
index d76b26f9049875524badb7d64bc52f1a2e5fa579..e8e73fca32043680abfa0e473840daaf1acdad49 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UnitServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/UnitServiceUnitTest.java
@@ -1,11 +1,10 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.tuwien.repository.UnitRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnUnit;
-import at.ac.tuwien.ifs.dbrepo.exception.UnitNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnUnit;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UnitNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.repository.UnitRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,7 +23,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class UnitServiceUnitTest extends AbstractUnitTest {
+public class UnitServiceUnitTest extends BaseTest {
 
     @MockBean
     private UnitRepository unitRepository;
@@ -32,11 +31,6 @@ public class UnitServiceUnitTest extends AbstractUnitTest {
     @Autowired
     private UnitService unitService;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @Transactional
     public void findAll_succeeds() {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServiceIntegrationTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/UserServiceIntegrationTest.java
similarity index 77%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServiceIntegrationTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/UserServiceIntegrationTest.java
index 0d498c989ccbd75383f9c7fc8bb018158e01ab19..9311d0dd3461b19b0a13c9e85224dc8ae63259b5 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServiceIntegrationTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/UserServiceIntegrationTest.java
@@ -1,12 +1,11 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.UserNotFoundException;
-import at.tuwien.gateway.KeycloakGateway;
-import at.tuwien.repository.UserRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.tuwien.utils.KeycloakUtils;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UserNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.repository.UserRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.utils.KeycloakUtils;
 import dasniko.testcontainers.keycloak.KeycloakContainer;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
@@ -14,7 +13,6 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.test.context.DynamicPropertyRegistry;
 import org.springframework.test.context.DynamicPropertySource;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
@@ -22,17 +20,14 @@ import org.testcontainers.images.PullPolicy;
 import org.testcontainers.junit.jupiter.Container;
 import org.testcontainers.junit.jupiter.Testcontainers;
 
-import java.util.List;
-import java.util.Optional;
-
-import static org.junit.jupiter.api.Assertions.*;
-import static org.mockito.Mockito.*;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 @Log4j2
 @Testcontainers
 @ExtendWith(SpringExtension.class)
 @SpringBootTest
-public class UserServiceIntegrationTest extends AbstractUnitTest {
+public class UserServiceIntegrationTest extends BaseTest {
 
     @Autowired
     private UserRepository userRepository;
@@ -45,7 +40,6 @@ public class UserServiceIntegrationTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() {
-        genesis();
         /* keycloak */
         userRepository.deleteAll();
         keycloakUtils.deleteUser(USER_1_USERNAME);
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/UserServicePersistenceTest.java
similarity index 84%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServicePersistenceTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/UserServicePersistenceTest.java
index 8a0f771fd319016574bff232875fe79e525f8aed..cb4e873ac9d27ee9e74505a71053eecb144ba1d5 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServicePersistenceTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/UserServicePersistenceTest.java
@@ -1,12 +1,12 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.api.user.UserUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.UserNotFoundException;
-import at.tuwien.gateway.KeycloakGateway;
-import at.tuwien.repository.UserRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UserNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.gateway.KeycloakGateway;
+import at.ac.tuwien.ifs.dbrepo.repository.UserRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -26,7 +26,7 @@ import static org.mockito.Mockito.doNothing;
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class UserServicePersistenceTest extends AbstractUnitTest {
+public class UserServicePersistenceTest extends BaseTest {
 
     @Autowired
     private UserRepository userRepository;
@@ -39,7 +39,6 @@ public class UserServicePersistenceTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() {
-        genesis();
         /* metadata database */
         userRepository.saveAll(List.of(USER_1, USER_LOCAL));
     }
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/UserServiceUnitTest.java
similarity index 81%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServiceUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/UserServiceUnitTest.java
index 31977d53e4f533f3bf5b1627b3d28d4f2a39ae6f..8a6a29400b053029dfb7e5bc9557251a0caaa21f 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/UserServiceUnitTest.java
@@ -1,13 +1,12 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.api.user.UserUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.UserNotFoundException;
-import at.tuwien.gateway.KeycloakGateway;
-import at.tuwien.repository.UserRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import org.junit.jupiter.api.BeforeEach;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UserNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.gateway.KeycloakGateway;
+import at.ac.tuwien.ifs.dbrepo.repository.UserRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -25,7 +24,7 @@ import static org.mockito.Mockito.*;
 
 @ExtendWith(SpringExtension.class)
 @SpringBootTest
-public class UserServiceUnitTest extends AbstractUnitTest {
+public class UserServiceUnitTest extends BaseTest {
 
     @MockBean
     private UserRepository userRepository;
@@ -36,11 +35,6 @@ public class UserServiceUnitTest extends AbstractUnitTest {
     @Autowired
     private UserService userService;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void findByUsername_succeeds() throws UserNotFoundException {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ViewServicePersistenceTest.java
similarity index 78%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServicePersistenceTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ViewServicePersistenceTest.java
index 1980117bf1bf48b1c7b300386dcbaf4388d4000d..33cc7db8a441c46b32d419c7ad804262028b65e8 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServicePersistenceTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ViewServicePersistenceTest.java
@@ -1,16 +1,15 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.View;
-import at.ac.tuwien.ifs.dbrepo.entity.database.ViewColumn;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.DataServiceGateway;
-import at.tuwien.gateway.SearchServiceGateway;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.repository.LicenseRepository;
-import at.tuwien.repository.UserRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.View;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.DataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.SearchServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.repository.ContainerRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.LicenseRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.UserRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Disabled;
@@ -35,7 +34,7 @@ import static org.mockito.Mockito.when;
 @Disabled("CI/CD")
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
 @ExtendWith(SpringExtension.class)
-public class ViewServicePersistenceTest extends AbstractUnitTest {
+public class ViewServicePersistenceTest extends BaseTest {
 
     @Autowired
     private UserRepository userRepository;
@@ -60,7 +59,6 @@ public class ViewServicePersistenceTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() {
-        genesis();
         /* metadata database */
         licenseRepository.save(LICENSE_1);
         userRepository.saveAll(List.of(USER_1, USER_2, USER_3));
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ViewServiceUnitTest.java
similarity index 89%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServiceUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ViewServiceUnitTest.java
index 4a3225e595de9f20d30690b6f7286073e50ab68e..a50b7ca3397d1738ab16c30b711576b3d89b3113 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ViewServiceUnitTest.java
@@ -1,15 +1,14 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.CreateViewDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.View;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.DataServiceGateway;
-import at.tuwien.gateway.SearchServiceGateway;
-import at.tuwien.repository.DatabaseRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.CreateViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.View;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.DataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.SearchServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -29,7 +28,7 @@ import static org.mockito.Mockito.*;
 @Testcontainers
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class ViewServiceUnitTest extends AbstractUnitTest {
+public class ViewServiceUnitTest extends BaseTest {
 
     @MockBean
     private DataServiceGateway dataServiceGateway;
@@ -43,11 +42,6 @@ public class ViewServiceUnitTest extends AbstractUnitTest {
     @Autowired
     private ViewService viewService;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void create_succeeds() throws MalformedException, DataServiceException, DataServiceConnectionException,
             DatabaseNotFoundException, SearchServiceException, SearchServiceConnectionException, TableNotFoundException,
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/utils/AmqpUtils.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/AmqpUtils.java
similarity index 98%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/utils/AmqpUtils.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/AmqpUtils.java
index 5a9430da8f170809055e8831d19f3e97660b8970..09017252d8f539c8d3119751d68905edde2a1e5a 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/utils/AmqpUtils.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/AmqpUtils.java
@@ -1,7 +1,7 @@
-package at.tuwien.utils;
+package at.ac.tuwien.ifs.dbrepo.utils;
 
-import at.ac.tuwien.ifs.dbrepo.api.amqp.*;
-import at.ac.tuwien.ifs.dbrepo.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.core.api.amqp.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.codec.binary.Base64;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/utils/H2Utils.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/H2Utils.java
similarity index 96%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/utils/H2Utils.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/H2Utils.java
index 7c80d5274a386031276fdb48eab6eaa3e2989024..f10486047aabaec096dd2d98763f76f62c3a1e9b 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/utils/H2Utils.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/H2Utils.java
@@ -1,4 +1,4 @@
-package at.tuwien.utils;
+package at.ac.tuwien.ifs.dbrepo.utils;
 
 import jakarta.persistence.EntityManager;
 import lombok.extern.log4j.Log4j2;
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/utils/KeycloakUtils.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/KeycloakUtils.java
similarity index 90%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/utils/KeycloakUtils.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/KeycloakUtils.java
index 5bad3fa03a21a52e3291d028ad3ab72375852a67..f1f4f85f70e63482c6038e18f62c2fe2268b208f 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/utils/KeycloakUtils.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/KeycloakUtils.java
@@ -1,9 +1,9 @@
-package at.tuwien.utils;
+package at.ac.tuwien.ifs.dbrepo.utils;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.UserCreateDto;
-import at.tuwien.config.KeycloakConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.UserNotFoundException;
-import at.tuwien.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.UserCreateDto;
+import at.ac.tuwien.ifs.dbrepo.config.KeycloakConfig;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UserNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
 import jakarta.ws.rs.core.Response;
 import lombok.extern.log4j.Log4j2;
 import org.keycloak.admin.client.Keycloak;
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/utils/XmlUtils.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/XmlUtils.java
similarity index 96%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/utils/XmlUtils.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/XmlUtils.java
index b351d2798eb2c441c228e38e46693c55e864464b..268d2c0be5c1de0d471d35cb40bc4317ec337a59 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/utils/XmlUtils.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/XmlUtils.java
@@ -1,4 +1,4 @@
-package at.tuwien.utils;
+package at.ac.tuwien.ifs.dbrepo.utils;
 
 import java.io.File;
 import java.io.IOException;
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/validator/EndpointValidatorUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/validator/EndpointValidatorUnitTest.java
similarity index 95%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/validator/EndpointValidatorUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/validator/EndpointValidatorUnitTest.java
index d55f12aafe7abee5027de20fae975e2c5c212a1e..324fa8120630e40e8f732a69c1698b9d43225231 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/validator/EndpointValidatorUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/validator/EndpointValidatorUnitTest.java
@@ -1,20 +1,19 @@
-package at.tuwien.validator;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.table.CreateTableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.SortType;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.CreateTableColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierSaveDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.service.AccessService;
-import at.tuwien.service.DatabaseService;
-import at.tuwien.service.TableService;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.tuwien.validation.EndpointValidator;
+package at.ac.tuwien.ifs.dbrepo.validator;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.CreateTableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.SortType;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.CreateTableColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierSaveDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.service.AccessService;
+import at.ac.tuwien.ifs.dbrepo.service.DatabaseService;
+import at.ac.tuwien.ifs.dbrepo.service.TableService;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.validation.EndpointValidator;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.junit.jupiter.params.ParameterizedTest;
@@ -38,7 +37,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class EndpointValidatorUnitTest extends AbstractUnitTest {
+public class EndpointValidatorUnitTest extends BaseTest {
 
     @MockBean
     private DatabaseService databaseService;
@@ -78,11 +77,6 @@ public class EndpointValidatorUnitTest extends AbstractUnitTest {
         );
     }
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void validateDataParams_succeeds() throws PaginationException {
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/auth/AuthTokenFilter.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/auth/AuthTokenFilter.java
similarity index 96%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/auth/AuthTokenFilter.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/auth/AuthTokenFilter.java
index 21afd981dd47c7f9850b41b7c778535ae608e6c3..fc7d7bdaa2e433a1e2dc9132ddbb7a511c449fe7 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/auth/AuthTokenFilter.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/auth/AuthTokenFilter.java
@@ -1,7 +1,7 @@
-package at.tuwien.auth;
+package at.ac.tuwien.ifs.dbrepo.auth;
 
-import at.ac.tuwien.ifs.dbrepo.api.auth.RealmAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDetailsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.auth.RealmAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDetailsDto;
 import com.auth0.jwt.JWT;
 import com.auth0.jwt.JWTVerifier;
 import com.auth0.jwt.algorithms.Algorithm;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/auth/BasicAuthenticationProvider.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/auth/BasicAuthenticationProvider.java
similarity index 90%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/auth/BasicAuthenticationProvider.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/auth/BasicAuthenticationProvider.java
index 66089b00b42edac0e799b80dfc23eafc14935f87..5ab64107cd4dc80be7b16a8db0db4815372cc3fc 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/auth/BasicAuthenticationProvider.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/auth/BasicAuthenticationProvider.java
@@ -1,7 +1,7 @@
-package at.tuwien.auth;
+package at.ac.tuwien.ifs.dbrepo.auth;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
-import at.tuwien.service.CredentialService;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.service.CredentialService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.authentication.AuthenticationManager;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/auth/InternalRequestInterceptor.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/auth/InternalRequestInterceptor.java
similarity index 87%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/auth/InternalRequestInterceptor.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/auth/InternalRequestInterceptor.java
index 0e1e06d9e1e3498dbb5eab742e671c4d5015dace..272dfda2cf05e5ae8188492340632b1b2916aa70 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/auth/InternalRequestInterceptor.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/auth/InternalRequestInterceptor.java
@@ -1,8 +1,8 @@
-package at.tuwien.auth;
+package at.ac.tuwien.ifs.dbrepo.auth;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
-import at.tuwien.config.GatewayConfig;
-import at.tuwien.service.CredentialService;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.config.GatewayConfig;
+import at.ac.tuwien.ifs.dbrepo.service.CredentialService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpRequest;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/CacheConfig.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/CacheConfig.java
similarity index 89%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/config/CacheConfig.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/CacheConfig.java
index 1ddee07ee2eb6097519f4e87127e455f36c7463a..4fd448efa2f3ab83761c2aa64a5a5af4b593d95d 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/CacheConfig.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/CacheConfig.java
@@ -1,6 +1,6 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
 import com.github.benmanes.caffeine.cache.Cache;
 import com.github.benmanes.caffeine.cache.Caffeine;
 import org.springframework.beans.factory.annotation.Value;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/DataCiteConfig.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/DataCiteConfig.java
similarity index 97%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/config/DataCiteConfig.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/DataCiteConfig.java
index 9667553119f283b820ca1f0f98123181b10c76c9..1c00d625ddd4f0f01295088d33d5e8671b3fbcab 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/DataCiteConfig.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/DataCiteConfig.java
@@ -1,4 +1,4 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import lombok.Getter;
 import lombok.extern.log4j.Log4j2;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/EndpointConfig.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/EndpointConfig.java
similarity index 86%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/config/EndpointConfig.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/EndpointConfig.java
index 20e2805a035126a4fe70f244cdf03273f9de94a4..2512863082899183b6c3f89978a897b83198eb4b 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/EndpointConfig.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/EndpointConfig.java
@@ -1,4 +1,4 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import lombok.Getter;
 import org.springframework.beans.factory.annotation.Value;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/GatewayConfig.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/GatewayConfig.java
similarity index 94%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/config/GatewayConfig.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/GatewayConfig.java
index d76a23d050bd0d1270acaf5c4363b6331914b370..3fe7f59c777db4662df39cb336894718e1e78234 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/GatewayConfig.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/GatewayConfig.java
@@ -1,13 +1,12 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
-import at.tuwien.auth.InternalRequestInterceptor;
-import at.tuwien.service.CredentialService;
+import at.ac.tuwien.ifs.dbrepo.auth.InternalRequestInterceptor;
+import at.ac.tuwien.ifs.dbrepo.service.CredentialService;
 import lombok.Getter;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.*;
-import org.springframework.http.client.support.BasicAuthenticationInterceptor;
 import org.springframework.web.client.RestTemplate;
 import org.springframework.web.util.DefaultUriBuilderFactory;
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/JacksonConfig.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/JacksonConfig.java
similarity index 96%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/config/JacksonConfig.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/JacksonConfig.java
index 61e7f2b180f15497b08c93ad8e474dc6a7722336..8df011ab76a2b2471f94086143d8db8e3c4a916f 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/JacksonConfig.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/JacksonConfig.java
@@ -1,4 +1,4 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/JenaConfig.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/JenaConfig.java
similarity index 92%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/config/JenaConfig.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/JenaConfig.java
index e9395e4470c034b0f98a5abd3e1d163c6c7fecea..4e1868e8b8c1b3fdb594525cf185e88448f74687 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/JenaConfig.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/JenaConfig.java
@@ -1,4 +1,4 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import lombok.Getter;
 import org.apache.jena.query.Dataset;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/KeycloakConfig.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/KeycloakConfig.java
similarity index 96%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/config/KeycloakConfig.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/KeycloakConfig.java
index 4b62b61dcba2e06f9847d9eb20042b1f535bbc8d..34596462e79465704c32683b9a15663bb9296f12 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/KeycloakConfig.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/KeycloakConfig.java
@@ -1,4 +1,4 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import lombok.Getter;
 import org.keycloak.admin.client.Keycloak;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/MetadataConfig.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/MetadataConfig.java
similarity index 93%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/config/MetadataConfig.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/MetadataConfig.java
index d2484407ee7d640ef7f254ed95b119c15c5e7cf4..f79360781e6609a499a6c794275565d3f1e9180b 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/MetadataConfig.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/MetadataConfig.java
@@ -1,4 +1,4 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import lombok.Getter;
 import org.springframework.beans.factory.annotation.Value;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/MetricsConfig.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/MetricsConfig.java
similarity index 90%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/config/MetricsConfig.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/MetricsConfig.java
index f955451abec1bc0eb3196cad2ed7a5b2cc4d3722..8509d27c4407e66e1554d5bf9aeefd1623743b13 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/MetricsConfig.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/MetricsConfig.java
@@ -1,10 +1,10 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.repository.IdentifierRepository;
-import at.tuwien.repository.TableRepository;
-import at.tuwien.repository.ViewRepository;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.IdentifierRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.TableRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.ViewRepository;
 import io.micrometer.core.instrument.Gauge;
 import io.micrometer.core.instrument.Metrics;
 import io.micrometer.observation.ObservationRegistry;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/RabbitConfig.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/RabbitConfig.java
similarity index 93%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/config/RabbitConfig.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/RabbitConfig.java
index 0ed5001dd434d400a792bd3700b902d43b435de0..a727e972e253382a8a9bfa4fd25931e642e83dcf 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/RabbitConfig.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/RabbitConfig.java
@@ -1,4 +1,4 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import lombok.Getter;
 import lombok.extern.log4j.Log4j2;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/S3Config.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/S3Config.java
similarity index 97%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/config/S3Config.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/S3Config.java
index 6c82c29e25711de3e3a47ebcc9f86a359d31f6be..6202d2b2a85edf1a35b739fa45892fc364d2eb09 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/S3Config.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/S3Config.java
@@ -1,4 +1,4 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import lombok.Getter;
 import lombok.extern.slf4j.Slf4j;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/SecurityConfig.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/SecurityConfig.java
similarity index 91%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/config/SecurityConfig.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/SecurityConfig.java
index 03be90470ff1e54aef7a608f89490f45b9736f17..1d08f95630dc51c87c97c7d7f721c83adfaa16c6 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/SecurityConfig.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/SecurityConfig.java
@@ -1,4 +1,4 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/TemplateConfig.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/TemplateConfig.java
similarity index 96%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/config/TemplateConfig.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/TemplateConfig.java
index d38f17c6cb936e354b6b7362ccf8808476e24b47..28c5210e2947145ee3cd4cc98b59f0a209ce27ce 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/TemplateConfig.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/TemplateConfig.java
@@ -1,4 +1,4 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/WebSecurityConfig.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/WebSecurityConfig.java
similarity index 95%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/config/WebSecurityConfig.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/WebSecurityConfig.java
index 24133846961d340df4e04a3cf425470d68519a74..653c25c3378c30a710864b4a1f3ed5164262ed31 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/WebSecurityConfig.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/WebSecurityConfig.java
@@ -1,8 +1,8 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
-import at.tuwien.auth.AuthTokenFilter;
-import at.tuwien.auth.BasicAuthenticationProvider;
-import at.tuwien.service.CredentialService;
+import at.ac.tuwien.ifs.dbrepo.auth.AuthTokenFilter;
+import at.ac.tuwien.ifs.dbrepo.auth.BasicAuthenticationProvider;
+import at.ac.tuwien.ifs.dbrepo.service.CredentialService;
 import io.swagger.v3.oas.annotations.enums.SecuritySchemeType;
 import io.swagger.v3.oas.annotations.security.SecurityScheme;
 import jakarta.servlet.http.HttpServletResponse;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/BrokerServiceGateway.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/BrokerServiceGateway.java
similarity index 85%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/BrokerServiceGateway.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/BrokerServiceGateway.java
index 973864164e950618b6f9893f879daa81a8c91023..44e39389806b06f276bdd52fbe52dcff77c2ba5f 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/BrokerServiceGateway.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/BrokerServiceGateway.java
@@ -1,8 +1,8 @@
-package at.tuwien.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.api.amqp.*;
-import at.ac.tuwien.ifs.dbrepo.api.user.ExchangeUpdatePermissionsDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.amqp.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.ExchangeUpdatePermissionsDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 
 public interface BrokerServiceGateway {
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/CrossrefGateway.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/CrossrefGateway.java
similarity index 70%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/CrossrefGateway.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/CrossrefGateway.java
index 359de85f70569a12e38b5f1d215e4cf39b0974d5..07e4c5b1e22686a41f218fb70becffc34e55d485 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/CrossrefGateway.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/CrossrefGateway.java
@@ -1,7 +1,7 @@
-package at.tuwien.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.api.crossref.CrossrefDto;
-import at.ac.tuwien.ifs.dbrepo.exception.DoiNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.api.crossref.CrossrefDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DoiNotFoundException;
 
 public interface CrossrefGateway {
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/DashboardServiceGateway.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/DashboardServiceGateway.java
similarity index 79%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/DashboardServiceGateway.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/DashboardServiceGateway.java
index 768bd8066b75e787f4ec54a4ecb6340d51f79c6e..95df0c65483d1693c331579f9d9a97e3dce88c32 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/DashboardServiceGateway.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/DashboardServiceGateway.java
@@ -1,12 +1,12 @@
-package at.tuwien.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.CreateDashboardDto;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.CreateDashboardResponseDto;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.PermissionTypeDto;
-import at.ac.tuwien.ifs.dbrepo.exception.DashboardServiceConnectionException;
-import at.ac.tuwien.ifs.dbrepo.exception.DashboardServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.CreateDashboardDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.CreateDashboardResponseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.PermissionTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DashboardServiceConnectionException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DashboardServiceException;
 
 public interface DashboardServiceGateway {
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/DataServiceGateway.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/DataServiceGateway.java
similarity index 91%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/DataServiceGateway.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/DataServiceGateway.java
index 8e43c5e7eb88f677db8c5f1040d23a049d293065..d7d54ca8e7e31ca982f7765da626c4895017f9d0 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/DataServiceGateway.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/DataServiceGateway.java
@@ -1,17 +1,17 @@
-package at.tuwien.gateway;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.CreateViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.internal.CreateDatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.CreateTableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableStatisticDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.internal.UpdateUserPasswordDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+package at.ac.tuwien.ifs.dbrepo.gateway;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.CreateViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.internal.CreateDatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.CreateTableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableStatisticDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.internal.UpdateUserPasswordDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 
 import java.util.List;
 import java.util.UUID;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/KeycloakGateway.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/KeycloakGateway.java
similarity index 65%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/KeycloakGateway.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/KeycloakGateway.java
index 738af7a3835d4c171bd510862b894c3aefcf6434..a829db05bf6d4b0b57895fd791b23de3e26da873 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/KeycloakGateway.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/KeycloakGateway.java
@@ -1,9 +1,9 @@
-package at.tuwien.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.UserNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UserNotFoundException;
 import org.keycloak.representations.idm.UserRepresentation;
 
 import java.util.UUID;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/OrcidGateway.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/OrcidGateway.java
similarity index 69%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/OrcidGateway.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/OrcidGateway.java
index 3bca2250e24f3ae3c88f0876d599e10b34fe8513..98336290b306d4c9b20996c59367fb4f4e68d6eb 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/OrcidGateway.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/OrcidGateway.java
@@ -1,7 +1,7 @@
-package at.tuwien.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.api.orcid.OrcidDto;
-import at.ac.tuwien.ifs.dbrepo.exception.OrcidNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.OrcidDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.OrcidNotFoundException;
 import org.springframework.stereotype.Service;
 
 @Service
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/RorGateway.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/RorGateway.java
similarity index 69%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/RorGateway.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/RorGateway.java
index b4208eb48339f68f4f01ba551163c0c3f4443d72..8a49aa636b8595be2719a01ff83a989268396a05 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/RorGateway.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/RorGateway.java
@@ -1,7 +1,7 @@
-package at.tuwien.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.api.ror.RorDto;
-import at.ac.tuwien.ifs.dbrepo.exception.RorNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.api.ror.RorDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.RorNotFoundException;
 
 public interface RorGateway {
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/SearchServiceGateway.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/SearchServiceGateway.java
similarity index 60%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/SearchServiceGateway.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/SearchServiceGateway.java
index 2742e3e0e574a6e848ccdbbcdf60bedd5b391dc8..fdf4b430fea842e2214aecb30cf34763331f2126 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/SearchServiceGateway.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/SearchServiceGateway.java
@@ -1,8 +1,8 @@
-package at.tuwien.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseBriefDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 
 import java.util.UUID;
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/BrokerServiceGatewayImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/BrokerServiceGatewayImpl.java
similarity index 94%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/BrokerServiceGatewayImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/BrokerServiceGatewayImpl.java
index d99a0e015c988a35baa66ab460331bd960a9d33f..9c35fa418223cbd33a2363649e1486c9bdd5e004 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/BrokerServiceGatewayImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/BrokerServiceGatewayImpl.java
@@ -1,17 +1,16 @@
-package at.tuwien.gateway.impl;
+package at.ac.tuwien.ifs.dbrepo.gateway.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.amqp.*;
-import at.ac.tuwien.ifs.dbrepo.api.user.ExchangeUpdatePermissionsDto;
-import at.tuwien.config.RabbitConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.BrokerServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.core.api.amqp.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.ExchangeUpdatePermissionsDto;
+import at.ac.tuwien.ifs.dbrepo.config.RabbitConfig;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.BrokerServiceGateway;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.http.*;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.HttpServerErrorException;
-import org.springframework.web.client.ResourceAccessException;
 import org.springframework.web.client.RestTemplate;
 
 @Slf4j
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/CrossrefGatewayImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/CrossrefGatewayImpl.java
similarity index 81%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/CrossrefGatewayImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/CrossrefGatewayImpl.java
index 099c63efbabb533a2f5854d65d6c35e59bcc58d7..e718c388b49b99b80374afe63f65c6f1fc505ec4 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/CrossrefGatewayImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/CrossrefGatewayImpl.java
@@ -1,18 +1,16 @@
-package at.tuwien.gateway.impl;
+package at.ac.tuwien.ifs.dbrepo.gateway.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.crossref.CrossrefDto;
-import at.tuwien.config.GatewayConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.DoiNotFoundException;
-import at.tuwien.gateway.CrossrefGateway;
+import at.ac.tuwien.ifs.dbrepo.core.api.crossref.CrossrefDto;
+import at.ac.tuwien.ifs.dbrepo.config.GatewayConfig;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DoiNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.gateway.CrossrefGateway;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.HttpServerErrorException;
-import org.springframework.web.client.ResourceAccessException;
 import org.springframework.web.client.RestTemplate;
 
 @Log4j2
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/DashboardServiceGatewayImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/DashboardServiceGatewayImpl.java
similarity index 91%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/DashboardServiceGatewayImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/DashboardServiceGatewayImpl.java
index 6be2b761ed159be992a65f5721763483f387a489..8f36db0f3b5814aa3ee3a0729c0248a7690e9451 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/DashboardServiceGatewayImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/DashboardServiceGatewayImpl.java
@@ -1,15 +1,15 @@
-package at.tuwien.gateway.impl;
+package at.ac.tuwien.ifs.dbrepo.gateway.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.CreateDashboardDto;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.CreateDashboardResponseDto;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.PermissionTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.UpdateDashboardAccessDto;
-import at.tuwien.config.GatewayConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.DashboardServiceConnectionException;
-import at.ac.tuwien.ifs.dbrepo.exception.DashboardServiceException;
-import at.tuwien.gateway.DashboardServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.CreateDashboardDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.CreateDashboardResponseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.PermissionTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.UpdateDashboardAccessDto;
+import at.ac.tuwien.ifs.dbrepo.config.GatewayConfig;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DashboardServiceConnectionException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DashboardServiceException;
+import at.ac.tuwien.ifs.dbrepo.gateway.DashboardServiceGateway;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/DataServiceGatewayImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/DataServiceGatewayImpl.java
similarity index 96%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/DataServiceGatewayImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/DataServiceGatewayImpl.java
index d6846ff2b675f7dbb34ea0fa558b9c588ecd53a5..41ab74b9cc1e97a755669ea431ca2907c1e52c98 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/DataServiceGatewayImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/DataServiceGatewayImpl.java
@@ -1,16 +1,16 @@
-package at.tuwien.gateway.impl;
+package at.ac.tuwien.ifs.dbrepo.gateway.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.internal.CreateDatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.CreateTableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableStatisticDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.internal.UpdateUserPasswordDto;
-import at.tuwien.config.GatewayConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.DataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.internal.CreateDatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.CreateTableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableStatisticDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.internal.UpdateUserPasswordDto;
+import at.ac.tuwien.ifs.dbrepo.config.GatewayConfig;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.DataServiceGateway;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.http.HttpEntity;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/KeycloakGatewayImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/KeycloakGatewayImpl.java
similarity index 90%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/KeycloakGatewayImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/KeycloakGatewayImpl.java
index d443015141653c8d94123ca819f47fd9156bc98e..1095f9acaa4909b1e54b1fff014485eafd9f18d3 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/KeycloakGatewayImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/KeycloakGatewayImpl.java
@@ -1,12 +1,12 @@
-package at.tuwien.gateway.impl;
+package at.ac.tuwien.ifs.dbrepo.gateway.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserUpdateDto;
-import at.tuwien.config.KeycloakConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.UserNotFoundException;
-import at.tuwien.gateway.KeycloakGateway;
-import at.tuwien.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.config.KeycloakConfig;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UserNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.gateway.KeycloakGateway;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
 import jakarta.ws.rs.ForbiddenException;
 import jakarta.ws.rs.NotAuthorizedException;
 import jakarta.ws.rs.NotFoundException;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/OrcidGatewayImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/OrcidGatewayImpl.java
similarity index 80%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/OrcidGatewayImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/OrcidGatewayImpl.java
index fe3e475a690dd12b2f15251fbc3b4c78a299b75c..78751b72be9bb69819290d6577aa27686d14cb9d 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/OrcidGatewayImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/OrcidGatewayImpl.java
@@ -1,17 +1,15 @@
-package at.tuwien.gateway.impl;
+package at.ac.tuwien.ifs.dbrepo.gateway.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.orcid.OrcidDto;
-import at.ac.tuwien.ifs.dbrepo.exception.OrcidNotFoundException;
-import at.tuwien.gateway.OrcidGateway;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.OrcidDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.OrcidNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.gateway.OrcidGateway;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.HttpServerErrorException;
-import org.springframework.web.client.ResourceAccessException;
 import org.springframework.web.client.RestTemplate;
 
 @Log4j2
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/RorGatewayImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/RorGatewayImpl.java
similarity index 81%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/RorGatewayImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/RorGatewayImpl.java
index d2ad4523e1479b7680cc68b1324594a979944d3f..b8af43362d2c029e97f2853572ca94fa6359598e 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/RorGatewayImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/RorGatewayImpl.java
@@ -1,18 +1,16 @@
-package at.tuwien.gateway.impl;
+package at.ac.tuwien.ifs.dbrepo.gateway.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.ror.RorDto;
-import at.tuwien.config.GatewayConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.RorNotFoundException;
-import at.tuwien.gateway.RorGateway;
+import at.ac.tuwien.ifs.dbrepo.core.api.ror.RorDto;
+import at.ac.tuwien.ifs.dbrepo.config.GatewayConfig;
+import at.ac.tuwien.ifs.dbrepo.core.exception.RorNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.gateway.RorGateway;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.HttpServerErrorException;
-import org.springframework.web.client.ResourceAccessException;
 import org.springframework.web.client.RestTemplate;
 
 @Log4j2
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/SearchServiceGatewayImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/SearchServiceGatewayImpl.java
similarity index 89%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/SearchServiceGatewayImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/SearchServiceGatewayImpl.java
index 13517aa073ce86600f46f92679891190e0de6b6f..c7d659380e491e7d0716dd425c24429c806a7872 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/SearchServiceGatewayImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/SearchServiceGatewayImpl.java
@@ -1,13 +1,13 @@
-package at.tuwien.gateway.impl;
+package at.ac.tuwien.ifs.dbrepo.gateway.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseBriefDto;
-import at.tuwien.config.GatewayConfig;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.exception.DatabaseNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.SearchServiceConnectionException;
-import at.ac.tuwien.ifs.dbrepo.exception.SearchServiceException;
-import at.tuwien.gateway.SearchServiceGateway;
-import at.tuwien.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseBriefDto;
+import at.ac.tuwien.ifs.dbrepo.config.GatewayConfig;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DatabaseNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.SearchServiceConnectionException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.SearchServiceException;
+import at.ac.tuwien.ifs.dbrepo.gateway.SearchServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/AccessService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/AccessService.java
similarity index 92%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/AccessService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/AccessService.java
index 559d1ff1714107bbec283f898e8af9e61ab1c4ca..21f8f0444b39ba90de24e889d802bec4ddd12b13 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/AccessService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/AccessService.java
@@ -1,10 +1,10 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 
 import java.security.Principal;
 import java.util.List;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/AuthenticationService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/AuthenticationService.java
similarity index 65%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/AuthenticationService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/AuthenticationService.java
index 0c168383a77bcde1bcf1076b0ca863828febd251..808c774e23e69f2ee072ca1a2199a593993f9108 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/AuthenticationService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/AuthenticationService.java
@@ -1,8 +1,8 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.UserNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UserNotFoundException;
 
 public interface AuthenticationService {
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/BannerMessageService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/BannerMessageService.java
similarity index 81%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/BannerMessageService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/BannerMessageService.java
index e4d008d8e74c1bf40aefac51bd70cdfa8dbfd7c0..98c6b1267938cf8afa190729f001b4f3a00ff67e 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/BannerMessageService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/BannerMessageService.java
@@ -1,9 +1,9 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.maintenance.BannerMessage;
-import at.ac.tuwien.ifs.dbrepo.exception.MessageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.maintenance.BannerMessage;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MessageNotFoundException;
 
 import java.util.List;
 import java.util.UUID;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/BrokerService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/BrokerService.java
similarity index 86%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/BrokerService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/BrokerService.java
index 603f4e8816993bbce6747df1ce84210198e48b00..6f9109cbe0c72b0b1d059513d72a183c1b4ce329 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/BrokerService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/BrokerService.java
@@ -1,7 +1,7 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 
 public interface BrokerService {
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ConceptService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ConceptService.java
similarity index 75%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ConceptService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ConceptService.java
index 8b7287d5789d981d2a89ca19dc2dbbcc098e79b0..ec582b10d8d52d19db5ff887e2184c67906061af 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ConceptService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ConceptService.java
@@ -1,7 +1,7 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnConcept;
-import at.ac.tuwien.ifs.dbrepo.exception.ConceptNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnConcept;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ConceptNotFoundException;
 
 import java.util.List;
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ContainerService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ContainerService.java
similarity index 78%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ContainerService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ContainerService.java
index b91d13550219cfb52dda9c29cdf30b8e53ac85b4..fcda5ef460c7f3fd2650f7fbeec5ac3c48fa9ea4 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ContainerService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ContainerService.java
@@ -1,10 +1,10 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.CreateContainerDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
-import at.ac.tuwien.ifs.dbrepo.exception.ContainerAlreadyExistsException;
-import at.ac.tuwien.ifs.dbrepo.exception.ContainerNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.CreateContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.Container;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ContainerAlreadyExistsException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ContainerNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageNotFoundException;
 
 import java.util.List;
 import java.util.UUID;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/CredentialService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/CredentialService.java
similarity index 80%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/CredentialService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/CredentialService.java
index 469db41a023a922c12f6b8ad19846ab7837e8467..4a54849006fa031872af1b1aa43938036e3ac243 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/CredentialService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/CredentialService.java
@@ -1,6 +1,6 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
 
 public interface CredentialService {
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/DashboardService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/DashboardService.java
similarity index 80%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/DashboardService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/DashboardService.java
index c2ca00ed419d6e474ae2808934c5ec44ae429a30..77be6e24477aa72cc3070602d882916fc05313ab 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/DashboardService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/DashboardService.java
@@ -1,11 +1,11 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.CreateDashboardResponseDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.DashboardServiceConnectionException;
-import at.ac.tuwien.ifs.dbrepo.exception.DashboardServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.CreateDashboardResponseDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DashboardServiceConnectionException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DashboardServiceException;
 
 public interface DashboardService {
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/DatabaseService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/DatabaseService.java
similarity index 95%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/DatabaseService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/DatabaseService.java
index 34dad941b9b9c8157b01388adc8a9834894beb26..351e383b05ed01cbffbf4e3685f79b2b279b2eb2 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/DatabaseService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/DatabaseService.java
@@ -1,11 +1,11 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.CreateDatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseModifyVisibilityDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.CreateDatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseModifyVisibilityDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.Container;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/EntityService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/EntityService.java
similarity index 81%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/EntityService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/EntityService.java
index 76aa0dabf972bb71005cc7f1d370af163d7214e8..c767ad3a7b21b5d01a7e31f90a27f054f95ee1cc 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/EntityService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/EntityService.java
@@ -1,13 +1,13 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.semantics.EntityDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.TableColumnEntityDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumn;
-import at.ac.tuwien.ifs.dbrepo.entity.semantics.Ontology;
-import at.ac.tuwien.ifs.dbrepo.exception.MalformedException;
-import at.ac.tuwien.ifs.dbrepo.exception.OntologyNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.SemanticEntityNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.EntityDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.TableColumnEntityDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumn;
+import at.ac.tuwien.ifs.dbrepo.core.entity.semantics.Ontology;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.OntologyNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.SemanticEntityNotFoundException;
 
 import java.util.List;
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/IdentifierService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/IdentifierService.java
similarity index 93%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/IdentifierService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/IdentifierService.java
index bfd541fe7fc284a8322cd161d2a4c8580eaec791..ac23dc1b4f9e425307e057722fdbc31b18e0a660 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/IdentifierService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/IdentifierService.java
@@ -1,13 +1,13 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.api.identifier.BibliographyTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.CreateIdentifierDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierSaveDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierTypeDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.Identifier;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.BibliographyTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.CreateIdentifierDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierSaveDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Identifier;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import org.springframework.core.io.InputStreamResource;
 import org.springframework.stereotype.Service;
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ImageService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ImageService.java
similarity index 77%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ImageService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ImageService.java
index c732695ac7659c51dffffc0bb48de311ba87824b..09afe61aae70764e76e00da69d77dfae06bff640 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ImageService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ImageService.java
@@ -1,11 +1,11 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageChangeDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageCreateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.image.ContainerImage;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageAlreadyExistsException;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageInvalidException;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageNotFoundException;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageChangeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.image.ContainerImage;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageAlreadyExistsException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageInvalidException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageNotFoundException;
 
 import java.security.Principal;
 import java.util.List;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/LicenseService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/LicenseService.java
similarity index 74%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/LicenseService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/LicenseService.java
index 72a8aa0ee018ed67dbf1e7aa50ad118b9b19e02f..a0854ab3740ea45ee46d1f20b33003cbe588ad75 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/LicenseService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/LicenseService.java
@@ -1,7 +1,7 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.License;
-import at.ac.tuwien.ifs.dbrepo.exception.LicenseNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.License;
+import at.ac.tuwien.ifs.dbrepo.core.exception.LicenseNotFoundException;
 
 import java.util.List;
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/MetadataService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/MetadataService.java
similarity index 83%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/MetadataService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/MetadataService.java
index 656266fdbd9cc4c3ae6b231803df4b97a4986a50..bbc2d2d494784d55a6b77bd50898b3bac2ef96a2 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/MetadataService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/MetadataService.java
@@ -1,10 +1,10 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.user.external.ExternalMetadataDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.oaipmh.OaiErrorType;
-import at.tuwien.oaipmh.OaiListIdentifiersParameters;
-import at.tuwien.oaipmh.OaiRecordParameters;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.external.ExternalMetadataDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiErrorType;
+import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiListIdentifiersParameters;
+import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiRecordParameters;
 
 public interface MetadataService {
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/OntologyService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/OntologyService.java
similarity index 85%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/OntologyService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/OntologyService.java
index 8ddda5091ab5207992468e8cdb3902828750fda7..584ab4178cd6cba9ea22d610b11d98eedec5c963 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/OntologyService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/OntologyService.java
@@ -1,9 +1,9 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.semantics.OntologyCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.OntologyModifyDto;
-import at.ac.tuwien.ifs.dbrepo.entity.semantics.Ontology;
-import at.ac.tuwien.ifs.dbrepo.exception.OntologyNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.OntologyCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.OntologyModifyDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.semantics.Ontology;
+import at.ac.tuwien.ifs.dbrepo.core.exception.OntologyNotFoundException;
 
 import java.security.Principal;
 import java.util.List;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/StorageService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/StorageService.java
similarity index 89%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/StorageService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/StorageService.java
index 0d7998418e902e99ea8fcb7e8a761a356fc0b0b2..33a96b1296d29598b7df653e3dc5ba67e6b976ad 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/StorageService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/StorageService.java
@@ -1,7 +1,7 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.exception.StorageNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.StorageUnavailableException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.StorageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.StorageUnavailableException;
 
 import java.io.InputStream;
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/TableService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/TableService.java
similarity index 93%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/TableService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/TableService.java
index ce0cd81e12f1344706b0e0fbb5f3b341c8143624..b024698362dba56e45083d8f24f017f483e972ae 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/TableService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/TableService.java
@@ -1,12 +1,12 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.CreateTableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.ColumnSemanticsUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumn;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.CreateTableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.ColumnSemanticsUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumn;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 
 import java.security.Principal;
 import java.util.UUID;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/UnitService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/UnitService.java
similarity index 81%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/UnitService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/UnitService.java
index 696148e5819db720c5c5c16911e488eb6247e6d6..fcf37fbe5a3effca02da7bab976e748225bff834 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/UnitService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/UnitService.java
@@ -1,7 +1,7 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnUnit;
-import at.ac.tuwien.ifs.dbrepo.exception.UnitNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnUnit;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UnitNotFoundException;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/UserService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/UserService.java
similarity index 83%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/UserService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/UserService.java
index 6d2eb63afb64e45bcebde66f56d4b742351a37e0..3e244e8e8b954f9b08e363376ca78649c60ea0e5 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/UserService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/UserService.java
@@ -1,10 +1,10 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.auth.CreateUserDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.UserNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.api.auth.CreateUserDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UserNotFoundException;
 
 import java.util.List;
 import java.util.UUID;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ViewService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ViewService.java
similarity index 89%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ViewService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ViewService.java
index d88d0d84a38725cd7b75ea4b8af5da11d4df93f4..eda8cdd4430c591f64306f613c7b82209cff8aa6 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ViewService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ViewService.java
@@ -1,11 +1,11 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.CreateViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.View;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.CreateViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.View;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 
 import java.util.UUID;
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/AccessServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/AccessServiceImpl.java
similarity index 87%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/AccessServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/AccessServiceImpl.java
index 01cac24ee0d7a4bd5e6728268cf5b290d338dccd..c1cceea979af815311076b4cb9b2305990c25e82 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/AccessServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/AccessServiceImpl.java
@@ -1,16 +1,16 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.DataServiceGateway;
-import at.tuwien.gateway.SearchServiceGateway;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.service.AccessService;
-import at.tuwien.service.DatabaseService;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.DataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.SearchServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.service.AccessService;
+import at.ac.tuwien.ifs.dbrepo.service.DatabaseService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/AuthenticationServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/AuthenticationServiceImpl.java
similarity index 62%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/AuthenticationServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/AuthenticationServiceImpl.java
index 5db94a2f1a87344d47ff72b519670beb492b9ced..b2b485327120efc855a0ac13c3407ca06eec1355 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/AuthenticationServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/AuthenticationServiceImpl.java
@@ -1,10 +1,10 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.UserNotFoundException;
-import at.tuwien.gateway.KeycloakGateway;
-import at.tuwien.service.AuthenticationService;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UserNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.gateway.KeycloakGateway;
+import at.ac.tuwien.ifs.dbrepo.service.AuthenticationService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/BannerMessageServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/BannerMessageServiceImpl.java
similarity index 82%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/BannerMessageServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/BannerMessageServiceImpl.java
index 15c56da40b37c71cf5dad69b0dbd80fef2580f72..ed64c37a7e814d86bd71ba15ea56861b76b26d36 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/BannerMessageServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/BannerMessageServiceImpl.java
@@ -1,12 +1,12 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.maintenance.BannerMessage;
-import at.ac.tuwien.ifs.dbrepo.exception.MessageNotFoundException;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.repository.BannerMessageRepository;
-import at.tuwien.service.BannerMessageService;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.maintenance.BannerMessage;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MessageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.repository.BannerMessageRepository;
+import at.ac.tuwien.ifs.dbrepo.service.BannerMessageService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/BrokerServiceRabbitMqImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/BrokerServiceRabbitMqImpl.java
similarity index 88%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/BrokerServiceRabbitMqImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/BrokerServiceRabbitMqImpl.java
index c0b3eb361c1597d326966d9ba3a2eb97f84cd4fb..709e7cebde2bcd054f8c59d4643866cb20a1563d 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/BrokerServiceRabbitMqImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/BrokerServiceRabbitMqImpl.java
@@ -1,13 +1,13 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.amqp.GrantExchangePermissionsDto;
-import at.ac.tuwien.ifs.dbrepo.api.amqp.GrantVirtualHostPermissionsDto;
-import at.tuwien.config.RabbitConfig;
-import at.ac.tuwien.ifs.dbrepo.entity.database.AccessType;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.BrokerServiceGateway;
-import at.tuwien.service.BrokerService;
+import at.ac.tuwien.ifs.dbrepo.core.api.amqp.GrantExchangePermissionsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.amqp.GrantVirtualHostPermissionsDto;
+import at.ac.tuwien.ifs.dbrepo.config.RabbitConfig;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.AccessType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.BrokerServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.service.BrokerService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ConceptServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ConceptServiceImpl.java
similarity index 80%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ConceptServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ConceptServiceImpl.java
index e49eb155fcb6004c1f8646e0e904552b9066849f..93f64a16ea13efa86934f089ce5f8a9d778fc47e 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ConceptServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ConceptServiceImpl.java
@@ -1,9 +1,9 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnConcept;
-import at.ac.tuwien.ifs.dbrepo.exception.ConceptNotFoundException;
-import at.tuwien.repository.ConceptRepository;
-import at.tuwien.service.ConceptService;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnConcept;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ConceptNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.repository.ConceptRepository;
+import at.ac.tuwien.ifs.dbrepo.service.ConceptService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ContainerServiceImpl.java
similarity index 84%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ContainerServiceImpl.java
index c555f8213abfe3a1d010c5275e9e9f99f63c26de..1a62466996ed8bec94d14ae69c30c5de4991f6fd 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ContainerServiceImpl.java
@@ -1,15 +1,15 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.CreateContainerDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
-import at.ac.tuwien.ifs.dbrepo.entity.container.image.ContainerImage;
-import at.ac.tuwien.ifs.dbrepo.exception.ContainerAlreadyExistsException;
-import at.ac.tuwien.ifs.dbrepo.exception.ContainerNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageNotFoundException;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.ImageRepository;
-import at.tuwien.service.ContainerService;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.CreateContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.Container;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.image.ContainerImage;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ContainerAlreadyExistsException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ContainerNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.repository.ContainerRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.ImageRepository;
+import at.ac.tuwien.ifs.dbrepo.service.ContainerService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.dao.DataAccessException;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/CredentialServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/CredentialServiceImpl.java
similarity index 85%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/CredentialServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/CredentialServiceImpl.java
index fd43aee8dbc0faaa7d040dce6bbc5b4f447de0bd..65597ec056b7f03cc4bd9f88db11f2e15c212485 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/CredentialServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/CredentialServiceImpl.java
@@ -1,8 +1,8 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
-import at.tuwien.gateway.KeycloakGateway;
-import at.tuwien.service.CredentialService;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.gateway.KeycloakGateway;
+import at.ac.tuwien.ifs.dbrepo.service.CredentialService;
 import com.github.benmanes.caffeine.cache.Cache;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DashboardServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DashboardServiceImpl.java
similarity index 71%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DashboardServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DashboardServiceImpl.java
index 5b5fcc7e6ae2336962f649ebb023687cbe6055e0..2b0c50ef3273604a05cdb141a1de2702f65e7314 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DashboardServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DashboardServiceImpl.java
@@ -1,14 +1,14 @@
-package at.tuwien.service.impl;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.CreateDashboardResponseDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.DashboardServiceConnectionException;
-import at.ac.tuwien.ifs.dbrepo.exception.DashboardServiceException;
-import at.tuwien.gateway.DashboardServiceGateway;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.DashboardService;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.CreateDashboardResponseDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DashboardServiceConnectionException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DashboardServiceException;
+import at.ac.tuwien.ifs.dbrepo.gateway.DashboardServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.DashboardService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DataCiteIdentifierServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DataCiteIdentifierServiceImpl.java
similarity index 86%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DataCiteIdentifierServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DataCiteIdentifierServiceImpl.java
index 844774e92ade20a6030c9a72693da3e705c7477f..0a20ac72675e046ac651834294301ee5608047ed 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DataCiteIdentifierServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DataCiteIdentifierServiceImpl.java
@@ -1,24 +1,24 @@
-package at.tuwien.service.impl;
-
-import at.ac.tuwien.ifs.dbrepo.api.datacite.DataCiteBody;
-import at.ac.tuwien.ifs.dbrepo.api.datacite.DataCiteData;
-import at.ac.tuwien.ifs.dbrepo.api.datacite.doi.DataCiteCreateDoi;
-import at.ac.tuwien.ifs.dbrepo.api.datacite.doi.DataCiteDoi;
-import at.ac.tuwien.ifs.dbrepo.api.datacite.doi.DataCiteDoiEvent;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.BibliographyTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.CreateIdentifierDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierSaveDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierTypeDto;
-import at.tuwien.config.DataCiteConfig;
-import at.tuwien.config.EndpointConfig;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.Identifier;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.IdentifierStatusType;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.repository.IdentifierRepository;
-import at.tuwien.service.IdentifierService;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.datacite.DataCiteBody;
+import at.ac.tuwien.ifs.dbrepo.core.api.datacite.DataCiteData;
+import at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi.DataCiteCreateDoi;
+import at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi.DataCiteDoi;
+import at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi.DataCiteDoiEvent;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.BibliographyTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.CreateIdentifierDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierSaveDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierTypeDto;
+import at.ac.tuwien.ifs.dbrepo.config.DataCiteConfig;
+import at.ac.tuwien.ifs.dbrepo.config.EndpointConfig;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Identifier;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.IdentifierStatusType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.repository.IdentifierRepository;
+import at.ac.tuwien.ifs.dbrepo.service.IdentifierService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.context.annotation.Primary;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DatabaseServiceImpl.java
similarity index 90%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DatabaseServiceImpl.java
index 5ae46f9cd0d4b2c047f2d2ea993515ecbd4a6fc8..7fa1d8063c996242750eaff5d62ddca4fb952ef9 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DatabaseServiceImpl.java
@@ -1,28 +1,28 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.CreateDatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseModifyVisibilityDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.internal.UpdateUserPasswordDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.View;
-import at.ac.tuwien.ifs.dbrepo.entity.database.ViewColumn;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumn;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.foreignKey.ForeignKey;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.foreignKey.ForeignKeyReference;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.primaryKey.PrimaryKey;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.unique.Unique;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.DataServiceGateway;
-import at.tuwien.gateway.SearchServiceGateway;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.service.DatabaseService;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.CreateDatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseModifyVisibilityDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.internal.UpdateUserPasswordDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.Container;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.View;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.ViewColumn;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumn;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.foreignKey.ForeignKey;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.foreignKey.ForeignKeyReference;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.primaryKey.PrimaryKey;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.unique.Unique;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.DataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.SearchServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.service.DatabaseService;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.lang3.RandomStringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -117,7 +117,7 @@ public class DatabaseServiceImpl implements DatabaseService {
                 .identifiers(new LinkedList<>())
                 .build();
         /* create in data database */
-        final at.ac.tuwien.ifs.dbrepo.api.database.internal.CreateDatabaseDto payload = at.ac.tuwien.ifs.dbrepo.api.database.internal.CreateDatabaseDto.builder()
+        final at.ac.tuwien.ifs.dbrepo.core.api.database.internal.CreateDatabaseDto payload = at.ac.tuwien.ifs.dbrepo.core.api.database.internal.CreateDatabaseDto.builder()
                 .containerId(data.getCid())
                 .userId(user.getId())
                 .username(user.getUsername())
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/EntityServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/EntityServiceImpl.java
similarity index 91%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/EntityServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/EntityServiceImpl.java
index f82d9a47af87050ab86d28cc9f31348b6935fbfa..60001b92ac0685e424b468caeea10a1c367fdfe2 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/EntityServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/EntityServiceImpl.java
@@ -1,15 +1,15 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.semantics.EntityDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.TableColumnEntityDto;
-import at.tuwien.config.JenaConfig;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumn;
-import at.ac.tuwien.ifs.dbrepo.entity.semantics.Ontology;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.mapper.SparqlMapper;
-import at.tuwien.service.EntityService;
-import at.tuwien.service.OntologyService;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.EntityDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.TableColumnEntityDto;
+import at.ac.tuwien.ifs.dbrepo.config.JenaConfig;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumn;
+import at.ac.tuwien.ifs.dbrepo.core.entity.semantics.Ontology;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.mapper.SparqlMapper;
+import at.ac.tuwien.ifs.dbrepo.service.EntityService;
+import at.ac.tuwien.ifs.dbrepo.service.OntologyService;
 import lombok.extern.log4j.Log4j2;
 import org.apache.jena.query.*;
 import org.apache.jena.rdf.model.RDFNode;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/IdentifierServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/IdentifierServiceImpl.java
similarity index 92%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/IdentifierServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/IdentifierServiceImpl.java
index b818e853603f3a12a0fb1192245e783eb000bbe3..eb600fd0a35c1a4e35270eb40b5948dc8a1be17b 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/IdentifierServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/IdentifierServiceImpl.java
@@ -1,25 +1,25 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.BibliographyTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.CreateIdentifierDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierSaveDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierTypeDto;
-import at.tuwien.config.MetadataConfig;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.LanguageType;
-import at.ac.tuwien.ifs.dbrepo.entity.database.View;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.Identifier;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.IdentifierStatusType;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.IdentifierTitle;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.DataServiceGateway;
-import at.tuwien.gateway.SearchServiceGateway;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.repository.IdentifierRepository;
-import at.tuwien.service.IdentifierService;
-import at.tuwien.service.ViewService;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.BibliographyTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.CreateIdentifierDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierSaveDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierTypeDto;
+import at.ac.tuwien.ifs.dbrepo.config.MetadataConfig;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.LanguageType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.View;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Identifier;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.IdentifierStatusType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.IdentifierTitle;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.DataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.SearchServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.repository.IdentifierRepository;
+import at.ac.tuwien.ifs.dbrepo.service.IdentifierService;
+import at.ac.tuwien.ifs.dbrepo.service.ViewService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.io.IOUtils;
 import org.springframework.core.io.InputStreamResource;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ImageServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ImageServiceImpl.java
similarity index 85%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ImageServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ImageServiceImpl.java
index a4ea58b80c9badbda5a012a2ba8b06f9f548e982..5e497b4b6f7146156a97bce42b3afb201550ef82 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ImageServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ImageServiceImpl.java
@@ -1,14 +1,14 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageChangeDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageCreateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.image.ContainerImage;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageAlreadyExistsException;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageInvalidException;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageNotFoundException;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.repository.ImageRepository;
-import at.tuwien.service.ImageService;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageChangeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.image.ContainerImage;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageAlreadyExistsException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageInvalidException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.repository.ImageRepository;
+import at.ac.tuwien.ifs.dbrepo.service.ImageService;
 import jakarta.validation.ConstraintViolationException;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/LicenseServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/LicenseServiceImpl.java
similarity index 76%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/LicenseServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/LicenseServiceImpl.java
index 0fe72f0f57786bff988c4b229455a4818d5cd6a1..41765fb36a51ce192bd8b28867f78751293b5e0b 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/LicenseServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/LicenseServiceImpl.java
@@ -1,9 +1,9 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.License;
-import at.ac.tuwien.ifs.dbrepo.exception.LicenseNotFoundException;
-import at.tuwien.repository.LicenseRepository;
-import at.tuwien.service.LicenseService;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.License;
+import at.ac.tuwien.ifs.dbrepo.core.exception.LicenseNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.repository.LicenseRepository;
+import at.ac.tuwien.ifs.dbrepo.service.LicenseService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.stereotype.Service;
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/MetadataServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/MetadataServiceImpl.java
similarity index 89%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/MetadataServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/MetadataServiceImpl.java
index 4f26ebd111a7226e8adfb2eeefbbb4b4de1f6232..cc81f80fc336805ec634369bc8bf63064c72c9ab 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/MetadataServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/MetadataServiceImpl.java
@@ -1,22 +1,22 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.crossref.CrossrefDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.OrcidDto;
-import at.ac.tuwien.ifs.dbrepo.api.ror.RorDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.external.ExternalMetadataDto;
-import at.tuwien.config.MetadataConfig;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.Identifier;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.CrossrefGateway;
-import at.tuwien.gateway.OrcidGateway;
-import at.tuwien.gateway.RorGateway;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.oaipmh.OaiErrorType;
-import at.tuwien.oaipmh.OaiListIdentifiersParameters;
-import at.tuwien.oaipmh.OaiRecordParameters;
-import at.tuwien.repository.IdentifierRepository;
-import at.tuwien.service.IdentifierService;
-import at.tuwien.service.MetadataService;
+import at.ac.tuwien.ifs.dbrepo.core.api.crossref.CrossrefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.OrcidDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.ror.RorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.external.ExternalMetadataDto;
+import at.ac.tuwien.ifs.dbrepo.config.MetadataConfig;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Identifier;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.CrossrefGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.OrcidGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.RorGateway;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiErrorType;
+import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiListIdentifiersParameters;
+import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiRecordParameters;
+import at.ac.tuwien.ifs.dbrepo.repository.IdentifierRepository;
+import at.ac.tuwien.ifs.dbrepo.service.IdentifierService;
+import at.ac.tuwien.ifs.dbrepo.service.MetadataService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/OntologyServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/OntologyServiceImpl.java
similarity index 83%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/OntologyServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/OntologyServiceImpl.java
index c1f84b9c21b744d5aa110942b1a83aec90db2fee..f779734326d8ab97aaa76a961f872293973d500a 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/OntologyServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/OntologyServiceImpl.java
@@ -1,13 +1,12 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.semantics.OntologyCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.OntologyModifyDto;
-import at.ac.tuwien.ifs.dbrepo.entity.semantics.Ontology;
-import at.ac.tuwien.ifs.dbrepo.exception.OntologyNotFoundException;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.mapper.SparqlMapper;
-import at.tuwien.repository.OntologyRepository;
-import at.tuwien.service.OntologyService;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.OntologyCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.OntologyModifyDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.semantics.Ontology;
+import at.ac.tuwien.ifs.dbrepo.core.exception.OntologyNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.repository.OntologyRepository;
+import at.ac.tuwien.ifs.dbrepo.service.OntologyService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -23,14 +22,12 @@ import java.util.UUID;
 @Service
 public class OntologyServiceImpl implements OntologyService {
 
-    private final SparqlMapper sparqlMapper;
     private final MetadataMapper metadataMapper;
     private final OntologyRepository ontologyRepository;
 
     @Autowired
-    public OntologyServiceImpl(SparqlMapper ontologyMapper, MetadataMapper metadataMapper,
+    public OntologyServiceImpl(MetadataMapper metadataMapper,
                                OntologyRepository ontologyRepository) {
-        this.sparqlMapper = ontologyMapper;
         this.metadataMapper = metadataMapper;
         this.ontologyRepository = ontologyRepository;
     }
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/StorageServiceS3Impl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/StorageServiceS3Impl.java
similarity index 88%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/StorageServiceS3Impl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/StorageServiceS3Impl.java
index 5c6687671d75ad94bd83db8cdb468bfd591bdc71..10e04eb291ede8938581316e21beb01979072d4c 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/StorageServiceS3Impl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/StorageServiceS3Impl.java
@@ -1,9 +1,9 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.tuwien.config.S3Config;
-import at.ac.tuwien.ifs.dbrepo.exception.StorageNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.StorageUnavailableException;
-import at.tuwien.service.StorageService;
+import at.ac.tuwien.ifs.dbrepo.config.S3Config;
+import at.ac.tuwien.ifs.dbrepo.core.exception.StorageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.StorageUnavailableException;
+import at.ac.tuwien.ifs.dbrepo.service.StorageService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/TableServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/TableServiceImpl.java
similarity index 92%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/TableServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/TableServiceImpl.java
index b8ee7b42884728720f8e9a117ce1d6b7c04fb34a..d91ce20cb78465335084db8b58fe789b0e65cab7 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/TableServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/TableServiceImpl.java
@@ -1,29 +1,32 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.CreateTableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableStatisticDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnStatisticDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.CreateTableColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.ColumnSemanticsUpdateDto;
-import at.tuwien.config.RabbitConfig;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.*;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.DataServiceGateway;
-import at.tuwien.gateway.SearchServiceGateway;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.service.*;
+import at.ac.tuwien.ifs.dbrepo.config.RabbitConfig;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.CreateTableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableStatisticDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnStatisticDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.CreateTableColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.ColumnSemanticsUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.*;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.DataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.SearchServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.service.*;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.security.Principal;
-import java.util.*;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Optional;
+import java.util.UUID;
 
 @Log4j2
 @Service
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/UnitServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/UnitServiceImpl.java
similarity index 80%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/UnitServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/UnitServiceImpl.java
index a53f5bceeec23a3aa5020d0f9bfddbaf9de3ca23..ae24d0342fb47ba0bc3363190dce2bd11274bd31 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/UnitServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/UnitServiceImpl.java
@@ -1,9 +1,9 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnUnit;
-import at.ac.tuwien.ifs.dbrepo.exception.UnitNotFoundException;
-import at.tuwien.repository.UnitRepository;
-import at.tuwien.service.UnitService;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnUnit;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UnitNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.repository.UnitRepository;
+import at.ac.tuwien.ifs.dbrepo.service.UnitService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/UserServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/UserServiceImpl.java
similarity index 86%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/UserServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/UserServiceImpl.java
index b33464dd03d095bc6a571d4c04aa844371e4673a..f93dacc21c112d9bdbd1be6f511c0d89829ea836 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/UserServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/UserServiceImpl.java
@@ -1,13 +1,13 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.auth.CreateUserDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.UserNotFoundException;
-import at.tuwien.gateway.KeycloakGateway;
-import at.tuwien.repository.UserRepository;
-import at.tuwien.service.UserService;
+import at.ac.tuwien.ifs.dbrepo.core.api.auth.CreateUserDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UserNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.gateway.KeycloakGateway;
+import at.ac.tuwien.ifs.dbrepo.repository.UserRepository;
+import at.ac.tuwien.ifs.dbrepo.service.UserService;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.lang3.RandomStringUtils;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ViewServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ViewServiceImpl.java
similarity index 87%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ViewServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ViewServiceImpl.java
index e6d39f12882d7a05ea01152f4c62ece0cbc8ba0c..1a243b91d07370d8e567ad56d6d97cab91c04d16 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ViewServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ViewServiceImpl.java
@@ -1,17 +1,17 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.CreateViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.View;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.DataServiceGateway;
-import at.tuwien.gateway.SearchServiceGateway;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.service.ViewService;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.CreateViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.View;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.DataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.SearchServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.service.ViewService;
 import com.google.common.hash.Hashing;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/lib/java/dbrepo-core/pom.xml b/lib/java/dbrepo-core/pom.xml
index cb1580c93c52ed5a7d5ae5a5f6919594f144c4f5..a6394c9187c7b9d79c11266d7b6f723439d6da54 100644
--- a/lib/java/dbrepo-core/pom.xml
+++ b/lib/java/dbrepo-core/pom.xml
@@ -36,6 +36,7 @@
         <maven.compiler.target>17</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <lombok.version>1.18.36</lombok.version>
+        <mapstruct.version>1.6.3</mapstruct.version>
         <spring-cloud.version>4.1.4</spring-cloud.version>
         <jackson-datatype.version>2.15.0</jackson-datatype.version>
         <springdoc-openapi.version>2.8.5</springdoc-openapi.version>
@@ -75,6 +76,18 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-actuator</artifactId>
         </dependency>
+        <!-- Mapping -->
+        <dependency>
+            <groupId>org.mapstruct</groupId>
+            <artifactId>mapstruct-processor</artifactId>
+            <version>${mapstruct.version}</version>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.mapstruct</groupId>
+            <artifactId>mapstruct</artifactId>
+            <version>${mapstruct.version}</version>
+        </dependency>
         <!-- Api -->
         <dependency>
             <groupId>org.projectlombok</groupId>
@@ -106,6 +119,32 @@
         </dependency>
     </dependencies>
 
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>${java.version}</source>
+                    <target>${java.version}</target>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>org.projectlombok</groupId>
+                            <artifactId>lombok</artifactId>
+                            <version>${lombok.version}</version>
+                        </path>
+                        <!-- keep this order https://stackoverflow.com/questions/47676369/mapstruct-and-lombok-not-working-together#answer-65021876 -->
+                        <path>
+                            <groupId>org.mapstruct</groupId>
+                            <artifactId>mapstruct-processor</artifactId>
+                            <version>${mapstruct.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
     <licenses>
         <license>
             <name>Apache-2.0</name>
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedSourceTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedSourceTypeDto.java
deleted file mode 100644
index 1ba420ad9810759d01889b30959d3bc30f44b6ce..0000000000000000000000000000000000000000
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedSourceTypeDto.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group.summary.organization.disambiguated;
-
-public enum OrcidDisambiguatedSourceTypeDto {
-    RINGGOLD,
-    ROR
-}
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/CacheableDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/CacheableDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/CacheableDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/CacheableDto.java
index b8a273e9d00f0a0308c2d36e08ccb2b40891a8c0..25d248dc4f9796aaac5149ce9fd52663fb5f388b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/CacheableDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/CacheableDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api;
+package at.ac.tuwien.ifs.dbrepo.core.api;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/ExportResourceDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/ExportResourceDto.java
similarity index 86%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/ExportResourceDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/ExportResourceDto.java
index 7bdd514672d0ab64c00d31e2e393d8edf7feddc3..fb7e87ec86cd79cda530241f7c97fc29648f6c29 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/ExportResourceDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/ExportResourceDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api;
+package at.ac.tuwien.ifs.dbrepo.core.api;
 
 import lombok.*;
 import org.springframework.core.io.InputStreamResource;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/ChannelDetailsDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/ChannelDetailsDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/ChannelDetailsDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/ChannelDetailsDto.java
index c6bbe825a39a444e0ac8a24549698e876822237d..861602a1564516a1186a4f9431281806dcea04b4 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/ChannelDetailsDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/ChannelDetailsDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.amqp;
+package at.ac.tuwien.ifs.dbrepo.core.api.amqp;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/ConsumerDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/ConsumerDto.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/ConsumerDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/ConsumerDto.java
index cc76cb60e6b50f41a7b69f9e62a1def6e1ac86a5..6d40bbe0ef2e731c772a1812e32630496eac95b4 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/ConsumerDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/ConsumerDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.amqp;
+package at.ac.tuwien.ifs.dbrepo.core.api.amqp;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/CreateExchangeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/CreateExchangeDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/CreateExchangeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/CreateExchangeDto.java
index 627f80015db512cc5a975328f77f3eaeb2660f1d..57fccbcc2f0431494f92d208fef8933eec1d4884 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/CreateExchangeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/CreateExchangeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.amqp;
+package at.ac.tuwien.ifs.dbrepo.core.api.amqp;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/CreateUserDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/CreateUserDto.java
similarity index 89%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/CreateUserDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/CreateUserDto.java
index 2d40a1cc7fb4f9b2fd1f933177e7fa3af3a8af67..4f5171daae15bc9ff41c3d8b4a331ce8accee283 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/CreateUserDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/CreateUserDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.amqp;
+package at.ac.tuwien.ifs.dbrepo.core.api.amqp;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/CreateVirtualHostDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/CreateVirtualHostDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/CreateVirtualHostDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/CreateVirtualHostDto.java
index fc8a62ee658db8d03387b815af348eaa10c644f0..841d4ee8365dbe663c2a527a6d434b54ab212b77 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/CreateVirtualHostDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/CreateVirtualHostDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.amqp;
+package at.ac.tuwien.ifs.dbrepo.core.api.amqp;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/ExchangeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/ExchangeDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/ExchangeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/ExchangeDto.java
index 702d60ab5299ebccc69002867712b5b9740b70e6..b42bef7e89b19e465755a2dccfe7c0e2578a85b8 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/ExchangeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/ExchangeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.amqp;
+package at.ac.tuwien.ifs.dbrepo.core.api.amqp;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/GrantExchangePermissionsDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/GrantExchangePermissionsDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/GrantExchangePermissionsDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/GrantExchangePermissionsDto.java
index 9abb7476ecb82bc87fc08568304cb46c1d0b764c..64bc4c1990b942216b635b90c37031225e224b5e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/GrantExchangePermissionsDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/GrantExchangePermissionsDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.amqp;
+package at.ac.tuwien.ifs.dbrepo.core.api.amqp;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/GrantVirtualHostPermissionsDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/GrantVirtualHostPermissionsDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/GrantVirtualHostPermissionsDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/GrantVirtualHostPermissionsDto.java
index 92190e285f17d04d287b52e1693de29f8821d737..a49b3b5cb20cd0e4e79f43cf5af9f56999a36a4c 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/GrantVirtualHostPermissionsDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/GrantVirtualHostPermissionsDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.amqp;
+package at.ac.tuwien.ifs.dbrepo.core.api.amqp;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/QueueBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/QueueBriefDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/QueueBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/QueueBriefDto.java
index 3cbfb38d7e3eb692347646c324ffbaef189461ba..7e9ee27d4b051af6ca1fea2bfa4bb7d618b50d2e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/QueueBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/QueueBriefDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.amqp;
+package at.ac.tuwien.ifs.dbrepo.core.api.amqp;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/QueueDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/QueueDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/QueueDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/QueueDto.java
index fba523416fef441b093b89a448b3f479bd845b3a..4ddd5e270d7b445cc1e7a4ea29b75154d0809f39 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/QueueDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/QueueDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.amqp;
+package at.ac.tuwien.ifs.dbrepo.core.api.amqp;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/TopicPermissionDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/TopicPermissionDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/TopicPermissionDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/TopicPermissionDto.java
index a90b4c396bcd12e7bbbee448afdd1525517e92cd..50fc100b134d0618455ba72db9eec3b3f1954af8 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/TopicPermissionDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/TopicPermissionDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.amqp;
+package at.ac.tuwien.ifs.dbrepo.core.api.amqp;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/UserDetailsDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/UserDetailsDto.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/UserDetailsDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/UserDetailsDto.java
index 65df7d04933cee576aee36a153b20b31c5ae447f..07a9a1ef61f77fca127aa1b49704d40c05ab5d31 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/UserDetailsDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/UserDetailsDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.amqp;
+package at.ac.tuwien.ifs.dbrepo.core.api.amqp;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/VirtualHostPermissionDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/VirtualHostPermissionDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/VirtualHostPermissionDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/VirtualHostPermissionDto.java
index cc53833e23c8e0bf3d775e76c515de865ebfb8fb..0d1f1fe96966154ce4bda299dad8c1ca5155e391 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/VirtualHostPermissionDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/VirtualHostPermissionDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.amqp;
+package at.ac.tuwien.ifs.dbrepo.core.api.amqp;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/auth/CreateUserDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/auth/CreateUserDto.java
similarity index 95%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/auth/CreateUserDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/auth/CreateUserDto.java
index 174d6fe3db7819bb7d7409e7ee1ceed59d7b9fb8..eb0f1ed91a17e901ec6b66bf957feb1389edbe35 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/auth/CreateUserDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/auth/CreateUserDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.auth;
+package at.ac.tuwien.ifs.dbrepo.core.api.auth;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/auth/RealmAccessDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/auth/RealmAccessDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/auth/RealmAccessDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/auth/RealmAccessDto.java
index 35ab8bc159c2bf4c67cdd830ae809786e1c593dd..eb308018c42cb00502da8364af74da31d023450d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/auth/RealmAccessDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/auth/RealmAccessDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.auth;
+package at.ac.tuwien.ifs.dbrepo.core.api.auth;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/ContainerActionTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/ContainerActionTypeDto.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/ContainerActionTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/ContainerActionTypeDto.java
index 26069b6389ae6e57794a6bbef70fae8437aa709d..42c40ab7af6af697064ab5b4302c08c463ea68b9 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/ContainerActionTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/ContainerActionTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.container;
+package at.ac.tuwien.ifs.dbrepo.core.api.container;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/ContainerBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/ContainerBriefDto.java
similarity index 89%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/ContainerBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/ContainerBriefDto.java
index 49212a57c7aba6742be5b48aa36a7e1700c25c2f..ec879665e930d0a8daa92fa2b4e3d790189714ba 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/ContainerBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/ContainerBriefDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.container;
+package at.ac.tuwien.ifs.dbrepo.core.api.container;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageBriefDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/ContainerDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/ContainerDto.java
similarity index 89%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/ContainerDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/ContainerDto.java
index a53276db9ee2ef3970918642843b73beb68fda14..12589bc7214ed0a08cdeb890e2286b726508cec9 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/ContainerDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/ContainerDto.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.api.container;
+package at.ac.tuwien.ifs.dbrepo.core.api.container;
 
-import at.ac.tuwien.ifs.dbrepo.api.CacheableDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.CacheableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageDto;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/CreateContainerDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/CreateContainerDto.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/CreateContainerDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/CreateContainerDto.java
index a837a352707ca1f35443b70dcffe907793e0872d..77e7b026c7c304d129107649d8e2d6be1c1ba9b2 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/CreateContainerDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/CreateContainerDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.container;
+package at.ac.tuwien.ifs.dbrepo.core.api.container;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/DataTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/DataTypeDto.java
similarity index 97%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/DataTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/DataTypeDto.java
index 9aed748c689e5a80a628c68a2ea2795b2e37f2f2..3455de43a917408b837dd28735e36d67b92a60e2 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/DataTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/DataTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.container.image;
+package at.ac.tuwien.ifs.dbrepo.core.api.container.image;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/ImageBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/ImageBriefDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/ImageBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/ImageBriefDto.java
index 629ba34d40f24ee0216523253b4705d1bf96c72c..7239fdcfb74944bb72cf4b0471460c3312344604 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/ImageBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/ImageBriefDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.container.image;
+package at.ac.tuwien.ifs.dbrepo.core.api.container.image;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/ImageChangeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/ImageChangeDto.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/ImageChangeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/ImageChangeDto.java
index b262ac33c8052bb02269374c3b4909734c97793f..0a73939c2323fb594c0751dfc492ce16cc59ac1b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/ImageChangeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/ImageChangeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.container.image;
+package at.ac.tuwien.ifs.dbrepo.core.api.container.image;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/ImageCreateDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/ImageCreateDto.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/ImageCreateDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/ImageCreateDto.java
index f698bec7d9fc154d52195e1f172cf07f40aaede7..cce376f5b7fb054409e84b7f48ee4467fde5bd52 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/ImageCreateDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/ImageCreateDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.container.image;
+package at.ac.tuwien.ifs.dbrepo.core.api.container.image;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.Parameter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/ImageDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/ImageDto.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/ImageDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/ImageDto.java
index 6dc178c3c21002308633530fe8b75b58f4dd77be..9d4049a173107d50ae5e14844a054649165b7aac 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/ImageDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/ImageDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.container.image;
+package at.ac.tuwien.ifs.dbrepo.core.api.container.image;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/OperatorDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/OperatorDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/OperatorDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/OperatorDto.java
index 3585383892f88310d11186f84e85d127f646b71c..38f39f5d827679892e9dfb5bbee78f6fc630466c 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/OperatorDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/OperatorDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.container.image;
+package at.ac.tuwien.ifs.dbrepo.core.api.container.image;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/crossref/CrossrefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/crossref/CrossrefDto.java
similarity index 74%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/crossref/CrossrefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/crossref/CrossrefDto.java
index eff98449e32f345e1e2f03f8adc28a548322f611..cd4afbb46359b32356c2ca434843dc5ca1934e94 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/crossref/CrossrefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/crossref/CrossrefDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.crossref;
+package at.ac.tuwien.ifs.dbrepo.core.api.crossref;
 
-import at.ac.tuwien.ifs.dbrepo.api.crossref.label.CrossrefPrefLabelDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.crossref.label.CrossrefPrefLabelDto;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/crossref/form/CrossrefLiteralFormDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/crossref/form/CrossrefLiteralFormDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/crossref/form/CrossrefLiteralFormDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/crossref/form/CrossrefLiteralFormDto.java
index 80c6b75d2c0fa4f07b50ce99c8d14cfd0398a80d..060cb73885ec54bc91bb741940dea66a36a7c28f 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/crossref/form/CrossrefLiteralFormDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/crossref/form/CrossrefLiteralFormDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.crossref.form;
+package at.ac.tuwien.ifs.dbrepo.core.api.crossref.form;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/crossref/label/CrossrefLabelDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/crossref/label/CrossrefLabelDto.java
similarity index 75%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/crossref/label/CrossrefLabelDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/crossref/label/CrossrefLabelDto.java
index c8c971ede377f3e9f0ed52e42e181d41e2feeb16..5ee179f3282f2e0790c9d6aa19ec4af28e7bdd2b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/crossref/label/CrossrefLabelDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/crossref/label/CrossrefLabelDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.crossref.label;
+package at.ac.tuwien.ifs.dbrepo.core.api.crossref.label;
 
-import at.ac.tuwien.ifs.dbrepo.api.crossref.form.CrossrefLiteralFormDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.crossref.form.CrossrefLiteralFormDto;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/crossref/label/CrossrefPrefLabelDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/crossref/label/CrossrefPrefLabelDto.java
similarity index 85%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/crossref/label/CrossrefPrefLabelDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/crossref/label/CrossrefPrefLabelDto.java
index 04b04f5e2391076c5d8f7cce1d75cfd569fef0b2..b64b9785f393de857605e803c12af9b7abc3f731 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/crossref/label/CrossrefPrefLabelDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/crossref/label/CrossrefPrefLabelDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.crossref.label;
+package at.ac.tuwien.ifs.dbrepo.core.api.crossref.label;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/AccessTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/AccessTypeDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/AccessTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/AccessTypeDto.java
index bb0c03c752cf9e09ef36d5715bd5c42ca7c79deb..fb3f34957e7a12401479b467992af467365fb81f 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/AccessTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/AccessTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/CreateAccessDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/CreateAccessDto.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/CreateAccessDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/CreateAccessDto.java
index 67e2e0bb82653c22e7d4478adb6266174ee51875..1ba876cc5ea1743c6475c1ba13fc4b606a0b7bd2 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/CreateAccessDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/CreateAccessDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/CreateDatabaseDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/CreateDatabaseDto.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/CreateDatabaseDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/CreateDatabaseDto.java
index 1cd51efd83ff2885e8eaa51ea5ded11cc85a9014..9c9e7082628b8608068b84eb41c610fad33fda06 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/CreateDatabaseDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/CreateDatabaseDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/CreateViewDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/CreateViewDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/CreateViewDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/CreateViewDto.java
index 5631ff2445b528cb6b77d07362620ff218f3fee0..9ab87017a69ede115b51ba212f56fc2b616b44d6 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/CreateViewDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/CreateViewDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.query.SubsetDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.SubsetDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseAccessDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseAccessDto.java
similarity index 84%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseAccessDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseAccessDto.java
index 161c1fe9db5406fe11aae332036607aee36c8ec0..22a423f7d8dd3b05380cf214b2f077ff02a0c99e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseAccessDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseAccessDto.java
@@ -1,7 +1,7 @@
 
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseBriefDto.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseBriefDto.java
index 1c549f1f7f62fecbc735ec1b910e6bea19d2daa7..f84649ff6399e2ac1a4e04cf167500b0b88d4805 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseBriefDto.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseDto.java
similarity index 86%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseDto.java
index bc7df3152af73d917b8e8c25402ab1dc5debc282..0a8ca41eb5a02d166bfd4231629f7901888427b2 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseDto.java
@@ -1,11 +1,10 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
-
-import at.ac.tuwien.ifs.dbrepo.api.CacheableDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.CacheableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseModifyDashboardDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseModifyDashboardDto.java
similarity index 85%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseModifyDashboardDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseModifyDashboardDto.java
index 599af4ef3949c245b3993304aca6c98ab2a13f2e..f4375d2ea35ab46e4a69657cbacf52082a4b0b51 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseModifyDashboardDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseModifyDashboardDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseModifyImageDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseModifyImageDto.java
similarity index 82%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseModifyImageDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseModifyImageDto.java
index 95235c551251f137b643b852653be3b3a63353b0..f8907baa3aa330a6f8a86da98ae3b79585da043d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseModifyImageDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseModifyImageDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseModifyVisibilityDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseModifyVisibilityDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseModifyVisibilityDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseModifyVisibilityDto.java
index 3ed9a0ace5aaf076a3371e5df91b4d3a2f5f7712..818f5461081631fbcd5cccb36f2ff5fbc386fe7b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseModifyVisibilityDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseModifyVisibilityDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseTransferDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseTransferDto.java
similarity index 85%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseTransferDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseTransferDto.java
index 65deb8151905f4cf8bade04ab6cb7a8337f0a7cf..f0ba38ebaf47a4bbdbaead229b0522f07eee876d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseTransferDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseTransferDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/LanguageTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/LanguageTypeDto.java
similarity index 99%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/LanguageTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/LanguageTypeDto.java
index 7e586e9ed33e5319afc1ae209ae7deefff986ff6..c585a5f1ba0fb7836f2d485540daf92c3273ccda 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/LanguageTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/LanguageTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/LicenseDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/LicenseDto.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/LicenseDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/LicenseDto.java
index 993701dc2d1c7fe6b73e28866009cc65af0c82e9..eada3be8ea0ddf5db34c33fdc1fe07e172247444 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/LicenseDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/LicenseDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/LoadFileDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/LoadFileDto.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/LoadFileDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/LoadFileDto.java
index 2cd4aadafcac85d1d4513616269fd7fd93a2956c..d5c42425748aac720768435eb0d0f7564de38779 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/LoadFileDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/LoadFileDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/ViewBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/ViewBriefDto.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/ViewBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/ViewBriefDto.java
index cd75aa8b6ac3b5aa7edb7eea198dfec330aa3d82..046aa97d10c147a2983e11dc491e524ddcd3a165 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/ViewBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/ViewBriefDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/ViewColumnDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/ViewColumnDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/ViewColumnDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/ViewColumnDto.java
index 126244b92e76a3081ecb9fee9e03bddccdbd9a29..c8744f423888a329e10119cf9de0560f48d91627 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/ViewColumnDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/ViewColumnDto.java
@@ -1,8 +1,8 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.EnumDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.SetDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.EnumDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.SetDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/ViewDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/ViewDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/ViewDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/ViewDto.java
index 52612d3c026a798d9d767ac86f81a4d45a737739..76cf990c0692adac8e23c3c6694e5c5e067cc4fa 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/ViewDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/ViewDto.java
@@ -1,8 +1,8 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
-import at.ac.tuwien.ifs.dbrepo.api.CacheableDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.CacheableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/ViewUpdateDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/ViewUpdateDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/ViewUpdateDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/ViewUpdateDto.java
index 9322d99bc27a0a4538d7e4691cfb885722096b4c..01badab2739e366ffb91a512d113aa5bf80594ce 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/ViewUpdateDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/ViewUpdateDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/internal/CreateDatabaseDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/internal/CreateDatabaseDto.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/internal/CreateDatabaseDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/internal/CreateDatabaseDto.java
index d7e4619d30548394dbb34d215f9961cf8155163b..476adbbd9a6ac73a4c9850eb6d867a671c9f1d72 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/internal/CreateDatabaseDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/internal/CreateDatabaseDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.internal;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.internal;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/ExecuteStatementDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/ExecuteStatementDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/ExecuteStatementDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/ExecuteStatementDto.java
index afdb671952a9c61c262bce62c0518950ebac70ce..6973486230a8e0cf3ad77c8bb9fa28b44721223b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/ExecuteStatementDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/ExecuteStatementDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.query;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.query;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/ExportDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/ExportDto.java
similarity index 86%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/ExportDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/ExportDto.java
index cf558ea0829e98108120c68179a76eb29401a42a..35f4fff473bc29f68a4055baa872404b3b67f7b6 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/ExportDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/ExportDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.query;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.query;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/FilterDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/FilterDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/FilterDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/FilterDto.java
index d77d32ce4ef313c1ffa8d964891d24c07bdd87e1..2e6b1a03d7b5243612123b97e6df104b182f2807 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/FilterDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/FilterDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.query;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.query;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/FilterTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/FilterTypeDto.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/FilterTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/FilterTypeDto.java
index faa7409ee97c7e0ce8414e46f009394d4ae3f321..aab604117ca6b936874ec27eec0c36945904130d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/FilterTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/FilterTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.query;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.query;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/ImportDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/ImportDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/ImportDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/ImportDto.java
index 932f25b4f9086d1c3e0783d98021684ba9d62832..4a0a04abd655d4454ce900b03c2d69b333b1e4bb 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/ImportDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/ImportDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.query;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.query;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/OrderDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/OrderDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/OrderDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/OrderDto.java
index 98ca6f1704482b5b72805f13dcafc939cdfa1d34..1412edf16a8354b09f90dc34b4f19838fe210124 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/OrderDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/OrderDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.query;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.query;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/OrderTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/OrderTypeDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/OrderTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/OrderTypeDto.java
index 8f7de6ccb8461fe9fcd39c9a7a98df55f9c6b545..a7afcbcd5e9befed4632c3c78c4f35efc8270437 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/OrderTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/OrderTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.query;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.query;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/QueryBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/QueryBriefDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/QueryBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/QueryBriefDto.java
index 6c7bfad2046deed78250a0f0a6b9e59c86881e3f..24e3f60130d1de00bcf82ee6c14309fd2c387c62 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/QueryBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/QueryBriefDto.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.query;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.query;
 
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/QueryDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/QueryDto.java
similarity index 89%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/QueryDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/QueryDto.java
index dc4d653185e1349b379a1b9b83d191c858b2a8f5..58568fa4c3a8537ed5444207cf248284de3e062c 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/QueryDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/QueryDto.java
@@ -1,8 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.query;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.query;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/QueryPersistDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/QueryPersistDto.java
similarity index 86%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/QueryPersistDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/QueryPersistDto.java
index 059cf20c7f47048ce150e695c5fe5251cee35829..90012d7a0309eca266e2d28c49d78c665d16020d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/QueryPersistDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/QueryPersistDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.query;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.query;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/QueryTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/QueryTypeDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/QueryTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/QueryTypeDto.java
index bee4673c9ae4432028a9498522b211ac91805b26..e19dccf0969f34b1a74516b6221588be24810817 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/QueryTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/QueryTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.query;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.query;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/SaveStatementDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/SaveStatementDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/SaveStatementDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/SaveStatementDto.java
index 952219e82eb658117213ae25a0b1dbf05ce040fd..aaefacf7976ef09d5c33ff1ad2d3afa83479b2b5 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/SaveStatementDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/SaveStatementDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.query;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.query;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/SubsetDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/SubsetDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/SubsetDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/SubsetDto.java
index 599a686746681b5a2b69b40f5838fdc7cc84f5c7..0b5975e05d06421348bc6733980d0ba1e2be81e0 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/SubsetDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/SubsetDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.query;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.query;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/CreateTableDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/CreateTableDto.java
similarity index 81%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/CreateTableDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/CreateTableDto.java
index 0ef3d5f74bec74e18abd489de4950a3f3bfcba34..af2c3a80cce868d054faa10e687045654b1e43df 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/CreateTableDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/CreateTableDto.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.CreateTableColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.CreateTableConstraintsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.CreateTableColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.CreateTableConstraintsDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/HistoryEventTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/HistoryEventTypeDto.java
similarity index 89%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/HistoryEventTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/HistoryEventTypeDto.java
index 901726b77f414daa235e08f63fc39a4b76cb1045..90a216c1242b0abc6cf4387616a38bb60eb90763 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/HistoryEventTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/HistoryEventTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/SortType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/SortType.java
similarity index 85%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/SortType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/SortType.java
index fbc0934f81cc996d0e141cdca70e1d96bb82bdf0..841587f4b09087f3f98830907c11fbefb3c98b68 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/SortType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/SortType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/SortTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/SortTypeDto.java
similarity index 80%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/SortTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/SortTypeDto.java
index 208786dccf67a816f9a5310feb44801cb8f25481..0a7cbeeb4cf72cf35c5c287c45b7e6b722a067ec 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/SortTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/SortTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableBriefDto.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableBriefDto.java
index 4959eb668daebce913990861c2d9a205e1624ec9..92540c205193b21fca330cb3aed611d0bd2512f8 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableBriefDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableCreateRawQuery.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableCreateRawQuery.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableCreateRawQuery.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableCreateRawQuery.java
index 8ecf083e24e145cce36380b719041a9da62f4ae5..8ba7b7ab6283cebeb2ca1f59040731e99c8fd00c 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableCreateRawQuery.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableCreateRawQuery.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table;
 
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableDto.java
similarity index 84%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableDto.java
index 215c8e3a7444be24d1a032c383df4562ef2522d2..9cb2848e5b010869ab53ebbb71585f0c35182b34 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableDto.java
@@ -1,13 +1,10 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table;
-
-import at.ac.tuwien.ifs.dbrepo.api.CacheableDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.ConstraintsDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.CacheableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.ConstraintsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableHistoryDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableHistoryDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableHistoryDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableHistoryDto.java
index a20ef71757878735ed8332ed67c645b57b199cd1..3b6d8df35f64b9f55d1527f72d34b34663c2685a 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableHistoryDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableHistoryDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableInsertRawQuery.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableInsertRawQuery.java
similarity index 85%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableInsertRawQuery.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableInsertRawQuery.java
index c81fbea83ed0c9f28568ea7617b1ab17c3268eda..caab6394143e732a46f6500d78eb4d06aacbdf27 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableInsertRawQuery.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableInsertRawQuery.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table;
 
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableStatisticDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableStatisticDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableStatisticDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableStatisticDto.java
index 7f0ed7a4e2ae5287c105464dd33b1675782a66cf..1b728df71cdabadfdc733921b317061536fd7f31 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableStatisticDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableStatisticDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnStatisticDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnStatisticDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableUpdateDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableUpdateDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableUpdateDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableUpdateDto.java
index ce3fcfd89d409dea38b298e8f16c5ab07c2bd92c..f4fd37a37423c6fa4d453fd5cb56c4ed9668125a 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableUpdateDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableUpdateDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TupleDeleteDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TupleDeleteDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TupleDeleteDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TupleDeleteDto.java
index 5495106e703bba60a4524b07d640d6a7088e9dec..78d04b5361d12a3bdc0d7029b5a3709b6c64eebd 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TupleDeleteDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TupleDeleteDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TupleDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TupleDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TupleDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TupleDto.java
index 6a2c9f0fcc295f47a24e2975b7180bbe799e516e..db1d91770938c0f65716ac4e6e73638b3fe35b52 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TupleDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TupleDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TupleUpdateDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TupleUpdateDto.java
similarity index 89%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TupleUpdateDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TupleUpdateDto.java
index ce3b7fe2c5c0e01172ac71726084b8023bd3a996..eac3886de2bbdf6d866fbd4df34c8911ca9658be 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TupleUpdateDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TupleUpdateDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/ColumnBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/ColumnBriefDto.java
similarity index 95%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/ColumnBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/ColumnBriefDto.java
index bb60b9bfc2a7c53f21492391532d57c4e2940b40..8ebc4f9e386c7144d78353d94a47bf209398a0ad 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/ColumnBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/ColumnBriefDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/ColumnDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/ColumnDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/ColumnDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/ColumnDto.java
index 8e772433bc22df95d942f1c8de302e39eb98579a..d5c73436944cbbfacbe5ebbc7765a878738e2821 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/ColumnDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/ColumnDto.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.ConceptBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.UnitBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.ConceptBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.UnitBriefDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/ColumnStatisticDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/ColumnStatisticDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/ColumnStatisticDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/ColumnStatisticDto.java
index d0101cac2bb21ca92dc3ff63539cb8372a785010..01f3e2b6527f42a7f93956eeacb9bc239f2bddef 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/ColumnStatisticDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/ColumnStatisticDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/ColumnTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/ColumnTypeDto.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/ColumnTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/ColumnTypeDto.java
index 8cbb621e6d27dd955cbd36981015fe940d33d06a..fbe35b9c64160d82e5e9dc0ababdda1c6d229ce9 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/ColumnTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/ColumnTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/CreateTableColumnDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/CreateTableColumnDto.java
similarity index 95%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/CreateTableColumnDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/CreateTableColumnDto.java
index 02a9665da8aff9ce22d53b67f32e8254451c5792..b26ca9582a9de82b78596bde24d254a63130b830 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/CreateTableColumnDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/CreateTableColumnDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/EnumDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/EnumDto.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/EnumDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/EnumDto.java
index c2cc0f7466441beead59efe9da1f4f278f8cad48..3a5889324fdfcb87d8c554cb27b2d49ce876232f 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/EnumDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/EnumDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/SetDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/SetDto.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/SetDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/SetDto.java
index 084452d59466fcef27992295d35376f32edb6b24..cd0aa8c92113e0baa73f0e17dd4f920d00606d85 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/SetDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/SetDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/SiUnitDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/SiUnitDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/SiUnitDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/SiUnitDto.java
index 25949b89210b7d5d321674d9a68bdf1270bb440e..2de0da75aea300756d708320d73a800fead1f668 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/SiUnitDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/SiUnitDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/ColumnSemanticsUpdateDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/ColumnSemanticsUpdateDto.java
similarity index 83%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/ColumnSemanticsUpdateDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/ColumnSemanticsUpdateDto.java
index f9c298b4e7db8df5065904b4a4f673c024476fdd..26d921cf8846508d4a9dfca7dc4e62bf62257163 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/ColumnSemanticsUpdateDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/ColumnSemanticsUpdateDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/ConceptBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/ConceptBriefDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/ConceptBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/ConceptBriefDto.java
index 04ef35ac8595ad0217052c5237074c79827cff42..0540dfbba40a4f5dbf78c439bb91bedabddd784c 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/ConceptBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/ConceptBriefDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/ConceptDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/ConceptDto.java
similarity index 80%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/ConceptDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/ConceptDto.java
index 1dc91c9e69e2865dfd219d6ec6ba69ad826d5d51..29d906e90f40e54377c5cedceddfef0aff3b463f 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/ConceptDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/ConceptDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnBriefDto;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/ConceptSaveDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/ConceptSaveDto.java
similarity index 83%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/ConceptSaveDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/ConceptSaveDto.java
index 05de242e545377caa5600610fa3fb26d181b08ae..bdfebd73ff1899935bcd1be020b006519fd81356 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/ConceptSaveDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/ConceptSaveDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts;
 
 import jakarta.validation.constraints.NotBlank;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/UnitBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/UnitBriefDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/UnitBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/UnitBriefDto.java
index e5094b7d6e45640a260147131ec98fab272d1a30..47658b49cc7eaf6b6ac75fec66c4dbad0366067e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/UnitBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/UnitBriefDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/UnitDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/UnitDto.java
similarity index 80%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/UnitDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/UnitDto.java
index 92f9564e969506e84d6fed9f149a21575a079ecb..6af216e06783adbcfb7c970a414f9419e9768676 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/UnitDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/UnitDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnBriefDto;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/UnitSaveDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/UnitSaveDto.java
similarity index 83%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/UnitSaveDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/UnitSaveDto.java
index 9b4f4c7f857dffa6d145871c809e5f119136709d..7a13c015212f8d1f09f8c863fd509c12f1a7724d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/UnitSaveDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/UnitSaveDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts;
 
 import jakarta.validation.constraints.NotBlank;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/ConstraintsDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/ConstraintsDto.java
similarity index 64%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/ConstraintsDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/ConstraintsDto.java
index 95ba9ad99a7993174250a439d556632c357c250f..35648bd768a4c70c3298393bba47d04f53fbb6fd 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/ConstraintsDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/ConstraintsDto.java
@@ -1,8 +1,8 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.constraints;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.ForeignKeyDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.primary.PrimaryKeyDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.unique.UniqueDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.ForeignKeyDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.primary.PrimaryKeyDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.unique.UniqueDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/CreateTableConstraintsDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/CreateTableConstraintsDto.java
similarity index 79%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/CreateTableConstraintsDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/CreateTableConstraintsDto.java
index 46ebaf1c0b292b6f214b781f1de4335ec51a2a73..b2bf3ed73226ae752fc4c66a868f2bd60e20f9fc 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/CreateTableConstraintsDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/CreateTableConstraintsDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.constraints;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.CreateForeignKeyDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.CreateForeignKeyDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/CreateForeignKeyDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/CreateForeignKeyDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/CreateForeignKeyDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/CreateForeignKeyDto.java
index 896d0d40585ddd394d9b6d179efda7ae1d200863..cfbba36281b3449ee481799d84d6db82208899af 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/CreateForeignKeyDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/CreateForeignKeyDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/ForeignKeyBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/ForeignKeyBriefDto.java
similarity index 81%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/ForeignKeyBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/ForeignKeyBriefDto.java
index 5ea08a414c252aeb4ad860078515ba4507f05177..307d57af0181a1ddd4eff4e9be91def2cafe6f73 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/ForeignKeyBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/ForeignKeyBriefDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/ForeignKeyDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/ForeignKeyDto.java
similarity index 78%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/ForeignKeyDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/ForeignKeyDto.java
index 8e7c54414d74f45388a1d73df9168139ca16705b..625156027a1b99690c2f412659d8996dbbfffb6a 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/ForeignKeyDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/ForeignKeyDto.java
@@ -1,8 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableBriefDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/ForeignKeyReferenceDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/ForeignKeyReferenceDto.java
similarity index 81%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/ForeignKeyReferenceDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/ForeignKeyReferenceDto.java
index 7248ce52fcc7f99c70c58ec4f78515161d9adf69..4beab3e1eea19901c42c73ab11fec6346f04051e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/ForeignKeyReferenceDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/ForeignKeyReferenceDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnBriefDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/ReferenceTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/ReferenceTypeDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/ReferenceTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/ReferenceTypeDto.java
index 2e80aa43bcdd8ae83d0b2d9c1a7713ac3be337e1..a2467407182b9a1c420cb61cb3404406669fd266 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/ReferenceTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/ReferenceTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/primary/PrimaryKeyDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/primary/PrimaryKeyDto.java
similarity index 68%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/primary/PrimaryKeyDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/primary/PrimaryKeyDto.java
index 48299470b122cfac6aeed0715d0c5ce15a12b464..74d55ead188a1b047ba8387ff53e76735d105fca 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/primary/PrimaryKeyDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/primary/PrimaryKeyDto.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.primary;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.primary;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnBriefDto;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/unique/UniqueDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/unique/UniqueDto.java
similarity index 72%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/unique/UniqueDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/unique/UniqueDto.java
index de5572e25f93d09ab730bf919fc9dbf6c304079e..6f1c613779df3e4976883abf404ce6c13f6b6805 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/unique/UniqueDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/unique/UniqueDto.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.unique;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.unique;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnBriefDto;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/internal/TableCreateDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/internal/TableCreateDto.java
similarity index 80%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/internal/TableCreateDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/internal/TableCreateDto.java
index 1e2509ab3b6cd8c4025eb49a0a188fce8c0935e6..200bfef48f1562a970cd699c8a2583e82ae8a44f 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/internal/TableCreateDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/internal/TableCreateDto.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.internal;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.CreateTableColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.CreateTableConstraintsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.CreateTableColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.CreateTableConstraintsDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/DataCiteBody.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/DataCiteBody.java
similarity index 84%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/DataCiteBody.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/DataCiteBody.java
index 3e45a47543d358157a8532e3000a90403ec4fb17..272484e84a15b7bb98a36ca67bc2af033c4372aa 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/DataCiteBody.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/DataCiteBody.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite;
 
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/DataCiteData.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/DataCiteData.java
similarity index 89%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/DataCiteData.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/DataCiteData.java
index e95a57945b4a4f5801908f54ed1d75c489c1d516..1209e36fd3eeaa2a4372dd2eaea793a120cc30b9 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/DataCiteData.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/DataCiteData.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/DataCiteError.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/DataCiteError.java
similarity index 84%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/DataCiteError.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/DataCiteError.java
index 09d9d4a2bd9be6729e50c483aa628ab00ab6312c..872de43921485906b975ab16a8da7d8e4359bf62 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/DataCiteError.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/DataCiteError.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite;
 
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteCreateDoi.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteCreateDoi.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteCreateDoi.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteCreateDoi.java
index 43afab69cdf6ac60b7bc5ab1da238044d2256da8..27749b4b33a80c292dfd0ae34c809926170de13f 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteCreateDoi.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteCreateDoi.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite.doi;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi;
 
 import lombok.*;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoi.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoi.java
similarity index 86%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoi.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoi.java
index 6cb8189463d9fd986d014b34b6052913842b6047..837f38143dfcae0129fcd3b3c9c3ab427ed50ed9 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoi.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoi.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite.doi;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiCreator.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiCreator.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiCreator.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiCreator.java
index 8bac1e2505597752a0f1ce9afce0994d3fd6b9bd..a95a9dd1213f193161a0d3e0c4eddafab66072c8 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiCreator.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiCreator.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite.doi;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi;
 
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiCreatorAffiliation.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiCreatorAffiliation.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiCreatorAffiliation.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiCreatorAffiliation.java
index 152124fc554f1bcde689c3bc9b30ab41473f56f3..b07a86eea3c9ad4cf42140118e3dabe0387e8528 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiCreatorAffiliation.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiCreatorAffiliation.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite.doi;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi;
 
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiCreatorNameIdentifier.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiCreatorNameIdentifier.java
similarity index 86%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiCreatorNameIdentifier.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiCreatorNameIdentifier.java
index 2f26c389fb53a081d851dd5a5a82bb95c153e9bd..a75f6fc333499530ac6aa67bc751297da104c2db 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiCreatorNameIdentifier.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiCreatorNameIdentifier.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite.doi;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi;
 
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiEvent.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiEvent.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiEvent.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiEvent.java
index 8a1381136b55ad06bb237d34eae76505646c8129..5c753dd6b6444c45002cb5805f27962ea3073bee 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiEvent.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiEvent.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite.doi;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiFundingReference.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiFundingReference.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiFundingReference.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiFundingReference.java
index 479fb675e371f8868c60729698d021421df42453..546094183cef6aba87ec8f47a6c63a44f0a3e962 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiFundingReference.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiFundingReference.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite.doi;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi;
 
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiFundingReferenceIdentifier.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiFundingReferenceIdentifier.java
similarity index 85%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiFundingReferenceIdentifier.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiFundingReferenceIdentifier.java
index 0bf5da085fa18ed9f4d25590aac5fea9a605d963..00fedaa15bdd1a1a6ca52acd6f30572a01d9eb79 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiFundingReferenceIdentifier.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiFundingReferenceIdentifier.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite.doi;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi;
 
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiRelatedIdentifier.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiRelatedIdentifier.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiRelatedIdentifier.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiRelatedIdentifier.java
index 0f459d0fd4a4c205cf03abe19206d5a07827788e..3e246944d9ab54d37bbea47c30e584aeeaab0511 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiRelatedIdentifier.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiRelatedIdentifier.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite.doi;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi;
 
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiRights.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiRights.java
similarity index 85%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiRights.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiRights.java
index 879cff355817b536774fede1c908ea6adce43813..0bef60756ff411aee8f4bee802e2bbc3e5b494ba 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiRights.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiRights.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite.doi;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi;
 
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiTitle.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiTitle.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiTitle.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiTitle.java
index 4f9531c06e46002fb1034a75c49ef38bc6745ca2..38114a19cda7ed3dbc30d406da7a6423f748c423 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiTitle.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiTitle.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite.doi;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiTypes.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiTypes.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiTypes.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiTypes.java
index a00127dda353620d39b7a7d23872a50261bbd296..c69ece3ac076e8d4bd07d0ecbe579df28bd239ee 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiTypes.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiTypes.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite.doi;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi;
 
 import lombok.*;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteNameType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteNameType.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteNameType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteNameType.java
index 0c92807ef7e6ef59be9d225b3dc26091cfbc6116..c6e551e5335649be52ca801b862c11e53b6e7682 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteNameType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteNameType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite.doi;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/error/ApiErrorDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/error/ApiErrorDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/error/ApiErrorDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/error/ApiErrorDto.java
index 587561374912f0db0b172865190d8df736f5af0b..49ea5af60f99807e277cab80074248651285c964 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/error/ApiErrorDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/error/ApiErrorDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.error;
+package at.ac.tuwien.ifs.dbrepo.core.api.error;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/file/UploadResponseDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/file/UploadResponseDto.java
similarity index 86%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/file/UploadResponseDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/file/UploadResponseDto.java
index b9fda2537692928f64b8a72453ec4d32055981b6..6a8b9b818b2267f24d0cf31d173b59d82c72a9a3 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/file/UploadResponseDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/file/UploadResponseDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.file;
+package at.ac.tuwien.ifs.dbrepo.core.api.file;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/AccessTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/AccessTypeDto.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/AccessTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/AccessTypeDto.java
index e56122448d76a0df7559e53610118544511d0c5b..39447d8e730e260852e2070bcf1e6923af2a7e55 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/AccessTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/AccessTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.grafana;
+package at.ac.tuwien.ifs.dbrepo.core.api.grafana;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/CreateDashboardDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/CreateDashboardDto.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/CreateDashboardDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/CreateDashboardDto.java
index b83b0ea0ecb34e3641af78c8c7e9d34637d21eff..6b7a879b5b17a116b8c639496f4bd09f41658d02 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/CreateDashboardDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/CreateDashboardDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.grafana;
+package at.ac.tuwien.ifs.dbrepo.core.api.grafana;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/CreateDashboardResponseDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/CreateDashboardResponseDto.java
similarity index 89%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/CreateDashboardResponseDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/CreateDashboardResponseDto.java
index a3d798120a158a08c298ab174914fcb6ba869bb0..cc4bcfa40bc67ecce126c881a754835161891d7b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/CreateDashboardResponseDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/CreateDashboardResponseDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.grafana;
+package at.ac.tuwien.ifs.dbrepo.core.api.grafana;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/DatasourceDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/DatasourceDto.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/DatasourceDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/DatasourceDto.java
index d9b271018d1fda43af9461ab2cc4055975879207..e670c99ff6c4ff68f4923e02abd64a82d7603b9b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/DatasourceDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/DatasourceDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.grafana;
+package at.ac.tuwien.ifs.dbrepo.core.api.grafana;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/DatasourceTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/DatasourceTypeDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/DatasourceTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/DatasourceTypeDto.java
index 92ae9acef5fc04c89134358328daf1150d5ffe6a..e708ccf6a89809bbfa8cd7ca917a2f6a6769178d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/DatasourceTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/DatasourceTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.grafana;
+package at.ac.tuwien.ifs.dbrepo.core.api.grafana;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/PermissionTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/PermissionTypeDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/PermissionTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/PermissionTypeDto.java
index e8a9cb027d12968f2ec6a67d88c53923ec0e5f06..f9561da03773946e9ad1a4f462f53219fcfe12a8 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/PermissionTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/PermissionTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.grafana;
+package at.ac.tuwien.ifs.dbrepo.core.api.grafana;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/UpdateDashboardAccessDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/UpdateDashboardAccessDto.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/UpdateDashboardAccessDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/UpdateDashboardAccessDto.java
index c5e2b7e9e47784c019fc55419a7019ee35800d1d..08d755e1115e15231e0be07e7f9e83b5ba4bbd26 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/UpdateDashboardAccessDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/UpdateDashboardAccessDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.grafana;
+package at.ac.tuwien.ifs.dbrepo.core.api.grafana;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/AffiliationIdentifierSchemeTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/AffiliationIdentifierSchemeTypeDto.java
similarity index 67%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/AffiliationIdentifierSchemeTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/AffiliationIdentifierSchemeTypeDto.java
index 7591059990bbb968a51856f34d0724e89eeec06e..ba881921ac2b0e9f970d7a3f86751e46e4593f40 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/AffiliationIdentifierSchemeTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/AffiliationIdentifierSchemeTypeDto.java
@@ -1,5 +1,5 @@
 
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import lombok.Getter;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/BibliographyTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/BibliographyTypeDto.java
similarity index 89%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/BibliographyTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/BibliographyTypeDto.java
index 9cf8b40f533f4a075e8e1e2e46cd6e3e15d060a0..d89935553cc580ce6a9c6da8a17c2330e6aff759 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/BibliographyTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/BibliographyTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/CreateIdentifierDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/CreateIdentifierDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/CreateIdentifierDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/CreateIdentifierDto.java
index c1bdf1ed1a06747654cafe279ba0d6ea9cd4fd7e..286d04dc3b849264b79ad439742d2d70aa025f7f 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/CreateIdentifierDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/CreateIdentifierDto.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.LanguageTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.LicenseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.LanguageTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.LicenseDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/CreatorBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/CreatorBriefDto.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/CreatorBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/CreatorBriefDto.java
index c57435b6ddbb67c979b6b6fc2aa249a78531e253..f5a1d9489780f1d359eab294aa6cb6727685f455 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/CreatorBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/CreatorBriefDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/CreatorDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/CreatorDto.java
similarity index 97%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/CreatorDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/CreatorDto.java
index bc3e577ebc4df280cb19e84cc245c325d8f40f50..b98985c1c43f1b9b20d35f9391eb5460ef25ab32 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/CreatorDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/CreatorDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/DescriptionTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/DescriptionTypeDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/DescriptionTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/DescriptionTypeDto.java
index 558b0005e88a1c78900d43a9111ccdba51067c24..7ddab3278477c6c1c781dd867a45681a0c04dcc6 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/DescriptionTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/DescriptionTypeDto.java
@@ -1,5 +1,5 @@
 
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierBriefDto.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierBriefDto.java
index e713b3a4b943302b37357531c4c13844561cd589..74f60ab15374b1f9ea452e06390059be11c1e74b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierBriefDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierDescriptionDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierDescriptionDto.java
similarity index 86%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierDescriptionDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierDescriptionDto.java
index 45173b503188c710b707cab7b049e68ad817bf94..e491fd674499b71de6e1a1dc9ccbdcadd7fb47f1 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierDescriptionDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierDescriptionDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.LanguageTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.LanguageTypeDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierDto.java
index 2ae1ed21b6e9a3e69f7f9c6a279e4985b8618a82..35293a6d9e456522c9c9f366ad8f37c7b1dbbf1e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierDto.java
@@ -1,8 +1,8 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.LanguageTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.LicenseDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.LanguageTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.LicenseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierFunderDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierFunderDto.java
similarity index 95%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierFunderDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierFunderDto.java
index 4f73605540c197e3f259296d8e26486424e152cf..741e1ac1ac400d80bd7790f45bdcacfeacbaf87b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierFunderDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierFunderDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierFunderTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierFunderTypeDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierFunderTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierFunderTypeDto.java
index 85e54ec1e5b389b4b3c9b6607bbf6ef4a43b0556..6682bac43a0cfa8334ce37aaa68d9f89f468b831 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierFunderTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierFunderTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierSaveDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierSaveDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierSaveDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierSaveDto.java
index 64aad71c36b06fe2dccbc68daa780a8e611955e8..2054e84012e3128dd46c7de15425e0c0758ac51b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierSaveDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierSaveDto.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.LanguageTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.LicenseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.LanguageTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.LicenseDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierStatusTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierStatusTypeDto.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierStatusTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierStatusTypeDto.java
index 8f5a885bcab85a3b335ce3952f41c38bf418e20e..655c670a359f8ef343140752f4892a0fa5cd0e3c 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierStatusTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierStatusTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierTitleDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierTitleDto.java
similarity index 85%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierTitleDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierTitleDto.java
index 790e1b93e1b6e7202372b936b38955b10fbad73a..829454134d5fa112873b65bd0ac246d97f3400a0 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierTitleDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierTitleDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.LanguageTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.LanguageTypeDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierTypeDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierTypeDto.java
index 95e8f3e8137c7c5f74482a39ba4ebf56eafc4454..bca87f3cd81bf0b117edd239dbdd80be88e0d86f 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/LinksDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/LinksDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/LinksDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/LinksDto.java
index 19ebcc78a7ae5e22aff6b64767b5c8f770ea683e..9b3461ea47b05dd1bdc78d7cb54b051a9db649c8 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/LinksDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/LinksDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/NameIdentifierSchemeTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/NameIdentifierSchemeTypeDto.java
similarity index 68%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/NameIdentifierSchemeTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/NameIdentifierSchemeTypeDto.java
index 0a7834b8e47f42679188ab555ff7610e30d03971..028abf15f264eb0daad80df42e7a2b98b239e6d7 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/NameIdentifierSchemeTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/NameIdentifierSchemeTypeDto.java
@@ -1,5 +1,5 @@
 
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import lombok.Getter;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/NameTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/NameTypeDto.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/NameTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/NameTypeDto.java
index b7f21671ba10aeb40105b22162140f78cfa5650a..6de88e1bb1e8df743f9b07879b0363a0b2389f2e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/NameTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/NameTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/RelatedIdentifierDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/RelatedIdentifierDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/RelatedIdentifierDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/RelatedIdentifierDto.java
index 24c7d616ac70f11fa6036122fb2f3e2830473923..5aec4780645d8bf084b60f3da803e466a7bdb2f2 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/RelatedIdentifierDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/RelatedIdentifierDto.java
@@ -1,6 +1,5 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/RelatedTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/RelatedTypeDto.java
similarity index 95%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/RelatedTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/RelatedTypeDto.java
index 85ce2aabc71bce43514e6374feee031e6f66808d..76fabca0292b0b1df84a288ff2db71233e8744d7 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/RelatedTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/RelatedTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/RelationTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/RelationTypeDto.java
similarity index 98%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/RelationTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/RelationTypeDto.java
index 61c635a89f6b59c441da291b6a05fe323e82322c..bc43f0c81e9a0dca122e6b1d142f66fb961c0ec5 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/RelationTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/RelationTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveIdentifierCreatorDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveIdentifierCreatorDto.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveIdentifierCreatorDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveIdentifierCreatorDto.java
index ab7b02847d0176ef6662ac439e7d5c0d545dec0c..ce3d92480b384f3d2eb324ee3fc8aed307d25258 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveIdentifierCreatorDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveIdentifierCreatorDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveIdentifierDescriptionDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveIdentifierDescriptionDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveIdentifierDescriptionDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveIdentifierDescriptionDto.java
index a5d41577964a566ec316d376382b4b5fe128a348..0abfa7312826430b4cb1fe63e83ee0861e222bdb 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveIdentifierDescriptionDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveIdentifierDescriptionDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.LanguageTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.LanguageTypeDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveIdentifierFunderDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveIdentifierFunderDto.java
similarity index 95%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveIdentifierFunderDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveIdentifierFunderDto.java
index 60bf49f171aedeb54bfec06a801ae8513e236180..f877f458295fd56ac015583ff1ac575a34d4a5bb 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveIdentifierFunderDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveIdentifierFunderDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveIdentifierTitleDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveIdentifierTitleDto.java
similarity index 86%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveIdentifierTitleDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveIdentifierTitleDto.java
index f32337f04480a1aa626f3b1049bd8ecf74da1c44..99a95c45d5fa341924940dd0a12b946557560ede 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveIdentifierTitleDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveIdentifierTitleDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.LanguageTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.LanguageTypeDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveRelatedIdentifierDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveRelatedIdentifierDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveRelatedIdentifierDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveRelatedIdentifierDto.java
index 11af0c0062e17a6010fd730e2e6e9cc402d40c20..ccb47cac439a093b8edb226f425d49fc18210544 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveRelatedIdentifierDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveRelatedIdentifierDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/TitleTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/TitleTypeDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/TitleTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/TitleTypeDto.java
index e5a56887dc20ffe751f564249d644e8094cd5e9c..d1d5379a7eeac75ef5054f732dc5424866c8bc72 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/TitleTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/TitleTypeDto.java
@@ -1,5 +1,5 @@
 
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/ld/LdCreatorDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/ld/LdCreatorDto.java
similarity index 89%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/ld/LdCreatorDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/ld/LdCreatorDto.java
index c8c4e0c6800e187c8acdd01c82ddff3959151a07..8d983afb3d7f5acd0aff89d5b0b64f214c60d6b9 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/ld/LdCreatorDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/ld/LdCreatorDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier.ld;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier.ld;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/ld/LdDatasetDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/ld/LdDatasetDto.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/ld/LdDatasetDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/ld/LdDatasetDto.java
index 10119f7e71fe6bacdb44290858f7586b8c5e8c46..e599f66d8ce6915661011bd9851e349d58492c4e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/ld/LdDatasetDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/ld/LdDatasetDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier.ld;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier.ld;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/CredentialDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/CredentialDto.java
similarity index 89%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/CredentialDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/CredentialDto.java
index 3bf106f8353f769ba8d96db6c0ecaad84c840ab6..71a279519d103651bf00d0a88d14e603beeaa18e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/CredentialDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/CredentialDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.keycloak;
+package at.ac.tuwien.ifs.dbrepo.core.api.keycloak;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/CredentialTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/CredentialTypeDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/CredentialTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/CredentialTypeDto.java
index 12fbef9fd20640f71895038d98726a1e256757ed..71530c5edc770974e7dafed54ec16061abd257a7 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/CredentialTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/CredentialTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.keycloak;
+package at.ac.tuwien.ifs.dbrepo.core.api.keycloak;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/ModifyUserDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/ModifyUserDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/ModifyUserDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/ModifyUserDto.java
index 1fc599c5d0f74d5cc93f67c42c6d182beeae63e6..8ad43b34c2533843183ec63fbd9cc055ad03a390 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/ModifyUserDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/ModifyUserDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.keycloak;
+package at.ac.tuwien.ifs.dbrepo.core.api.keycloak;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/RoleRepresentationDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/RoleRepresentationDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/RoleRepresentationDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/RoleRepresentationDto.java
index 10ae9089964fbe45c4819ae9768cd8ad22aec100..bc3137d421a292d409e972d57ff32aca65d2a49e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/RoleRepresentationDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/RoleRepresentationDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.keycloak;
+package at.ac.tuwien.ifs.dbrepo.core.api.keycloak;
 
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/TokenDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/TokenDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/TokenDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/TokenDto.java
index 540e795da64bc80d7d0765d8b1d3fa64c6616a34..8cde17a095dd955b6c4c62d96e23c973b2c5c7f0 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/TokenDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/TokenDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.keycloak;
+package at.ac.tuwien.ifs.dbrepo.core.api.keycloak;
 
-import at.ac.tuwien.ifs.dbrepo.api.CacheableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.CacheableDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UpdateCredentialsDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UpdateCredentialsDto.java
similarity index 86%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UpdateCredentialsDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UpdateCredentialsDto.java
index 9c1eb72f8496fde3ecfda99cac2a03e05642cd26..3994b1aaab92eea9fc25fd9eab0256cc9ed824c7 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UpdateCredentialsDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UpdateCredentialsDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.keycloak;
+package at.ac.tuwien.ifs.dbrepo.core.api.keycloak;
 
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UserAttributesDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UserAttributesDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UserAttributesDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UserAttributesDto.java
index 49e4e6e9385256ba619434f48c6a3c5d4ba812e6..0e7ab89f66297f8368aefe7ef8c3e9d39f38c57b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UserAttributesDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UserAttributesDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.keycloak;
+package at.ac.tuwien.ifs.dbrepo.core.api.keycloak;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UserCreateAttributesDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UserCreateAttributesDto.java
similarity index 85%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UserCreateAttributesDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UserCreateAttributesDto.java
index 707a8caa278b8eb1e3fe4f62a5147c09c032a68e..e2357a4e9434b2a71d8121635a7a1b5d01cb00d1 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UserCreateAttributesDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UserCreateAttributesDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.keycloak;
+package at.ac.tuwien.ifs.dbrepo.core.api.keycloak;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UserCreateDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UserCreateDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UserCreateDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UserCreateDto.java
index fc339b6a4efa841c7069574c76fc82f87f66e2ae..b8879ae24e29daa163acfec9be93f485720858fd 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UserCreateDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UserCreateDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.keycloak;
+package at.ac.tuwien.ifs.dbrepo.core.api.keycloak;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UserIdAttributesDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UserIdAttributesDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UserIdAttributesDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UserIdAttributesDto.java
index ee1046d20e459a59c41b9f947f90faa545657a83..0a34e5fe61bfaad96bed5535cf77a2dd9e782496 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UserIdAttributesDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UserIdAttributesDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.keycloak;
+package at.ac.tuwien.ifs.dbrepo.core.api.keycloak;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/ldap/UserDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/ldap/UserDto.java
similarity index 89%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/ldap/UserDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/ldap/UserDto.java
index e3be6be7bc4fe47d74654d7a982d7c2af7d4acab..f06844ef7d865d27cab90dec9a9fc95ee21243fa 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/ldap/UserDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/ldap/UserDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.ldap;
+package at.ac.tuwien.ifs.dbrepo.core.api.ldap;
 
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageBriefDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageBriefDto.java
index d99e8e7eac161e20735c1d7e03d1be1b0b78b021..72ca75913fa8e9d66e6439c75c9d29dba69893d4 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageBriefDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.maintenance;
+package at.ac.tuwien.ifs.dbrepo.core.api.maintenance;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageCreateDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageCreateDto.java
similarity index 95%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageCreateDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageCreateDto.java
index 1673bbe2674cfc5c62a3d1b968053350edd84f04..3526258d80bef97bc1a79496ceb6b4af46440e60 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageCreateDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageCreateDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.maintenance;
+package at.ac.tuwien.ifs.dbrepo.core.api.maintenance;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageDto.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageDto.java
index 8ff6644fbbccd05f75745f9b3bdadb6343fbfa47..9e2f094b69c9abe55d3291fd798dc3381ff20bf7 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.maintenance;
+package at.ac.tuwien.ifs.dbrepo.core.api.maintenance;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageTypeDto.java
similarity index 89%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageTypeDto.java
index 75f5c6bef641c0f84e84ab8f9e9845f095c5b76c..16e9b8a81007a95e6cef7bd6f2a3ecb799dee0ad 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.maintenance;
+package at.ac.tuwien.ifs.dbrepo.core.api.maintenance;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageUpdateDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageUpdateDto.java
similarity index 95%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageUpdateDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageUpdateDto.java
index a88ac45ea05e26fc0ad5e9d127ea3ca9c80b52cd..4551adaa40cc32e05aeedf635b22e56084fc18ef 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageUpdateDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageUpdateDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.maintenance;
+package at.ac.tuwien.ifs.dbrepo.core.api.maintenance;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/OrcidDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/OrcidDto.java
similarity index 66%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/OrcidDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/OrcidDto.java
index d75058a687ad6d2ec24c2a38fe06f965fd2c6274..e25b7240fa36f58668aed64dd17fdbf2d2e680d8 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/OrcidDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/OrcidDto.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.api.orcid;
+package at.ac.tuwien.ifs.dbrepo.core.api.orcid;
 
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.OrcidActivitiesSummaryDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.person.OrcidPersonDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.OrcidActivitiesSummaryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.person.OrcidPersonDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/OrcidActivitiesSummaryDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/OrcidActivitiesSummaryDto.java
similarity index 65%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/OrcidActivitiesSummaryDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/OrcidActivitiesSummaryDto.java
index c384e846d2d9cd0b4856de6f0ba99730bdcb90a8..3bd62fd915ee720099bf3fed170533d99a50a921 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/OrcidActivitiesSummaryDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/OrcidActivitiesSummaryDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.orcid.activities;
+package at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities;
 
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.OrcidEmploymentsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.OrcidEmploymentsDto;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/OrcidEmploymentsDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/OrcidEmploymentsDto.java
similarity index 66%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/OrcidEmploymentsDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/OrcidEmploymentsDto.java
index 823c88ae2b8ca89b3b47d398592f1518ac985382..fee281294b1f0f15de263e736e24b04939c4fe14 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/OrcidEmploymentsDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/OrcidEmploymentsDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments;
+package at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments;
 
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.OrcidAffiliationGroupDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.OrcidAffiliationGroupDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/OrcidAffiliationGroupDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/OrcidAffiliationGroupDto.java
similarity index 57%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/OrcidAffiliationGroupDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/OrcidAffiliationGroupDto.java
index 6882badd5f5cb2fd03ce75d931f9530393c1c188..bbda576a4a337a908ca870bc53c6ce83b6a3b5d8 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/OrcidAffiliationGroupDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/OrcidAffiliationGroupDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation;
+package at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation;
 
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group.OrcidEmploymentSummaryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group.OrcidEmploymentSummaryDto;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/OrcidEmploymentSummaryDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/OrcidEmploymentSummaryDto.java
similarity index 63%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/OrcidEmploymentSummaryDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/OrcidEmploymentSummaryDto.java
index 60eed0e5d2102a235d0b2b99771da0d042e664bc..159e83a3a5c9aee30e3fa1506b426157712e5603 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/OrcidEmploymentSummaryDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/OrcidEmploymentSummaryDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group;
+package at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group;
 
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group.summary.OrcidSummaryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group.summary.OrcidSummaryDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/summary/OrcidSummaryDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/summary/OrcidSummaryDto.java
similarity index 69%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/summary/OrcidSummaryDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/summary/OrcidSummaryDto.java
index 64856f355dfa06d84b70cbd35fab80db0014c056..1dfd21700a7577f927115bcfc3538ba137d74b25 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/summary/OrcidSummaryDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/summary/OrcidSummaryDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group.summary;
+package at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group.summary;
 
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group.summary.organization.OrcidOrganizationDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group.summary.organization.OrcidOrganizationDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/summary/organization/OrcidOrganizationDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/summary/organization/OrcidOrganizationDto.java
similarity index 60%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/summary/organization/OrcidOrganizationDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/summary/organization/OrcidOrganizationDto.java
index d8303aef2e394fd8d60c90299d719dffef22bdb0..7146bcf175b170d6bccc868b1515b4d8d675d70d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/summary/organization/OrcidOrganizationDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/summary/organization/OrcidOrganizationDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group.summary.organization;
+package at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group.summary.organization;
 
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group.summary.organization.disambiguated.OrcidDisambiguatedDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group.summary.organization.disambiguated.OrcidDisambiguatedDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedDto.java
similarity index 78%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedDto.java
index e6c60e9b740cd4b64b72aa34d83c7f575c4c3331..e8ea1dba395eb82dd06737f93fcdab58a65a9a0d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group.summary.organization.disambiguated;
+package at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group.summary.organization.disambiguated;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedSourceTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedSourceTypeDto.java
new file mode 100644
index 0000000000000000000000000000000000000000..83169ad79cf067edda2b6787c7c3c0480f7f2af6
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedSourceTypeDto.java
@@ -0,0 +1,6 @@
+package at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group.summary.organization.disambiguated;
+
+public enum OrcidDisambiguatedSourceTypeDto {
+    RINGGOLD,
+    ROR
+}
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/person/OrcidPersonDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/person/OrcidPersonDto.java
similarity index 64%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/person/OrcidPersonDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/person/OrcidPersonDto.java
index 62ca759f03782c6d590a878ac0ffc497107db7cf..afb1d6d80f4fac5e172b9b60238d6a435c3081ed 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/person/OrcidPersonDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/person/OrcidPersonDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.orcid.person;
+package at.ac.tuwien.ifs.dbrepo.core.api.orcid.person;
 
-import at.ac.tuwien.ifs.dbrepo.api.orcid.person.name.OrcidNameDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.person.name.OrcidNameDto;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/person/name/OrcidNameDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/person/name/OrcidNameDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/person/name/OrcidNameDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/person/name/OrcidNameDto.java
index 81765d9b65a1a1bcd12dac449091d070e9d18146..2b638ff20ab3353f6d27b68d58d878d1c2427624 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/person/name/OrcidNameDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/person/name/OrcidNameDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.orcid.person.name;
+package at.ac.tuwien.ifs.dbrepo.core.api.orcid.person.name;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/person/name/OrcidValueDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/person/name/OrcidValueDto.java
similarity index 79%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/person/name/OrcidValueDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/person/name/OrcidValueDto.java
index 9194a6247fef503ce9c47e36d0df38a44767e041..bcfd0d3a16be598fd7a0a6a1632f6019d0e6ad6f 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/person/name/OrcidValueDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/person/name/OrcidValueDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.orcid.person.name;
+package at.ac.tuwien.ifs.dbrepo.core.api.orcid.person.name;
 
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/ror/RorDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/ror/RorDto.java
similarity index 85%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/ror/RorDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/ror/RorDto.java
index 22cde2d7735fafede44220fa38108dbe2213e377..19776bcf090f00766a1fbd9c03dbc0392d735b30 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/ror/RorDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/ror/RorDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.ror;
+package at.ac.tuwien.ifs.dbrepo.core.api.ror;
 
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/EntityDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/EntityDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/EntityDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/EntityDto.java
index 30142ad9fcfb936579a4c40af8e48767fc93bdbd..a9f31f97f00883dc54d61bd226199df23ed3e1a3 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/EntityDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/EntityDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.semantics;
+package at.ac.tuwien.ifs.dbrepo.core.api.semantics;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/OntologyBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/OntologyBriefDto.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/OntologyBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/OntologyBriefDto.java
index be02f87bbd897e5cdf984467ee897c3228bb5a3b..81caa34ad142db762e7ade6763ef86f0c31fa468 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/OntologyBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/OntologyBriefDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.semantics;
+package at.ac.tuwien.ifs.dbrepo.core.api.semantics;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/OntologyCreateDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/OntologyCreateDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/OntologyCreateDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/OntologyCreateDto.java
index 2ee4270167ad53808f4efde25832aae0d64f76f5..aa11b34e558bcd2e1bcb6afa426bd0fdce6467ca 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/OntologyCreateDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/OntologyCreateDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.semantics;
+package at.ac.tuwien.ifs.dbrepo.core.api.semantics;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/OntologyDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/OntologyDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/OntologyDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/OntologyDto.java
index 10d2811d709c2f8089789dd898385b5252543820..afbb818e1b773b1a591703b63990c77f04153bea 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/OntologyDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/OntologyDto.java
@@ -1,6 +1,5 @@
-package at.ac.tuwien.ifs.dbrepo.api.semantics;
+package at.ac.tuwien.ifs.dbrepo.core.api.semantics;
 
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/OntologyModifyDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/OntologyModifyDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/OntologyModifyDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/OntologyModifyDto.java
index 96219dca2b3993721f2920d3846920b03ec87302..b73891b342ea0e0bb0ce2bfcfaf5a867bcf99332 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/OntologyModifyDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/OntologyModifyDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.semantics;
+package at.ac.tuwien.ifs.dbrepo.core.api.semantics;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/TableColumnEntityDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/TableColumnEntityDto.java
similarity index 95%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/TableColumnEntityDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/TableColumnEntityDto.java
index 84e39722a66b8abd09317184fe73b979986e8e26..1bb401e5cac889f2d14b8693ff0774db8f31d1d0 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/TableColumnEntityDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/TableColumnEntityDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.semantics;
+package at.ac.tuwien.ifs.dbrepo.core.api.semantics;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/ExchangeUpdatePermissionsDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/ExchangeUpdatePermissionsDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/ExchangeUpdatePermissionsDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/ExchangeUpdatePermissionsDto.java
index ff3ba42b90ab8b037d441732c9b14d35e5dfe900..3b775a23186261ed2bb05971783e5dfc21458d20 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/ExchangeUpdatePermissionsDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/ExchangeUpdatePermissionsDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/GrantedAuthorityDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/GrantedAuthorityDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/GrantedAuthorityDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/GrantedAuthorityDto.java
index 54922ad1cb8163da5276a66e7597b4238afaeaea..cabc0b1d079e3b4e303c2a0e2691bfa566d69d46 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/GrantedAuthorityDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/GrantedAuthorityDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/RoleTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/RoleTypeDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/RoleTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/RoleTypeDto.java
index b0841c3e7bf5691f50f531df8cd720e1506b91a7..30f2cc2b8b001d89e92a356429e8cd26f87dee45 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/RoleTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/RoleTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserAttributesDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserAttributesDto.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserAttributesDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserAttributesDto.java
index 4f55c0f23838d120d8387d38d34fa832e36de596..b365199cece5f4d21e13078eaf7df0cfaf550504 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserAttributesDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserAttributesDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserBriefDto.java
similarity index 95%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserBriefDto.java
index 243e60d9539f306f37670713acdac076eee559eb..58a2aeab88416c5f95c72ac2e91c4b2aacefad56 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserBriefDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserDetailsDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserDetailsDto.java
similarity index 95%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserDetailsDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserDetailsDto.java
index 4885182d45fdc2dabc0504176e827975230bc27b..8f4b3c3892d2ca2d94cd3943752020f193947d57 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserDetailsDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserDetailsDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserDto.java
index ccbda5e4d55ca1ed1ec69b6ae33c130c20724d44..c5db9917257ad4cfe649c2d3bb9abffdb0e7215b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
-import at.ac.tuwien.ifs.dbrepo.api.CacheableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.CacheableDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserEmailDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserEmailDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserEmailDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserEmailDto.java
index af63a34632bb824e2cc3121662f8d6f576c3f40b..a8ccd56b8d9257ea0dd53252e04bdfee4f40bc69 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserEmailDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserEmailDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.Email;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserForgotDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserForgotDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserForgotDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserForgotDto.java
index 2e57299fc10da0312744f36413dbfe519cd3b137..4895a04c70d2ad5322336462bbf5656357994fda 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserForgotDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserForgotDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.Email;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserModifyPasswordDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserModifyPasswordDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserModifyPasswordDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserModifyPasswordDto.java
index b0dd8a0b8d73b00fed8dfa78a777832982315452..9b1e1a72cc42776d8502ba4ff46ba7839255e36a 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserModifyPasswordDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserModifyPasswordDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserPasswordDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserPasswordDto.java
similarity index 86%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserPasswordDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserPasswordDto.java
index 5ee021f1e0355b1156a6f62bc00589132e0db046..f549047c4e277ed6f23315099ea2ab4378b7dd5e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserPasswordDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserPasswordDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserResetDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserResetDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserResetDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserResetDto.java
index 633f5eb6dace214bc90464d3d56693ad94c80a0d..260b5f67ca7cf58f7eb998b23f19c1b7dc8ab709 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserResetDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserResetDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserRolesDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserRolesDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserRolesDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserRolesDto.java
index ae66c63b4751b3e4992d48a5eb9d6ae15460df43..8ed18d5101f1b98593c6e4a54a90a627d5482567 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserRolesDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserRolesDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserThemeSetDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserThemeSetDto.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserThemeSetDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserThemeSetDto.java
index 66f423f9f884afcf7fcc5f0e09d89b96f2dd026b..ebc7292edf278612aebf49458d48f673a7db5477 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserThemeSetDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserThemeSetDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserUpdateDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserUpdateDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserUpdateDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserUpdateDto.java
index 9a37802b8f5803332c57f31ceedf3af50bd0b53e..099d3e7b08d46b74312d1b4c1fbd31b3eb4c4e2b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserUpdateDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserUpdateDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserUpdatePermissionsDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserUpdatePermissionsDto.java
similarity index 89%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserUpdatePermissionsDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserUpdatePermissionsDto.java
index 479dff036aa7f86d21b504cefa44e94139eb0f87..dd7742c2f5fe279ef27f2033b52bb5626206f65e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserUpdatePermissionsDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserUpdatePermissionsDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/external/ExternalMetadataDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/external/ExternalMetadataDto.java
similarity index 78%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/external/ExternalMetadataDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/external/ExternalMetadataDto.java
index 1382ab367bf5d62e72300b15a5601165e7e7af9f..c169e27fe52b9f5c767cd3d579456f5a2af2ab53 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/external/ExternalMetadataDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/external/ExternalMetadataDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.user.external;
+package at.ac.tuwien.ifs.dbrepo.core.api.user.external;
 
-import at.ac.tuwien.ifs.dbrepo.api.user.external.affiliation.ExternalAffiliationDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.external.affiliation.ExternalAffiliationDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/external/ExternalResultType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/external/ExternalResultType.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/external/ExternalResultType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/external/ExternalResultType.java
index d897b258430a217e707646e5cb10a55044c4f926..e3cb61abf1fd31b39f311b29118a854021b9728e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/external/ExternalResultType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/external/ExternalResultType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user.external;
+package at.ac.tuwien.ifs.dbrepo.core.api.user.external;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/external/affiliation/ExternalAffiliationDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/external/affiliation/ExternalAffiliationDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/external/affiliation/ExternalAffiliationDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/external/affiliation/ExternalAffiliationDto.java
index c354edc34124c806965ae5ba70ad3a1a37dec890..8a0a4935034f8688da4e9452ada9cf65b6d40148 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/external/affiliation/ExternalAffiliationDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/external/affiliation/ExternalAffiliationDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user.external.affiliation;
+package at.ac.tuwien.ifs.dbrepo.core.api.user.external.affiliation;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/internal/UpdateUserPasswordDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/internal/UpdateUserPasswordDto.java
similarity index 85%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/internal/UpdateUserPasswordDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/internal/UpdateUserPasswordDto.java
index f2a52d59bf7f998f7e1141e9a5cafa6c11dd738c..8f1cffdd62afa7afad0596f610afbf32a56207d5 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/internal/UpdateUserPasswordDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/internal/UpdateUserPasswordDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user.internal;
+package at.ac.tuwien.ifs.dbrepo.core.api.user.internal;
 
 import jakarta.validation.constraints.NotBlank;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/container/Container.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/container/Container.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/container/Container.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/container/Container.java
index e81ef5942ade7555819f2250dcdfe8fbfd74f14d..7390124cac8be6e519e60149277635b0b294f467 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/container/Container.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/container/Container.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.entity.container;
+package at.ac.tuwien.ifs.dbrepo.core.entity.container;
 
-import at.ac.tuwien.ifs.dbrepo.entity.container.image.ContainerImage;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.image.ContainerImage;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/container/image/ContainerImage.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/container/image/ContainerImage.java
similarity index 95%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/container/image/ContainerImage.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/container/image/ContainerImage.java
index 2c0bc705c697ce3b8a08c49a26288945dd5c7a7d..7629976bf1a62d8a4dc92394c105a741271fd2cb 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/container/image/ContainerImage.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/container/image/ContainerImage.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.entity.container.image;
+package at.ac.tuwien.ifs.dbrepo.core.entity.container.image;
 
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.Container;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/container/image/DataType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/container/image/DataType.java
similarity index 97%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/container/image/DataType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/container/image/DataType.java
index e623680a7cd9f0f12381cb83d7c318ebfce191a3..502474bee249e6337cf5944d9a10bf6cf42a7358 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/container/image/DataType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/container/image/DataType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.container.image;
+package at.ac.tuwien.ifs.dbrepo.core.entity.container.image;
 
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/container/image/Operator.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/container/image/Operator.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/container/image/Operator.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/container/image/Operator.java
index b07c2ff714511b30299f250608b533343701be06..5e629d267311fcc9b821d5aa8c1dde66d594ea98 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/container/image/Operator.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/container/image/Operator.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.container.image;
+package at.ac.tuwien.ifs.dbrepo.core.entity.container.image;
 
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/AccessType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/AccessType.java
similarity index 70%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/AccessType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/AccessType.java
index 00baac63495d646a1d2c5cf41bf85a50e6d6a746..c17ba90844c16588b49731986ef5f6535fcc76b9 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/AccessType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/AccessType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database;
 
 import lombok.Getter;
 import lombok.ToString;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/Database.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/Database.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/Database.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/Database.java
index 7a22597fb9363b6d753ef5e44a78a3bc5ac03418..2aefc232a30908654572a89b8a894abbc00d8c96 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/Database.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/Database.java
@@ -1,8 +1,8 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database;
 
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.Identifier;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.Container;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Identifier;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import jakarta.persistence.*;
 import lombok.*;
@@ -101,7 +101,7 @@ public class Database implements Serializable {
 
     @OrderBy("id DESC")
     @OneToMany(fetch = FetchType.LAZY, cascade = {CascadeType.ALL, CascadeType.PERSIST}, mappedBy = "database", orphanRemoval = true)
-    private List<at.ac.tuwien.ifs.dbrepo.entity.database.table.Table> tables;
+    private List<at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table> tables;
 
     @OrderBy("id DESC")
     @OneToMany(fetch = FetchType.LAZY, cascade = {CascadeType.ALL, CascadeType.PERSIST}, mappedBy = "database", orphanRemoval = true)
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/DatabaseAccess.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/DatabaseAccess.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/DatabaseAccess.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/DatabaseAccess.java
index 57cdb36cba56ef89539abebc5cf50e9565b157c7..b0e110a67643f45569380a7dbd56469edd5f1570 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/DatabaseAccess.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/DatabaseAccess.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database;
 
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
 import jakarta.persistence.*;
 import lombok.*;
 import org.hibernate.annotations.JdbcTypeCode;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/DatabaseAccessKey.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/DatabaseAccessKey.java
similarity index 80%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/DatabaseAccessKey.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/DatabaseAccessKey.java
index 6e078dad1acbd26d9ab25894bfd6b57fe67bbfd1..a1a55ab60e6257d05ee028f33f938e24a5793422 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/DatabaseAccessKey.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/DatabaseAccessKey.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database;
 
 import lombok.EqualsAndHashCode;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/LanguageType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/LanguageType.java
similarity index 98%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/LanguageType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/LanguageType.java
index 884b695cb73b94e0c3674fd50aceb25f4fbf70b2..b4e6ddb26117757b359f2541f69b09c49239a68b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/LanguageType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/LanguageType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database;
 
 import lombok.Getter;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/License.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/License.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/License.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/License.java
index bb1901bd8e3b1c12ee4bfb3486b94d5e0b4d35b4..ce449e61caff06efb8b673ad96135023f55c8d1d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/License.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/License.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database;
 
 import lombok.*;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/View.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/View.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/View.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/View.java
index bcce570754dc56ac4e3da0f699a27279fd81e7d3..d84b75530b1b5dd2b27a896461f6d86671588ea1 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/View.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/View.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database;
 
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.Identifier;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Identifier;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/ViewColumn.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/ViewColumn.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/ViewColumn.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/ViewColumn.java
index 5a7d595745e419e86cdf8bc0840d0354b14e4e95..aa2cfcd84512e76e0df7c6c1d60aa71505c98abc 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/ViewColumn.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/ViewColumn.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnType;
 import jakarta.persistence.*;
 import lombok.*;
 import org.hibernate.annotations.JdbcTypeCode;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/Table.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/Table.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/Table.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/Table.java
index 38da4ffbba0c3de6bbe136d123cbf91bbf444dd6..42faf301ca49b73bfc4bcded087b9c005a5c764a 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/Table.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/Table.java
@@ -1,10 +1,10 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database.table;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database.table;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumn;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.Constraints;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.Identifier;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumn;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.Constraints;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Identifier;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/ColumnEnum.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/ColumnEnum.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/ColumnEnum.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/ColumnEnum.java
index 2fa054469eced3941eee545de9413fbe4be1314a..dddf3fd5019c2853b1d5c77658f0a3b705097a23 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/ColumnEnum.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/ColumnEnum.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database.table.columns;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns;
 
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/ColumnSet.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/ColumnSet.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/ColumnSet.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/ColumnSet.java
index ce8cdc8be788f3f6fc6ca20a646d467fd91ca4a7..a5925f9c2e9c7011c4bac5488f53cbf28b9db968 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/ColumnSet.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/ColumnSet.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database.table.columns;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns;
 
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/TableColumn.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/TableColumn.java
similarity index 97%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/TableColumn.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/TableColumn.java
index 3a6b8e8f55a2ec76ac007ef06f06f54569f04e26..010c919f05de881e40a6d3138e0f1191bde71e46 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/TableColumn.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/TableColumn.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database.table.columns;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/TableColumnConcept.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/TableColumnConcept.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/TableColumnConcept.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/TableColumnConcept.java
index a192473a71187dc5ad40998e063adb207cf76066..7b576cf792c54f3a064d0f9b65a455cdf954d5d9 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/TableColumnConcept.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/TableColumnConcept.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database.table.columns;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import jakarta.persistence.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/TableColumnType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/TableColumnType.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/TableColumnType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/TableColumnType.java
index 5ba076b64c2fb5163a940b36aa748a3e24cd58e0..9562193a2d909beb62a50fdad9f6b6397d0aa438 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/TableColumnType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/TableColumnType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database.table.columns;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns;
 
 import lombok.Getter;
 import lombok.ToString;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/TableColumnUnit.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/TableColumnUnit.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/TableColumnUnit.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/TableColumnUnit.java
index 297ce92618e79f71a014318a1552e5c3935fa45c..39341261ff92de778ef253d3935dcaa8269b3c18 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/TableColumnUnit.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/TableColumnUnit.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database.table.columns;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import jakarta.persistence.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/Constraints.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/Constraints.java
similarity index 71%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/Constraints.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/Constraints.java
index 10174e03697476e00b4ef4b53b9d7abed213b9c8..f009c69f7f4789d050d930ba45ea745a1ce0b558 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/Constraints.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/Constraints.java
@@ -1,8 +1,8 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.foreignKey.ForeignKey;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.primaryKey.PrimaryKey;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.unique.Unique;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.foreignKey.ForeignKey;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.primaryKey.PrimaryKey;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.unique.Unique;
 import lombok.*;
 
 import jakarta.persistence.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/foreignKey/ForeignKey.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/foreignKey/ForeignKey.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/foreignKey/ForeignKey.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/foreignKey/ForeignKey.java
index 8aec4443fff00dfa157aac3c5fcd43b0a22e952c..c7414e3c1d7c42cdb66ce51d1c781217906969c7 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/foreignKey/ForeignKey.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/foreignKey/ForeignKey.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.foreignKey;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.foreignKey;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
 import jakarta.persistence.*;
 import lombok.*;
 import org.hibernate.annotations.JdbcTypeCode;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/foreignKey/ForeignKeyReference.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/foreignKey/ForeignKeyReference.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/foreignKey/ForeignKeyReference.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/foreignKey/ForeignKeyReference.java
index b8349c200cd9d8c08c0291f5bcd66ba0f1cd951c..8ac36e4fa8c91d1de20c1c59717eaf36b6d7a301 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/foreignKey/ForeignKeyReference.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/foreignKey/ForeignKeyReference.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.foreignKey;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.foreignKey;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumn;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumn;
 import jakarta.persistence.*;
 import lombok.*;
 import org.hibernate.annotations.JdbcTypeCode;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/foreignKey/ReferenceType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/foreignKey/ReferenceType.java
similarity index 67%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/foreignKey/ReferenceType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/foreignKey/ReferenceType.java
index f9fec8cf926d7507a80b3cb58129230eccb444de..5e5aacb0bd76ae380da8079fd55eb21ef2a5b09d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/foreignKey/ReferenceType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/foreignKey/ReferenceType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.foreignKey;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.foreignKey;
 
 import lombok.Getter;
 import lombok.ToString;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/primaryKey/PrimaryKey.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/primaryKey/PrimaryKey.java
similarity index 85%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/primaryKey/PrimaryKey.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/primaryKey/PrimaryKey.java
index 1dbe4e4ffbfe303920c63e7a99003f9624509c8c..ddf3abdf9a611c90dd18b3614bde097344ba4b2c 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/primaryKey/PrimaryKey.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/primaryKey/PrimaryKey.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.primaryKey;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.primaryKey;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumn;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumn;
 import jakarta.persistence.*;
 import lombok.*;
 import org.hibernate.annotations.JdbcTypeCode;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/unique/Unique.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/unique/Unique.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/unique/Unique.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/unique/Unique.java
index 173dd33c7561673687ca278f3cb0798af50bc709..8dcf9ccbfd1e19a3a901aae4f3338549f35b294a 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/unique/Unique.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/unique/Unique.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.unique;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.unique;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumn;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumn;
 import jakarta.persistence.*;
 import lombok.*;
 import org.hibernate.annotations.JdbcTypeCode;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/AffiliationIdentifierSchemeType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/AffiliationIdentifierSchemeType.java
similarity index 66%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/AffiliationIdentifierSchemeType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/AffiliationIdentifierSchemeType.java
index 016cc2d4b117ba5b50f682ad8d456f182304b96f..8660ce193619e35b4d20b44c215491eafac3cf2c 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/AffiliationIdentifierSchemeType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/AffiliationIdentifierSchemeType.java
@@ -1,5 +1,5 @@
 
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
 import lombok.Getter;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/Creator.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/Creator.java
similarity index 98%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/Creator.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/Creator.java
index 109ed5e865481d5c99c485bef550a410a520e09a..8a2bcf25e2e0a7bfc4add70406bc84503cb959d2 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/Creator.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/Creator.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/DescriptionType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/DescriptionType.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/DescriptionType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/DescriptionType.java
index 71b8241fcd2b59cf57de272f8ae68942ff271d3c..ef85f04e72bde17c4a05f768ff05c2c5b32e701b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/DescriptionType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/DescriptionType.java
@@ -1,5 +1,5 @@
 
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
 import lombok.Getter;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/Identifier.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/Identifier.java
similarity index 95%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/Identifier.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/Identifier.java
index f8e16ef7bfad94766b726749333f7fb23e57ba27..04471509c6cd711b745f1a9060227d869f2dcb33 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/Identifier.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/Identifier.java
@@ -1,9 +1,9 @@
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.LanguageType;
-import at.ac.tuwien.ifs.dbrepo.entity.database.License;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.LanguageType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.License;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierDescription.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierDescription.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierDescription.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierDescription.java
index 345939723214348aff9eeec605ce5659a374d6f9..ab73de406ee607253f14a182a4c9af9f748666dc 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierDescription.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierDescription.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.LanguageType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.LanguageType;
 import jakarta.persistence.*;
 import lombok.*;
 import org.hibernate.annotations.JdbcTypeCode;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierFunder.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierFunder.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierFunder.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierFunder.java
index 1f70b31d1c61074c9e199ca9155f08163ab7eb21..eb3c21e61794726e53cabfcfe8e32e58072789d9 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierFunder.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierFunder.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierFunderType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierFunderType.java
similarity index 64%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierFunderType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierFunderType.java
index 8e6abe9ab4d788ed3c02ebc72d750de9439abd6c..d805d7e7a269ef33312beb8f982755dbe4236d8d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierFunderType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierFunderType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
 public enum IdentifierFunderType {
     CROSSREF_FUNDER_ID,
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierStatusType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierStatusType.java
similarity index 62%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierStatusType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierStatusType.java
index 96d27340330ccea99bd3a4d882f90ad1b1e7387b..242a41e4a7c8e35e7abfb75d2b132a3a0bcb1fc2 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierStatusType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierStatusType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
 import lombok.Getter;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierTitle.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierTitle.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierTitle.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierTitle.java
index 6241cd98ebe243da0dcb18cdd08f334b68a133a7..8dbbdac0a9dd7804f61315892201c5df53857403 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierTitle.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierTitle.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.LanguageType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.LanguageType;
 import jakarta.persistence.*;
 import lombok.*;
 import org.hibernate.annotations.JdbcTypeCode;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierType.java
similarity index 66%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierType.java
index 748efbc83438c7a3337fc2f50c81a108fa99939f..85fb127d98a247873f24825f65e9ca4afc960c9f 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
 import lombok.Getter;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/NameIdentifierSchemeType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/NameIdentifierSchemeType.java
similarity index 66%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/NameIdentifierSchemeType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/NameIdentifierSchemeType.java
index b8c5c883c95b8b2bc4d4fd30ba5e17cdd35b222e..645ec69d897678154474377adfd51d65924b9585 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/NameIdentifierSchemeType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/NameIdentifierSchemeType.java
@@ -1,5 +1,5 @@
 
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
 import lombok.Getter;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/NameType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/NameType.java
similarity index 61%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/NameType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/NameType.java
index f068c63f753de5d8d9e3f395652a8ed7f484a35c..ce2f1585e438d8f5e5784cd7c73b2daa7d0c2ca8 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/NameType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/NameType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
 import lombok.Getter;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/RelatedIdentifier.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/RelatedIdentifier.java
similarity index 97%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/RelatedIdentifier.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/RelatedIdentifier.java
index 52c2d5a24adaf181b36fa336c39da0762ef675db..e0eb28d11b7c68753c2f99564d28bb59be7fbf17 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/RelatedIdentifier.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/RelatedIdentifier.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/RelatedType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/RelatedType.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/RelatedType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/RelatedType.java
index e58d21b73d03d9b0664efb7f614ce61c65d75ada..7310ff455b5ceb1e7ae83ef5bc6547c1f5466a59 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/RelatedType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/RelatedType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
 public enum RelatedType {
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/RelationType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/RelationType.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/RelationType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/RelationType.java
index ea272d6a64dbb190ad84528d361cb18b8c0105c4..94bebb011799245cf265b95a0a7eb0940dcd5288 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/RelationType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/RelationType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
 public enum RelationType {
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/TitleType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/TitleType.java
similarity index 86%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/TitleType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/TitleType.java
index 5fa91e1498922fb3679a25e23bd8ca8ebd986ac1..a4b5f36b67c47d76a92f98c61aa04abe01012471 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/TitleType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/TitleType.java
@@ -1,5 +1,5 @@
 
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
 import lombok.Getter;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/maintenance/BannerMessage.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/maintenance/BannerMessage.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/maintenance/BannerMessage.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/maintenance/BannerMessage.java
index 891f7dc1416dced3a3c0b7d527cc2b64b52ccac8..ef6f3533e9dc464230b688cf373ff966824937c0 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/maintenance/BannerMessage.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/maintenance/BannerMessage.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.maintenance;
+package at.ac.tuwien.ifs.dbrepo.core.entity.maintenance;
 
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/maintenance/BannerMessageType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/maintenance/BannerMessageType.java
similarity index 69%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/maintenance/BannerMessageType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/maintenance/BannerMessageType.java
index 71a3342c4c4b2d31925b6b2c00569e85014dfb28..34cf2bc6d4d75b4b727c1973bf5b97f865c5d1ad 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/maintenance/BannerMessageType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/maintenance/BannerMessageType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.maintenance;
+package at.ac.tuwien.ifs.dbrepo.core.entity.maintenance;
 
 import lombok.Getter;
 import lombok.ToString;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/semantics/Ontology.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/semantics/Ontology.java
similarity index 97%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/semantics/Ontology.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/semantics/Ontology.java
index 0ace319c0643ca95e3058af1f1254040f149f3a7..8cf3250a048654a085c5628e1c12c65083fb4aec 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/semantics/Ontology.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/semantics/Ontology.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.semantics;
+package at.ac.tuwien.ifs.dbrepo.core.entity.semantics;
 
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/user/User.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/user/User.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/user/User.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/user/User.java
index abc6de1a52bb02170ee96e44c30a81d2ee51c426..f3a65f1de5c0a2ca468f1e57a269d71bb5962bb3 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/user/User.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/user/User.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.entity.user;
+package at.ac.tuwien.ifs.dbrepo.core.entity.user;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
 import jakarta.persistence.*;
 import lombok.*;
 import lombok.extern.log4j.Log4j2;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AccessNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AccessNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AccessNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AccessNotFoundException.java
index 8b5f6ade2f92505f4e152d32ae1c247ae7b1a073..9cac5ca8f8fdef6606bd5b5906d7b3660e8db148 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AccessNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AccessNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AccountNotSetupException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AccountNotSetupException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AccountNotSetupException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AccountNotSetupException.java
index 35648b619f8373344d964f9f44408a98295701cc..ed00129ca906373d9c85b66f9076815949086cbc 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AccountNotSetupException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AccountNotSetupException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AnalyseServiceException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AnalyseServiceException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AnalyseServiceException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AnalyseServiceException.java
index 082d828ecfbb6c659630cb7352aa30b83dc1ed50..d86344bc86d95347e9795a9970fd14766766b70d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AnalyseServiceException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AnalyseServiceException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AuthServiceConnectionException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AuthServiceConnectionException.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AuthServiceConnectionException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AuthServiceConnectionException.java
index 26b38feb87309d2f1ce6f89811c1674b674cf9ba..abca69a27bf1c2c2ab79b4d7879f5ada47693535 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AuthServiceConnectionException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AuthServiceConnectionException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AuthServiceException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AuthServiceException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AuthServiceException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AuthServiceException.java
index ceb80dd3a410acdfcd153d72a1e5dc95385a5611..de5969c4a8a753ca8fda596505144c1c66710c26 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AuthServiceException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AuthServiceException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/BrokerServiceConnectionException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/BrokerServiceConnectionException.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/BrokerServiceConnectionException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/BrokerServiceConnectionException.java
index c5a9bf2078e33859df4f3368ab3b77f34d35707f..7a5f17d0edbc7f0d5ad6c2d75474dd717a7da1f5 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/BrokerServiceConnectionException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/BrokerServiceConnectionException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/BrokerServiceException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/BrokerServiceException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/BrokerServiceException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/BrokerServiceException.java
index 0d47571f1dd04d155954c83fbd871bfd8b510244..c0ca429d66ea789f4278e8075d06ad0f6724e081 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/BrokerServiceException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/BrokerServiceException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ConceptNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ConceptNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ConceptNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ConceptNotFoundException.java
index c3c7dc918bb3cba18217970dd175b2b875b81814..6be6c9dd8f64c31c451b071ac857a54d75ee6a39 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ConceptNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ConceptNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ContainerAlreadyExistsException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ContainerAlreadyExistsException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ContainerAlreadyExistsException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ContainerAlreadyExistsException.java
index c2f91177c7442d34b910fc1d48fb634a0807388d..348bcf51f31bac5dfc321fba4cfecd307752b467 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ContainerAlreadyExistsException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ContainerAlreadyExistsException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ContainerNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ContainerNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ContainerNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ContainerNotFoundException.java
index 8bda8f5d0ee746619f1747af607c463e8ef062ca..a81b036e26f9cb23a4f08cb5940549e4717afa00 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ContainerNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ContainerNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ContainerQuotaException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ContainerQuotaException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ContainerQuotaException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ContainerQuotaException.java
index c7238c758701c451dab041c4324c545cf7198cb3..9d01a336071afca41c6d3673a4db7e1a15ecd97e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ContainerQuotaException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ContainerQuotaException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/CredentialsInvalidException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/CredentialsInvalidException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/CredentialsInvalidException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/CredentialsInvalidException.java
index 1639c284f092f1c6d08e3e4c0625efab397f6964..afe130463f44e7fb66901a48c7ff868e93fa88d7 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/CredentialsInvalidException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/CredentialsInvalidException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DashboardServiceConnectionException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DashboardServiceConnectionException.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DashboardServiceConnectionException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DashboardServiceConnectionException.java
index 2319a5a38136bda997c4eb9696b2e1c5331bd30b..cbac75cfff00df627e0815f33171dad246de4bb0 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DashboardServiceConnectionException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DashboardServiceConnectionException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DashboardServiceException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DashboardServiceException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DashboardServiceException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DashboardServiceException.java
index a3b27235cf6f2f8620f29ff92c4f1d6d3ee17773..8ab1d1ef233233df9e8d0998237cee1ebb7d9435 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DashboardServiceException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DashboardServiceException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DataServiceConnectionException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DataServiceConnectionException.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DataServiceConnectionException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DataServiceConnectionException.java
index d2f0669f6d397e37e8a21bc76dd0513efe508f53..156d8be72916e4763c9b54f1f3c6f5cf8a882fa2 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DataServiceConnectionException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DataServiceConnectionException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DataServiceException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DataServiceException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DataServiceException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DataServiceException.java
index 5c53b364c65f2d6e65894e9c7217212448331b62..66ea9a4e9bd94b6e9d728c04f00bc3093c2f83eb 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DataServiceException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DataServiceException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DatabaseMalformedException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DatabaseMalformedException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DatabaseMalformedException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DatabaseMalformedException.java
index 223b90c6ae1c803503dece440556a1697bebf90a..797341970523d486f28c1b739a461ed657c085e0 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DatabaseMalformedException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DatabaseMalformedException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DatabaseNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DatabaseNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DatabaseNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DatabaseNotFoundException.java
index 33afcef14f02379175476a62c049096aea475070..41cdcc8d4b2b67b86cccbb5351bfabb0e2b405cb 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DatabaseNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DatabaseNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DatabaseUnavailableException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DatabaseUnavailableException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DatabaseUnavailableException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DatabaseUnavailableException.java
index 966186025e9c6a7590f800650a6106f88f2e2beb..1f40dd083245df171722b29b370e708bed157f53 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DatabaseUnavailableException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DatabaseUnavailableException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DoiNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DoiNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DoiNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DoiNotFoundException.java
index 5f7b7a40bcd468762e36e759801383b00e638542..790c43f28de7fcf9286582c2ce7d9eed90d7a2aa 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DoiNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DoiNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/EmailExistsException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/EmailExistsException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/EmailExistsException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/EmailExistsException.java
index e2bad430c0f8047c339b48d8ce9a939e43f6ad69..c82f6438bd964d144f6d0b88bf027004c2345e5a 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/EmailExistsException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/EmailExistsException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ExchangeNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ExchangeNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ExchangeNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ExchangeNotFoundException.java
index fd5000756db6298820c1e0733ebf5eb45689a20c..f6e32e047a33eb45a48d4228633d9809b27acf7d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ExchangeNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ExchangeNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ExternalServiceException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ExternalServiceException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ExternalServiceException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ExternalServiceException.java
index 7d0f9a2877fcdbecd39bf822520e7b590b9509e6..0866ee86d1ea2d70fe066ed4cd2e093695cd742c 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ExternalServiceException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ExternalServiceException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/FilterBadRequestException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/FilterBadRequestException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/FilterBadRequestException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/FilterBadRequestException.java
index 1d5054554f8fcdd4f4417b337234ede272143b3a..0c584430a64a53e42b2f6ed8024b03c2de6c64ff 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/FilterBadRequestException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/FilterBadRequestException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/FormatNotAvailableException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/FormatNotAvailableException.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/FormatNotAvailableException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/FormatNotAvailableException.java
index e66f19d3d4c91585bc906ce92031cd013066cbcc..f977c087cbdc4f1917e5e8e77237531e19d404ed 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/FormatNotAvailableException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/FormatNotAvailableException.java
@@ -1,10 +1,8 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
 
-import java.io.IOException;
-
 @ResponseStatus(code = HttpStatus.NOT_ACCEPTABLE, reason = "error.identifier.format")
 public class FormatNotAvailableException extends Exception {
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/IdentifierNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/IdentifierNotFoundException.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/IdentifierNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/IdentifierNotFoundException.java
index ec9640097d28075e87ebcc31a952f03eb84bab01..a17825aed335e0b746a3f003d0a2e90769c35a79 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/IdentifierNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/IdentifierNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/IdentifierNotSupportedException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/IdentifierNotSupportedException.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/IdentifierNotSupportedException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/IdentifierNotSupportedException.java
index 715cc12ca03633719e0c33b169b5daf14cad5594..07d090a2a3750a6fd601628710d668a0cb0aacfa 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/IdentifierNotSupportedException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/IdentifierNotSupportedException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ImageAlreadyExistsException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ImageAlreadyExistsException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ImageAlreadyExistsException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ImageAlreadyExistsException.java
index 29d375f088bd665537200085d074684014a21de3..98e854ca18c38efe05d65f1a876e06299f4a325d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ImageAlreadyExistsException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ImageAlreadyExistsException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ImageInvalidException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ImageInvalidException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ImageInvalidException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ImageInvalidException.java
index 9da867c2140e052a8a384598c3aedb0299fcb876..4b4eeef07cea154bc389a117f247c479a58ea30f 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ImageInvalidException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ImageInvalidException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ImageNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ImageNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ImageNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ImageNotFoundException.java
index ac63df1307d0eb67b3d82f97205146fa92e54b04..4e0bcf905ca274dd17b30e796c7d73a3b6836cff 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ImageNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ImageNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/LicenseNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/LicenseNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/LicenseNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/LicenseNotFoundException.java
index e48ad40c7d3377991d8cfa27759f4d969a8148fa..1b4ad4f10e343332e3b631ed54e5690557f9a85c 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/LicenseNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/LicenseNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/MalformedException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/MalformedException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/MalformedException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/MalformedException.java
index e271b15c2e3d5ccdb8a01a4d84dc4ed4ff02e850..f358709de7fe24483fa1e4d71092cc0b087c1503 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/MalformedException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/MalformedException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/MessageNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/MessageNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/MessageNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/MessageNotFoundException.java
index 6cbb5435ad0b28384ffc388297816a6ea47e6fd7..53294e85d21c64766f1852b1c2592ea3a2ceacd5 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/MessageNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/MessageNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/MetadataServiceConnectionException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/MetadataServiceConnectionException.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/MetadataServiceConnectionException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/MetadataServiceConnectionException.java
index ce85b7d6fcec4c654628a9dd3ab816d935d9bc07..10599ab33967ad90115a600200c305dd558089a8 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/MetadataServiceConnectionException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/MetadataServiceConnectionException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/MetadataServiceException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/MetadataServiceException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/MetadataServiceException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/MetadataServiceException.java
index 8e87db03c2389fefd090c3e17b645e8a8530e0c5..ec86fd55f22494884c795856b9308d6336828ba4 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/MetadataServiceException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/MetadataServiceException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/NotAllowedException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/NotAllowedException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/NotAllowedException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/NotAllowedException.java
index e4324ea595c40452729e6babf9a6f3a9b397bc4d..79332fe74aad93f45d2915645a8690750c7839a0 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/NotAllowedException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/NotAllowedException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/OntologyNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/OntologyNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/OntologyNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/OntologyNotFoundException.java
index a8641d74ec3e4f533a2c6cbbe168275c7bc7fb8e..283219e7809e9e193f3f5a83318a6396b2511b43 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/OntologyNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/OntologyNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/OrcidNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/OrcidNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/OrcidNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/OrcidNotFoundException.java
index 533735f15244687a313668cea0932540e2afc68a..2ad3560a8e6a677eda125c06f71ff24173e6a9fb 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/OrcidNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/OrcidNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/PaginationException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/PaginationException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/PaginationException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/PaginationException.java
index 500d33a117eb6ea38175ebc970ce55aaea1c0f2a..4eae0a8bc600bdfa365277bac69496a86fd72277 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/PaginationException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/PaginationException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryMalformedException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryMalformedException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryMalformedException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryMalformedException.java
index 37e8cb7e34ab873327957c2457534c79ea655732..571ae5e31393dc0651f62c133431f5674fc6e028 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryMalformedException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryMalformedException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryNotFoundException.java
index ec525c453f4e6aafcc0bc572fdb5c584960bf70a..0bdba4634eaccd1e20b27c6e29770f02eb84cfd3 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryNotSupportedException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryNotSupportedException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryNotSupportedException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryNotSupportedException.java
index 8f0c264e4e1e5900a9dd5d8ed44756d9f0043e41..6a5df4f9e10d1e6cc5ec32f417c901b73bee1027 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryNotSupportedException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryNotSupportedException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryStoreCreateException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryStoreCreateException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryStoreCreateException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryStoreCreateException.java
index c9bf4e3dd5e3fc8358c4a0e7b67b47a0adec8f10..d69c7757c52898de3048e07ccf938df037012eea 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryStoreCreateException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryStoreCreateException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryStoreGCException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryStoreGCException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryStoreGCException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryStoreGCException.java
index 116cc1475d60add289ee2cb460f9b6b901519b09..d4f40910bc83cdc1a3cc6bd0c6995d6545579775 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryStoreGCException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryStoreGCException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryStoreInsertException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryStoreInsertException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryStoreInsertException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryStoreInsertException.java
index 876fafb4af04578105c6ca69f85f0122713360ab..0b7713d2ed0aebad22f43a09335267cf0717ac1b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryStoreInsertException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryStoreInsertException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryStorePersistException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryStorePersistException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryStorePersistException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryStorePersistException.java
index f68a52368197476dc6d1ae523d6e4bdac891ad6f..4cf73af90be1d7a41f2cfa07653bd18ce51fb729 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryStorePersistException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryStorePersistException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueueNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueueNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueueNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueueNotFoundException.java
index df145a10175664950c9e7b5ea5d45a30d5ce53a2..69e1550046a08ebe240f730bc92e6712d5f87697 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueueNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueueNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/RemoteUnavailableException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/RemoteUnavailableException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/RemoteUnavailableException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/RemoteUnavailableException.java
index a6ffb9adfa647f6787a5fe2a49b9271272ecd9ec..0ab1bb158db100916071b4b547084cc55128a214 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/RemoteUnavailableException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/RemoteUnavailableException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/RorNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/RorNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/RorNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/RorNotFoundException.java
index e273a913a0147957ac3fc04f8c0e28e98b9e21d4..12a9e3ce069edcadfcc86739673c515d7662c408 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/RorNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/RorNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/SearchServiceConnectionException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/SearchServiceConnectionException.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/SearchServiceConnectionException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/SearchServiceConnectionException.java
index 3152cb9e9e99a2f9fc5f8ec2efc8f5a64ab358cb..ee6b4ab5ba0cf2c1fa70d15b8cf30d7a5ce5d5ab 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/SearchServiceConnectionException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/SearchServiceConnectionException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/SearchServiceException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/SearchServiceException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/SearchServiceException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/SearchServiceException.java
index ecfca56a01118f3f3892c7c1acd87fa5cff3d0cc..a2ca63f200ae6ea27cc546d5538b788b90bc8b7d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/SearchServiceException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/SearchServiceException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/SemanticEntityNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/SemanticEntityNotFoundException.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/SemanticEntityNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/SemanticEntityNotFoundException.java
index cdf229106f4590791bc68e0368f5acd5f1d7a955..78540ac51c152081b8fe0069dbdb19351c9edc3e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/SemanticEntityNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/SemanticEntityNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/SortException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/SortException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/SortException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/SortException.java
index f79890e334cdf69a6ccd3c4bcaf2bbe5af401a77..bf9f1dd2b74decf353e1bb4e024db99bdd1afe5c 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/SortException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/SortException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/StorageNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/StorageNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/StorageNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/StorageNotFoundException.java
index 7b5888ded84a1cfdb684e017e79b0a6bab044bc4..2bef9e7a75fe24896e9d37830a36fe42f33877b7 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/StorageNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/StorageNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/StorageUnavailableException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/StorageUnavailableException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/StorageUnavailableException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/StorageUnavailableException.java
index c75e0a21ea8078dd3dd411c6222cb71293ffd3a6..813cbd58ad1bf5b32096936d7ab84c9d45f4015f 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/StorageUnavailableException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/StorageUnavailableException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/TableExistsException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/TableExistsException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/TableExistsException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/TableExistsException.java
index 5c28dfe3b40e0bd23b658026ee50aefdd1512c04..7eca5f85e0a556c2668a9ae936ae17105cd6b439 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/TableExistsException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/TableExistsException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/TableMalformedException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/TableMalformedException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/TableMalformedException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/TableMalformedException.java
index baaa0e92316bfcd1c054166333d4019892f1e1fe..0440a939bffbc6fa6255f37c541195c5fc45a587 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/TableMalformedException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/TableMalformedException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/TableNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/TableNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/TableNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/TableNotFoundException.java
index 4ec9224f6d96acfeafd2fbcc7efa231abfa2ea28..e40bf35f76a095e8eecd2ca7d5fc2823330b3a82 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/TableNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/TableNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/TableSchemaException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/TableSchemaException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/TableSchemaException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/TableSchemaException.java
index 48229595b56462f14575d53ddb6ce2b7363b833d..47d0456aa53c4334fd62254773c014568ec0a4d9 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/TableSchemaException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/TableSchemaException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/UnitNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/UnitNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/UnitNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/UnitNotFoundException.java
index b52c8910bf12b31791493185797112ed74851e01..b8204c40e750cb4e692f8f7133a3d7cad52391cc 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/UnitNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/UnitNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/UriMalformedException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/UriMalformedException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/UriMalformedException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/UriMalformedException.java
index 6dfc31d2dd8aec2c07e46feef8c7eb06a28a8b42..fa4317280ae321041098707cf60395f8c8240f21 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/UriMalformedException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/UriMalformedException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/UserExistsException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/UserExistsException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/UserExistsException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/UserExistsException.java
index 416e3bcb5abbbf3cb3a3df8e5d88894e8a2b8fea..e2640b3039c4c8ec45fb9bb7b64f7c7c61355063 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/UserExistsException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/UserExistsException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/UserNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/UserNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/UserNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/UserNotFoundException.java
index b4d61532ab01c3ff6ebe064ed8702f4ccd5c386b..47c78d0b08c5e8f6bbe42dd5ab330c13d9aa586f 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/UserNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/UserNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ViewExistsException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ViewExistsException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ViewExistsException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ViewExistsException.java
index 719e8aed74b0a6729fd4409646d1e7bebac3c52d..c45e0022f0d25b2086b97b021f25df05a2982dd7 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ViewExistsException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ViewExistsException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ViewMalformedException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ViewMalformedException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ViewMalformedException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ViewMalformedException.java
index 46255f0d8ed2e221d98e158a0b25f316d59d9b6d..e8158644facc497b035eb67787ac137caed3bfde 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ViewMalformedException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ViewMalformedException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ViewNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ViewNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ViewNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ViewNotFoundException.java
index 29a1a3c275540af35d3c9eaf2170a4a336fe6084..fea56d5edd4f7f19d1769e057e3a27e608307f95 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ViewNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ViewNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ViewSchemaException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ViewSchemaException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ViewSchemaException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ViewSchemaException.java
index 480a735442851735abc27baeb917071f3c76132a..035842aab71af5896be1e12f2dc802c391bbd30e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ViewSchemaException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ViewSchemaException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/BaseTest.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/BaseTest.java
similarity index 97%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/BaseTest.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/BaseTest.java
index d03cc8bd9322b60fa51ebcd6887091b0df738103..1510a66e2de6d3e3e49150f02abb0c9be26b9730 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/BaseTest.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/BaseTest.java
@@ -1,76 +1,80 @@
-package at.ac.tuwien.ifs.dbrepo.test;
-
-import at.ac.tuwien.ifs.dbrepo.api.ExportResourceDto;
-import at.ac.tuwien.ifs.dbrepo.api.amqp.CreateVirtualHostDto;
-import at.ac.tuwien.ifs.dbrepo.api.amqp.ExchangeDto;
-import at.ac.tuwien.ifs.dbrepo.api.amqp.GrantVirtualHostPermissionsDto;
-import at.ac.tuwien.ifs.dbrepo.api.amqp.QueueDto;
-import at.ac.tuwien.ifs.dbrepo.api.auth.CreateUserDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.ConstraintsDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.CreateTableConstraintsDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.primary.PrimaryKeyDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.unique.UniqueDto;
-import at.ac.tuwien.ifs.dbrepo.api.datacite.DataCiteBody;
-import at.ac.tuwien.ifs.dbrepo.api.datacite.DataCiteData;
-import at.ac.tuwien.ifs.dbrepo.api.datacite.doi.DataCiteDoi;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.CreateDashboardDto;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.CreateDashboardResponseDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.*;
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.*;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.OrcidDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.OrcidActivitiesSummaryDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.OrcidEmploymentsDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.OrcidAffiliationGroupDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group.OrcidEmploymentSummaryDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group.summary.OrcidSummaryDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group.summary.organization.OrcidOrganizationDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.person.OrcidPersonDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.person.name.OrcidNameDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.person.name.OrcidValueDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.*;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserAttributesDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.*;
-import at.ac.tuwien.ifs.dbrepo.api.user.internal.UpdateUserPasswordDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
-import at.ac.tuwien.ifs.dbrepo.entity.container.image.ContainerImage;
-import at.ac.tuwien.ifs.dbrepo.entity.container.image.Operator;
-import at.ac.tuwien.ifs.dbrepo.entity.database.*;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumn;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnConcept;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnType;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnUnit;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.Constraints;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.foreignKey.ForeignKey;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.foreignKey.ForeignKeyReference;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.foreignKey.ReferenceType;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.primaryKey.PrimaryKey;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.unique.Unique;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.*;
-import at.ac.tuwien.ifs.dbrepo.entity.maintenance.BannerMessage;
-import at.ac.tuwien.ifs.dbrepo.entity.maintenance.BannerMessageType;
-import at.ac.tuwien.ifs.dbrepo.entity.semantics.Ontology;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.test.utils.ArrayUtils;
+package at.ac.tuwien.ifs.dbrepo.core.test;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.ExportResourceDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.amqp.CreateVirtualHostDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.amqp.ExchangeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.amqp.GrantVirtualHostPermissionsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.amqp.QueueDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.auth.CreateUserDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.ConstraintsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.CreateTableConstraintsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.primary.PrimaryKeyDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.unique.UniqueDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.datacite.DataCiteBody;
+import at.ac.tuwien.ifs.dbrepo.core.api.datacite.DataCiteData;
+import at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi.DataCiteDoi;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.CreateDashboardDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.CreateDashboardResponseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.OrcidDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.OrcidActivitiesSummaryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.OrcidEmploymentsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.OrcidAffiliationGroupDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group.OrcidEmploymentSummaryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group.summary.OrcidSummaryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group.summary.organization.OrcidOrganizationDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.person.OrcidPersonDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.person.name.OrcidNameDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.person.name.OrcidValueDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserAttributesDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.internal.UpdateUserPasswordDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.Container;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.image.ContainerImage;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.image.Operator;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.*;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumn;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnConcept;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnUnit;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.Constraints;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.foreignKey.ForeignKey;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.foreignKey.ForeignKeyReference;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.foreignKey.ReferenceType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.primaryKey.PrimaryKey;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.unique.Unique;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.*;
+import at.ac.tuwien.ifs.dbrepo.core.entity.maintenance.BannerMessage;
+import at.ac.tuwien.ifs.dbrepo.core.entity.maintenance.BannerMessageType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.semantics.Ontology;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.test.utils.ArrayUtils;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import org.springframework.core.io.InputStreamResource;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 import org.springframework.security.core.GrantedAuthority;
 import org.springframework.security.core.authority.SimpleGrantedAuthority;
 import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.test.context.TestPropertySource;
 
+import java.io.File;
+import java.io.IOException;
 import java.io.InputStream;
 import java.math.BigDecimal;
 import java.math.BigInteger;
@@ -135,7 +139,13 @@ import static java.time.temporal.ChronoUnit.MINUTES;
  * <br />
  * User 3 (write-all)
  */
-public abstract class BaseTest {
+
+@TestPropertySource(locations = "classpath:application.properties")
+public class BaseTest {
+
+    private static final ObjectMapper objectMapper = new ObjectMapper();
+
+    private static final String resourcesPath = "./src/main/resources";
 
     public static final String MINIO_IMAGE = "minio/minio:RELEASE.2024-06-06T09-36-42Z";
 
@@ -145,6 +155,32 @@ public abstract class BaseTest {
 
     public static final String KEYCLOAK_IMAGE = "quay.io/keycloak/keycloak:26.0.4";
 
+    public static final QueryDto QUERY_1_DTO;
+    public static final QueryDto QUERY_2_DTO;
+    public static final QueryDto QUERY_3_DTO;
+    public static final QueryDto QUERY_4_DTO;
+    public static final QueryDto QUERY_5_DTO;
+    public static final QueryDto QUERY_6_DTO;
+    public static final QueryDto QUERY_7_DTO;
+    public static final QueryDto QUERY_8_DTO;
+    public static final QueryDto QUERY_9_DTO;
+
+    static {
+        try {
+            QUERY_1_DTO = objectMapper.readValue(new File(resourcesPath + "/query-1.json"), QueryDto.class);
+            QUERY_2_DTO = objectMapper.readValue(new File(resourcesPath + "/query-2.json"), QueryDto.class);
+            QUERY_3_DTO = objectMapper.readValue(new File(resourcesPath + "/query-3.json"), QueryDto.class);
+            QUERY_4_DTO = objectMapper.readValue(new File(resourcesPath + "/query-4.json"), QueryDto.class);
+            QUERY_5_DTO = objectMapper.readValue(new File(resourcesPath + "/query-5.json"), QueryDto.class);
+            QUERY_6_DTO = objectMapper.readValue(new File(resourcesPath + "/query-6.json"), QueryDto.class);
+            QUERY_7_DTO = objectMapper.readValue(new File(resourcesPath + "/query-7.json"), QueryDto.class);
+            QUERY_8_DTO = objectMapper.readValue(new File(resourcesPath + "/query-8.json"), QueryDto.class);
+            QUERY_9_DTO = objectMapper.readValue(new File(resourcesPath + "/query-9.json"), QueryDto.class);
+        } catch (IOException e) {
+            throw new RuntimeException("Failed to initialize core test library", e);
+        }
+    }
+
     public static final String[] DEFAULT_SEMANTICS_HANDLING = new String[]{"default-semantics-handling",
             "create-semantic-unit", "execute-semantic-query", "table-semantic-analyse", "create-semantic-concept"};
 
@@ -649,7 +685,7 @@ public abstract class BaseTest {
             .authorities(AUTHORITY_DEFAULT_RESEARCHER_AUTHORITIES)
             .build();
 
-    public static final at.ac.tuwien.ifs.dbrepo.api.amqp.UserDetailsDto USER_2_DETAILS_DTO = at.ac.tuwien.ifs.dbrepo.api.amqp.UserDetailsDto.builder()
+    public static final at.ac.tuwien.ifs.dbrepo.core.api.amqp.UserDetailsDto USER_2_DETAILS_DTO = at.ac.tuwien.ifs.dbrepo.core.api.amqp.UserDetailsDto.builder()
             .name(USER_2_USERNAME)
             .tags(new String[]{})
             .build();
@@ -723,7 +759,7 @@ public abstract class BaseTest {
     public static final Principal USER_3_PRINCIPAL = new UsernamePasswordAuthenticationToken(USER_3_DETAILS,
             USER_3_PASSWORD, USER_3_DETAILS.getAuthorities());
 
-    public static final at.ac.tuwien.ifs.dbrepo.api.amqp.UserDetailsDto USER_3_DETAILS_DTO = at.ac.tuwien.ifs.dbrepo.api.amqp.UserDetailsDto.builder()
+    public static final at.ac.tuwien.ifs.dbrepo.core.api.amqp.UserDetailsDto USER_3_DETAILS_DTO = at.ac.tuwien.ifs.dbrepo.core.api.amqp.UserDetailsDto.builder()
             .name(USER_3_USERNAME)
             .tags(new String[]{})
             .build();
@@ -1191,7 +1227,7 @@ public abstract class BaseTest {
             .cid(CONTAINER_1_ID)
             .build();
 
-    public static final at.ac.tuwien.ifs.dbrepo.api.database.internal.CreateDatabaseDto DATABASE_1_CREATE_INTERNAL = at.ac.tuwien.ifs.dbrepo.api.database.internal.CreateDatabaseDto.builder()
+    public static final at.ac.tuwien.ifs.dbrepo.core.api.database.internal.CreateDatabaseDto DATABASE_1_CREATE_INTERNAL = at.ac.tuwien.ifs.dbrepo.core.api.database.internal.CreateDatabaseDto.builder()
             .internalName(DATABASE_1_INTERNALNAME)
             .containerId(CONTAINER_1_ID)
             .username(USER_1_USERNAME)
@@ -2183,7 +2219,7 @@ public abstract class BaseTest {
             .constraints(TABLE_4_CONSTRAINTS_CREATE_DTO)
             .build();
 
-    public static final at.ac.tuwien.ifs.dbrepo.api.database.table.internal.TableCreateDto TABLE_4_CREATE_INTERNAL_DTO = at.ac.tuwien.ifs.dbrepo.api.database.table.internal.TableCreateDto.builder()
+    public static final at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal.TableCreateDto TABLE_4_CREATE_INTERNAL_DTO = at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal.TableCreateDto.builder()
             .name(TABLE_4_NAME)
             .description(TABLE_4_DESCRIPTION)
             .columns(TABLE_4_COLUMNS_CREATE_DTO)
@@ -2454,19 +2490,6 @@ public abstract class BaseTest {
     public static final Long QUERY_9_RESULT_NUMBER = 6L;
     public static final Boolean QUERY_9_PERSISTED = true;
 
-    public static final QueryDto QUERY_9_DTO = QueryDto.builder()
-            .id(QUERY_9_ID)
-            .databaseId(DATABASE_3_ID)
-            .query(QUERY_9_STATEMENT)
-            .queryNormalized(QUERY_9_STATEMENT)
-            .resultNumber(QUERY_9_RESULT_NUMBER)
-            .resultHash(QUERY_9_RESULT_HASH)
-            .queryHash(QUERY_9_QUERY_HASH)
-            .execution(QUERY_9_EXECUTION)
-            .isPersisted(QUERY_9_PERSISTED)
-            .owner(USER_1_BRIEF_DTO)
-            .build();
-
     public static final SubsetDto QUERY_9_SUBSET_DTO = SubsetDto.builder()
             .tableId(TABLE_9_ID)
             .columns(new LinkedList<>(List.of(COLUMN_9_2_ID, COLUMN_9_3_ID)))
@@ -2894,19 +2917,6 @@ public abstract class BaseTest {
                 put("value", 23.1);
             }}));
 
-    public static final QueryDto QUERY_4_DTO = QueryDto.builder()
-            .id(QUERY_4_ID)
-            .databaseId(DATABASE_3_ID)
-            .query(QUERY_4_STATEMENT)
-            .queryNormalized(QUERY_4_STATEMENT)
-            .resultNumber(QUERY_4_RESULT_NUMBER)
-            .resultHash(QUERY_4_RESULT_HASH)
-            .queryHash(QUERY_4_QUERY_HASH)
-            .execution(QUERY_4_EXECUTION)
-            .isPersisted(QUERY_4_PERSISTED)
-            .owner(USER_1_BRIEF_DTO)
-            .build();
-
     public static final UUID QUERY_5_ID = UUID.fromString("1a39f775-e3d5-4865-b4f5-dbbb5693b637");
     public static final String QUERY_5_STATEMENT = "SELECT `id`, `value` FROM `mfcc` WHERE `value` > 0";
     public static final String QUERY_5_QUERY_HASH = "6d6dc48b12cdfd959d39a62887334a6bbd529b93eed4f211f3f671bd9e7d6225";
@@ -2917,19 +2927,6 @@ public abstract class BaseTest {
     public static final Long QUERY_5_RESULT_NUMBER = 6L;
     public static final Boolean QUERY_5_PERSISTED = true;
 
-    public static final QueryDto QUERY_5_DTO = QueryDto.builder()
-            .id(QUERY_5_ID)
-            .databaseId(DATABASE_3_ID)
-            .query(QUERY_5_STATEMENT)
-            .queryNormalized(QUERY_5_STATEMENT)
-            .resultNumber(QUERY_5_RESULT_NUMBER)
-            .resultHash(QUERY_5_RESULT_HASH)
-            .queryHash(QUERY_5_QUERY_HASH)
-            .execution(QUERY_5_EXECUTION)
-            .isPersisted(QUERY_5_PERSISTED)
-            .owner(USER_1_BRIEF_DTO)
-            .build();
-
     public static final SubsetDto QUERY_5_SUBSET_DTO = SubsetDto.builder()
             .tableId(TABLE_8_ID)
             .columns(new LinkedList<>(List.of(COLUMN_8_1_ID, COLUMN_8_2_ID)))
@@ -3090,14 +3087,14 @@ public abstract class BaseTest {
             .constraints(TABLE_1_CONSTRAINTS_CREATE_DTO)
             .build();
 
-    public static final at.ac.tuwien.ifs.dbrepo.api.database.table.internal.TableCreateDto TABLE_1_CREATE_INTERNAL_DTO = at.ac.tuwien.ifs.dbrepo.api.database.table.internal.TableCreateDto.builder()
+    public static final at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal.TableCreateDto TABLE_1_CREATE_INTERNAL_DTO = at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal.TableCreateDto.builder()
             .name(TABLE_1_NAME)
             .description(TABLE_1_DESCRIPTION)
             .columns(TABLE_1_COLUMNS_CREATE_DTO)
             .constraints(TABLE_1_CONSTRAINTS_CREATE_DTO)
             .build();
 
-    public static final at.ac.tuwien.ifs.dbrepo.api.database.table.internal.TableCreateDto TABLE_1_CREATE_INTERNAL_INVALID_DTO = at.ac.tuwien.ifs.dbrepo.api.database.table.internal.TableCreateDto.builder()
+    public static final at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal.TableCreateDto TABLE_1_CREATE_INTERNAL_INVALID_DTO = at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal.TableCreateDto.builder()
             .name(TABLE_1_NAME)
             .description(TABLE_1_DESCRIPTION)
             .columns(TABLE_1_COLUMNS_CREATE_DTO)
@@ -8310,85 +8307,4 @@ public abstract class BaseTest {
             .resource(new InputStreamResource(InputStream.nullInputStream()))
             .build();
 
-    public static final QueryDto QUERY_1_DTO = QueryDto.builder()
-            .id(QUERY_1_ID)
-            .databaseId(DATABASE_1_ID)
-            .query(QUERY_1_STATEMENT)
-            .queryHash(QUERY_1_QUERY_HASH)
-            .resultHash(QUERY_1_RESULT_HASH)
-            .execution(QUERY_1_EXECUTION)
-            .owner(USER_1_BRIEF_DTO)
-            .isPersisted(QUERY_1_PERSISTED)
-            .resultNumber(3L)
-            .build();
-
-    public static final QueryDto QUERY_2_DTO = QueryDto.builder()
-            .id(QUERY_2_ID)
-            .databaseId(DATABASE_1_ID)
-            .query(QUERY_2_STATEMENT)
-            .queryNormalized(QUERY_2_STATEMENT)
-            .resultNumber(QUERY_2_RESULT_NUMBER)
-            .resultHash(QUERY_2_RESULT_HASH)
-            .owner(USER_1_BRIEF_DTO)
-            .queryHash(QUERY_2_QUERY_HASH)
-            .execution(QUERY_2_EXECUTION)
-            .isPersisted(QUERY_2_PERSISTED)
-            .resultNumber(3L)
-            .build();
-
-    public static final QueryDto QUERY_3_DTO = QueryDto.builder()
-            .id(QUERY_3_ID)
-            .databaseId(DATABASE_1_ID)
-            .query(QUERY_3_STATEMENT)
-            .queryNormalized(QUERY_3_STATEMENT)
-            .resultNumber(QUERY_3_RESULT_NUMBER)
-            .resultHash(QUERY_3_RESULT_HASH)
-            .owner(USER_1_BRIEF_DTO)
-            .queryHash(QUERY_3_QUERY_HASH)
-            .execution(QUERY_3_EXECUTION)
-            .isPersisted(QUERY_3_PERSISTED)
-            .resultNumber(2L)
-            .build();
-
-    public static final QueryDto QUERY_7_DTO = QueryDto.builder()
-            .id(QUERY_7_ID)
-            .databaseId(DATABASE_4_ID)
-            .query(QUERY_7_STATEMENT)
-            .queryNormalized(QUERY_7_STATEMENT)
-            .resultNumber(QUERY_7_RESULT_NUMBER)
-            .resultHash(QUERY_7_RESULT_HASH)
-            .owner(USER_1_BRIEF_DTO)
-            .queryHash(QUERY_7_QUERY_HASH)
-            .execution(QUERY_7_EXECUTION)
-            .isPersisted(QUERY_7_PERSISTED)
-            .resultNumber(2L)
-            .build();
-
-    public static final QueryDto QUERY_6_DTO = QueryDto.builder()
-            .id(QUERY_6_ID)
-            .databaseId(DATABASE_1_ID)
-            .query(QUERY_6_STATEMENT)
-            .queryNormalized(QUERY_6_STATEMENT)
-            .resultNumber(QUERY_6_RESULT_NUMBER)
-            .resultHash(QUERY_6_RESULT_HASH)
-            .owner(USER_1_BRIEF_DTO)
-            .queryHash(QUERY_6_QUERY_HASH)
-            .execution(QUERY_6_EXECUTION)
-            .isPersisted(QUERY_6_PERSISTED)
-            .build();
-
-    public static final QueryDto QUERY_8_DTO = QueryDto.builder()
-            .id(QUERY_8_ID)
-            .databaseId(DATABASE_2_ID)
-            .query(QUERY_8_STATEMENT)
-            .queryNormalized(QUERY_8_STATEMENT)
-            .resultNumber(QUERY_8_RESULT_NUMBER)
-            .resultHash(QUERY_8_RESULT_HASH)
-            .owner(USER_1_BRIEF_DTO)
-            .queryHash(QUERY_8_QUERY_HASH)
-            .execution(QUERY_8_EXECUTION)
-            .isPersisted(QUERY_8_PERSISTED)
-            .resultNumber(3L)
-            .build();
-
 }
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/dto/LocaleDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/dto/LocaleDto.java
similarity index 86%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/dto/LocaleDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/dto/LocaleDto.java
index 4c0cbc2e756212dc262d7f447f68a0376c713e7c..bec6d7ea05441e42fb76302717c1516d2065e28d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/dto/LocaleDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/dto/LocaleDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.test.dto;
+package at.ac.tuwien.ifs.dbrepo.core.test.dto;
 
 import lombok.*;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/pom.xml b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/pom.xml
similarity index 100%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/pom.xml
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/pom.xml
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/utils/ArrayUtils.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/utils/ArrayUtils.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/utils/ArrayUtils.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/utils/ArrayUtils.java
index 5a45c0b02d962da17a9da935b8f842493b4e78d2..c30116295fa2532945ec3df6ab0d3660cb41813c 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/utils/ArrayUtils.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/utils/ArrayUtils.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.test.utils;
+package at.ac.tuwien.ifs.dbrepo.core.test.utils;
 
 import java.util.Arrays;
 import java.util.LinkedList;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/utils/EndpointUtils.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/utils/EndpointUtils.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/utils/EndpointUtils.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/utils/EndpointUtils.java
index 04e9f4149f92ab2c9e4c331d53a775b92740f802..56adf110c9f7fb3d002a13bf3a22de0b056c5a4c 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/utils/EndpointUtils.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/utils/EndpointUtils.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.test.utils;
+package at.ac.tuwien.ifs.dbrepo.core.test.utils;
 
-import at.ac.tuwien.ifs.dbrepo.test.dto.LocaleDto;
+import at.ac.tuwien.ifs.dbrepo.core.test.dto.LocaleDto;
 import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.springframework.beans.factory.config.BeanDefinition;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/AbstractUnitTest.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/AbstractUnitTest.java
deleted file mode 100644
index 6c5dff507a849d34cfab7e046bf8e2f20a1c5e1b..0000000000000000000000000000000000000000
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/AbstractUnitTest.java
+++ /dev/null
@@ -1,168 +0,0 @@
-package at.ac.tuwien.ifs.dbrepo.test;
-
-import at.ac.tuwien.ifs.dbrepo.entity.database.AccessType;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.IdentifierStatusType;
-import org.springframework.test.context.TestPropertySource;
-
-import java.util.LinkedList;
-import java.util.List;
-
-@TestPropertySource(locations = "classpath:application.properties")
-public abstract class AbstractUnitTest extends BaseTest {
-
-    public void genesis() {
-        BANNER_MESSAGE_1.setDisplayStart(BANNER_MESSAGE_1_START);
-        IMAGE_1_DTO.setOperators(IMAGE_1_OPERATORS_DTO);
-        CONTAINER_1_DTO.setImage(IMAGE_1_DTO);
-        IMAGE_1.setOperators(new LinkedList<>(IMAGE_1_OPERATORS));
-        CONTAINER_1.setDatabases(new LinkedList<>(List.of(DATABASE_1, DATABASE_2, DATABASE_3)));
-        /* USER_1 */
-        USER_1.setAccesses(new LinkedList<>());
-        USER_1.setTheme(USER_1_THEME);
-        /* USER_2 */
-        USER_2.setAccesses(new LinkedList<>());
-        /* USER_3 */
-        USER_3.setAccesses(new LinkedList<>());
-        /* USER_4 */
-        USER_4.setAccesses(new LinkedList<>());
-        /* USER_4 */
-        USER_5.setAccesses(new LinkedList<>());
-        /* DATABASE 1 */
-        TABLE_1_COLUMNS.get(0).setUnit(null);
-        TABLE_1_COLUMNS.get(0).setConcept(null);
-        DATABASE_1.setOwner(USER_1);
-        DATABASE_1.setSubsets(new LinkedList<>());
-        DATABASE_1.setIsPublic(DATABASE_1_PUBLIC);
-        DATABASE_1.setIsSchemaPublic(DATABASE_1_SCHEMA_PUBLIC);
-        DATABASE_1.setIsDashboardEnabled(DATABASE_1_DASHBOARD_ENABLED);
-        DATABASE_1_USER_1_READ_ACCESS.setType(AccessType.READ);
-        DATABASE_1.setAccesses(new LinkedList<>(List.of(DATABASE_1_USER_1_READ_ACCESS, DATABASE_1_USER_2_WRITE_OWN_ACCESS, DATABASE_1_USER_3_WRITE_ALL_ACCESS)));
-        DATABASE_1_DTO.setAccesses(new LinkedList<>(List.of(DATABASE_1_USER_1_READ_ACCESS_DTO, DATABASE_1_USER_2_WRITE_OWN_ACCESS_DTO, DATABASE_1_USER_3_WRITE_ALL_ACCESS_DTO)));
-        DATABASE_1_PRIVILEGED_DTO.setAccesses(new LinkedList<>(List.of(DATABASE_1_USER_1_READ_ACCESS_DTO, DATABASE_1_USER_2_WRITE_OWN_ACCESS_DTO, DATABASE_1_USER_3_WRITE_ALL_ACCESS_DTO)));
-        UNIT_1.setId(UNIT_1_ID);
-        VIEW_1_DTO.setIdentifiers(VIEW_1_DTO_IDENTIFIERS);
-        DATABASE_1.setIdentifiers(new LinkedList<>(List.of(IDENTIFIER_1, IDENTIFIER_2, IDENTIFIER_3, IDENTIFIER_4)));
-        IDENTIFIER_1.setDatabase(DATABASE_1);
-        IDENTIFIER_2.setDatabase(DATABASE_1);
-        IDENTIFIER_3.setDatabase(DATABASE_1);
-        IDENTIFIER_4.setDatabase(DATABASE_1);
-        DATABASE_1.setTables(new LinkedList<>(List.of(TABLE_1, TABLE_2, TABLE_3, TABLE_4)));
-        DATABASE_1.setViews(new LinkedList<>(List.of(VIEW_1, VIEW_2, VIEW_3)));
-        DATABASE_1_DTO.setContainer(CONTAINER_1_DTO);
-        DATABASE_1_DTO.setIdentifiers(new LinkedList<>(List.of(IDENTIFIER_1_DTO, IDENTIFIER_2_DTO, IDENTIFIER_3_DTO, IDENTIFIER_4_DTO)));
-        DATABASE_1_DTO.setTables(new LinkedList<>(List.of(TABLE_1_DTO, TABLE_2_DTO, TABLE_3_DTO, TABLE_4_DTO)));
-        DATABASE_1_DTO.setViews(new LinkedList<>(List.of(VIEW_1_DTO, VIEW_2_DTO, VIEW_3_DTO)));
-        TABLE_1.setDatabase(DATABASE_1);
-        TABLE_1.setColumns(new LinkedList<>(TABLE_1_COLUMNS));
-        TABLE_1.setConstraints(TABLE_1_CONSTRAINTS);
-        TABLE_1.setIsSchemaPublic(TABLE_1_SCHEMA_PUBLIC);
-        TABLE_1_DTO.setColumns(new LinkedList<>(TABLE_1_COLUMNS_DTO));
-        TABLE_1_DTO.setConstraints(TABLE_1_CONSTRAINTS_DTO);
-        TABLE_2.setDatabase(DATABASE_1);
-        TABLE_2.setColumns(new LinkedList<>(TABLE_2_COLUMNS));
-        TABLE_2_CONSTRAINTS.getForeignKeys().get(0).getReferences().get(0).setForeignKey(TABLE_2_CONSTRAINTS.getForeignKeys().get(0));
-        TABLE_2.setConstraints(TABLE_2_CONSTRAINTS);
-        TABLE_2_DTO.setColumns(new LinkedList<>(TABLE_2_COLUMNS_DTO));
-        TABLE_2_DTO.setConstraints(TABLE_2_CONSTRAINTS_DTO);
-        TABLE_3.setDatabase(DATABASE_1);
-        TABLE_3.setColumns(new LinkedList<>(TABLE_3_COLUMNS));
-        TABLE_3.setConstraints(TABLE_3_CONSTRAINTS);
-        TABLE_3.setIsSchemaPublic(TABLE_3_SCHEMA_PUBLIC);
-        TABLE_3_DTO.setColumns(new LinkedList<>(TABLE_3_COLUMNS_DTO));
-        TABLE_3_DTO.setConstraints(TABLE_3_CONSTRAINTS_DTO);
-        TABLE_4.setDatabase(DATABASE_1);
-        TABLE_4.setColumns(new LinkedList<>(TABLE_4_COLUMNS));
-        TABLE_4.setConstraints(TABLE_4_CONSTRAINTS);
-        TABLE_4.setIsSchemaPublic(TABLE_4_SCHEMA_PUBLIC);
-        TABLE_4_DTO.setColumns(TABLE_4_COLUMNS_DTO);
-        TABLE_4_DTO.setConstraints(TABLE_4_CONSTRAINTS_DTO);
-        VIEW_1.setDatabase(DATABASE_1);
-        VIEW_1.setColumns(new LinkedList<>(VIEW_1_COLUMNS));
-        VIEW_1.setIdentifiers(new LinkedList<>(List.of(IDENTIFIER_3)));
-        VIEW_2.setDatabase(DATABASE_1);
-        VIEW_2.setColumns(new LinkedList<>(VIEW_2_COLUMNS));
-        VIEW_3.setDatabase(DATABASE_1);
-        VIEW_3.setColumns(new LinkedList<>(VIEW_3_COLUMNS));
-        IDENTIFIER_1.setDatabase(DATABASE_1);
-        IDENTIFIER_2.setDatabase(DATABASE_1);
-        IDENTIFIER_3.setDatabase(DATABASE_1);
-        IDENTIFIER_4.setDatabase(DATABASE_1);
-        /* DATABASE 2 */
-        DATABASE_2.setSubsets(new LinkedList<>());
-        DATABASE_2.setAccesses(new LinkedList<>(List.of(DATABASE_2_USER_2_WRITE_ALL_ACCESS, DATABASE_2_USER_3_READ_ACCESS)));
-        DATABASE_2.setTables(new LinkedList<>(List.of(TABLE_5, TABLE_6, TABLE_7)));
-        VIEW_4.setColumns(new LinkedList<>(VIEW_4_COLUMNS));
-        DATABASE_2.setViews(new LinkedList<>(List.of(VIEW_4)));
-        DATABASE_2.setIdentifiers(new LinkedList<>(List.of(IDENTIFIER_5)));
-        DATABASE_2_DTO.setAccesses(new LinkedList<>(List.of(DATABASE_2_USER_2_WRITE_ALL_ACCESS_DTO, DATABASE_2_USER_3_READ_ACCESS_DTO)));
-        DATABASE_2_DTO.setTables(new LinkedList<>(List.of(TABLE_5_DTO, TABLE_6_DTO, TABLE_7_DTO)));
-        DATABASE_2_DTO.setViews(new LinkedList<>(List.of(VIEW_4_DTO)));
-        DATABASE_2_DTO.setIdentifiers(new LinkedList<>(List.of(IDENTIFIER_5_DTO)));
-        DATABASE_2_PRIVILEGED_DTO.setAccesses(new LinkedList<>(List.of(DATABASE_2_USER_2_WRITE_ALL_ACCESS_DTO, DATABASE_2_USER_3_READ_ACCESS_DTO)));
-        DATABASE_2_PRIVILEGED_DTO.setTables(new LinkedList<>(List.of(TABLE_5_DTO, TABLE_6_DTO, TABLE_7_DTO)));
-        DATABASE_2_PRIVILEGED_DTO.setViews(new LinkedList<>(List.of(VIEW_4_DTO)));
-        DATABASE_2_PRIVILEGED_DTO.setIdentifiers(new LinkedList<>(List.of(IDENTIFIER_5_DTO)));
-        TABLE_5.setDatabase(DATABASE_2);
-        TABLE_5.setColumns(new LinkedList<>(TABLE_5_COLUMNS));
-        TABLE_5.setConstraints(TABLE_5_CONSTRAINTS);
-        TABLE_5_DTO.setColumns(new LinkedList<>(TABLE_5_COLUMNS_DTO));
-        TABLE_5_DTO.setConstraints(TABLE_5_CONSTRAINTS_DTO);
-        TABLE_6.setDatabase(DATABASE_2);
-        TABLE_6.setColumns(new LinkedList<>(TABLE_6_COLUMNS));
-        TABLE_6.setConstraints(TABLE_6_CONSTRAINTS);
-        TABLE_7.setDatabase(DATABASE_2);
-        TABLE_7.setColumns(new LinkedList<>(TABLE_7_COLUMNS));
-        TABLE_7.setConstraints(TABLE_7_CONSTRAINTS);
-        TABLE_7_CONSTRAINTS.getForeignKeys().get(0).getReferences().get(0).setForeignKey(TABLE_7_CONSTRAINTS.getForeignKeys().get(0));
-        TABLE_7_CONSTRAINTS.getForeignKeys().get(1).getReferences().get(0).setForeignKey(TABLE_7_CONSTRAINTS.getForeignKeys().get(1));
-        TABLE_7_DTO.setColumns(TABLE_7_COLUMNS_DTO);
-        TABLE_7_DTO.setConstraints(TABLE_7_CONSTRAINTS_DTO);
-        TABLE_7_CONSTRAINTS_DTO.getForeignKeys().get(0).getReferences().get(0).setForeignKey(TABLE_7_CONSTRAINTS_FOREIGN_KEY_BRIEF_0_DTO);
-        TABLE_7_CONSTRAINTS_DTO.getForeignKeys().get(1).getReferences().get(0).setForeignKey(TABLE_7_CONSTRAINTS_FOREIGN_KEY_BRIEF_1_DTO);
-        VIEW_4.setDatabase(DATABASE_2);
-        IDENTIFIER_5.setDatabase(DATABASE_2);
-        /* DATABASE 3 */
-        DATABASE_3.setSubsets(new LinkedList<>());
-        DATABASE_3.setTables(new LinkedList<>(List.of(TABLE_8)));
-        DATABASE_3.setViews(new LinkedList<>(List.of(VIEW_5)));
-        DATABASE_3.setIdentifiers(new LinkedList<>(List.of(IDENTIFIER_6)));
-        DATABASE_3.setAccesses(new LinkedList<>(List.of(DATABASE_3_USER_1_WRITE_ALL_ACCESS)));
-        DATABASE_3_DTO.setTables(new LinkedList<>(List.of(TABLE_8_DTO)));
-        DATABASE_3_DTO.setViews(new LinkedList<>(List.of(VIEW_5_DTO)));
-        DATABASE_3_DTO.setIdentifiers(new LinkedList<>(List.of(IDENTIFIER_6_DTO)));
-        DATABASE_3_DTO.setAccesses(new LinkedList<>(List.of(DATABASE_3_USER_1_WRITE_ALL_ACCESS_DTO)));
-        DATABASE_3_PRIVILEGED_DTO.setAccesses(new LinkedList<>(List.of(DATABASE_3_USER_1_WRITE_ALL_ACCESS_DTO)));
-        DATABASE_3_PRIVILEGED_DTO.setTables(new LinkedList<>(List.of(TABLE_8_DTO)));
-        DATABASE_3_PRIVILEGED_DTO.setViews(new LinkedList<>(List.of(VIEW_5_DTO)));
-        DATABASE_3_PRIVILEGED_DTO.setIdentifiers(new LinkedList<>(List.of(IDENTIFIER_6_DTO)));
-        TABLE_8.setDatabase(DATABASE_3);
-        TABLE_8.setColumns(new LinkedList<>(TABLE_8_COLUMNS));
-        TABLE_8.setConstraints(TABLE_8_CONSTRAINTS);
-        TABLE_8.setIsSchemaPublic(TABLE_8_SCHEMA_PUBLIC);
-        TABLE_8_DTO.setColumns(new LinkedList<>(TABLE_8_COLUMNS_DTO));
-        TABLE_8_DTO.setConstraints(TABLE_8_CONSTRAINTS_DTO);
-        VIEW_5.setDatabase(DATABASE_3);
-        VIEW_5.setColumns(VIEW_5_COLUMNS);
-        VIEW_5_DTO.setColumns(VIEW_5_COLUMNS_DTO);
-        IDENTIFIER_6.setDatabase(DATABASE_3);
-        /* DATABASE 4 */
-        DATABASE_4.setSubsets(new LinkedList<>());
-        DATABASE_4.setAccesses(new LinkedList<>(List.of(DATABASE_4_USER_1_READ_ACCESS, DATABASE_4_USER_2_WRITE_OWN_ACCESS, DATABASE_4_USER_3_WRITE_ALL_ACCESS)));
-        DATABASE_4.setIdentifiers(new LinkedList<>(List.of(IDENTIFIER_7)));
-        DATABASE_4_DTO.setTables(new LinkedList<>(List.of(TABLE_9_DTO)));
-        DATABASE_4_DTO.setIdentifiers(new LinkedList<>(List.of(IDENTIFIER_7_DTO)));
-        DATABASE_4_PRIVILEGED_DTO.setTables(new LinkedList<>(List.of(TABLE_9_DTO)));
-        DATABASE_4_PRIVILEGED_DTO.setIdentifiers(new LinkedList<>(List.of(IDENTIFIER_7_DTO)));
-        TABLE_9.setDatabase(DATABASE_4);
-        TABLE_9.setColumns(TABLE_9_COLUMNS);
-        TABLE_9.setConstraints(TABLE_9_CONSTRAINTS);
-        TABLE_9_DTO.setColumns(TABLE_9_COLUMNS_DTO);
-        TABLE_9_DTO.setConstraints(TABLE_9_CONSTRAINTS_DTO);
-        IDENTIFIER_7.setStatus(IdentifierStatusType.DRAFT);
-        IDENTIFIER_7.setDatabase(DATABASE_4);
-        CONTAINER_2.setDatabases(new LinkedList<>());
-        CONTAINER_3.setDatabases(new LinkedList<>());
-        CONTAINER_4.setDatabases(new LinkedList<>(List.of(DATABASE_4)));
-    }
-
-}
diff --git a/lib/java/dbrepo-core/src/main/resources/concept-1.json b/lib/java/dbrepo-core/src/main/resources/concept-1.json
new file mode 100644
index 0000000000000000000000000000000000000000..d02fe4b95217489f69b00a79dba8221eb079f896
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/concept-1.json
@@ -0,0 +1,5 @@
+{
+  "id" : "8cabc011-4bdf-44d4-9d33-b2648e2ddbf1",
+  "uri" : "http://www.wikidata.org/entity/Q25257",
+  "name" : "precipitation"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/concept-2.json b/lib/java/dbrepo-core/src/main/resources/concept-2.json
new file mode 100644
index 0000000000000000000000000000000000000000..6dc11fa1d5d65a56b3cbcb940d395fc60924cb4d
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/concept-2.json
@@ -0,0 +1,6 @@
+{
+  "id" : "c5cf9914-15c1-4813-af11-eb2a070d59a9",
+  "uri" : "http://www.wikidata.org/entity/Q29032648",
+  "name" : "FAIR data",
+  "description" : "data compliant with the terms of the FAIR Data Principles"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/database-1-user-1-read-access.json b/lib/java/dbrepo-core/src/main/resources/database-1-user-1-read-access.json
new file mode 100644
index 0000000000000000000000000000000000000000..bc6d208be2be3b6369b6814761e8225f0fccaf54
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/database-1-user-1-read-access.json
@@ -0,0 +1,12 @@
+{
+  "user" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "type" : "read"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/database-1-user-2-write-own-access.json b/lib/java/dbrepo-core/src/main/resources/database-1-user-2-write-own-access.json
new file mode 100644
index 0000000000000000000000000000000000000000..5c710b95f7ae3beb73899cdaf30d20944655eeda
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/database-1-user-2-write-own-access.json
@@ -0,0 +1,12 @@
+{
+  "user" : {
+    "id" : "eeb9a51b-4cd8-4039-90bf-e24f17372f7c",
+    "username" : "junit2",
+    "name" : "Jane Doe",
+    "orcid" : "https://orcid.org/0000-0002-9272-6225",
+    "qualified_name" : "Jane Doe — @junit2",
+    "given_name" : "Jane",
+    "family_name" : "Doe"
+  },
+  "type" : "write_own"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/database-1-user-3-write-all-access.json b/lib/java/dbrepo-core/src/main/resources/database-1-user-3-write-all-access.json
new file mode 100644
index 0000000000000000000000000000000000000000..3e614580b1275b8f3e21ece8cf967f5de4faa56f
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/database-1-user-3-write-all-access.json
@@ -0,0 +1,11 @@
+{
+  "user" : {
+    "id" : "7b080e33-d8db-4276-9d53-47208e657006",
+    "username" : "junit3",
+    "name" : "System System",
+    "qualified_name" : "System System — @junit3",
+    "given_name" : "System",
+    "family_name" : "System"
+  },
+  "type" : "write_all"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/database-2-user-2-write-all-access.json b/lib/java/dbrepo-core/src/main/resources/database-2-user-2-write-all-access.json
new file mode 100644
index 0000000000000000000000000000000000000000..9f81c28fb30595456746b7a56c81bcdb0e176661
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/database-2-user-2-write-all-access.json
@@ -0,0 +1,12 @@
+{
+  "user" : {
+    "id" : "eeb9a51b-4cd8-4039-90bf-e24f17372f7c",
+    "username" : "junit2",
+    "name" : "Jane Doe",
+    "orcid" : "https://orcid.org/0000-0002-9272-6225",
+    "qualified_name" : "Jane Doe — @junit2",
+    "given_name" : "Jane",
+    "family_name" : "Doe"
+  },
+  "type" : "write_all"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/database-2-user-3-read-access.json b/lib/java/dbrepo-core/src/main/resources/database-2-user-3-read-access.json
new file mode 100644
index 0000000000000000000000000000000000000000..0016a966c81c0fea02154d2e86f09ecf51e968e0
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/database-2-user-3-read-access.json
@@ -0,0 +1,11 @@
+{
+  "user" : {
+    "id" : "7b080e33-d8db-4276-9d53-47208e657006",
+    "username" : "junit3",
+    "name" : "System System",
+    "qualified_name" : "System System — @junit3",
+    "given_name" : "System",
+    "family_name" : "System"
+  },
+  "type" : "read"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/database-3-user-1-write-all-access.json b/lib/java/dbrepo-core/src/main/resources/database-3-user-1-write-all-access.json
new file mode 100644
index 0000000000000000000000000000000000000000..faf76afc55c0e5cafacc0fa4c59fd1f13ec492df
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/database-3-user-1-write-all-access.json
@@ -0,0 +1,12 @@
+{
+  "user" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "type" : "write_all"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/database-4-user-1-read-access.json b/lib/java/dbrepo-core/src/main/resources/database-4-user-1-read-access.json
new file mode 100644
index 0000000000000000000000000000000000000000..1be927f7015e36e5b650f96aa025822459819835
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/database-4-user-1-read-access.json
@@ -0,0 +1,3 @@
+{
+  "type" : "read"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/database-4-user-2-write-own-access.json b/lib/java/dbrepo-core/src/main/resources/database-4-user-2-write-own-access.json
new file mode 100644
index 0000000000000000000000000000000000000000..059e1d637904eadabc31ffd8b32bdeba92ed4e29
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/database-4-user-2-write-own-access.json
@@ -0,0 +1,3 @@
+{
+  "type" : "write_own"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/database-4-user-3-write-all-access.json b/lib/java/dbrepo-core/src/main/resources/database-4-user-3-write-all-access.json
new file mode 100644
index 0000000000000000000000000000000000000000..16599065093fbc43d28fd492d655addf9de17319
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/database-4-user-3-write-all-access.json
@@ -0,0 +1,3 @@
+{
+  "type" : "write_all"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/identifier-1.json b/lib/java/dbrepo-core/src/main/resources/identifier-1.json
new file mode 100644
index 0000000000000000000000000000000000000000..8fc668dc102649d13d2d9b947156bded9670c0fe
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/identifier-1.json
@@ -0,0 +1,69 @@
+{
+  "id" : "679a83f2-ef23-4b4b-98f7-ad77b9d68733",
+  "links" : {
+    "self" : "/api/identifier/679a83f2-ef23-4b4b-98f7-ad77b9d68733",
+    "self_html" : "/pid/679a83f2-ef23-4b4b-98f7-ad77b9d68733"
+  },
+  "type" : "database",
+  "titles" : [ {
+    "id" : "3df6b286-9bd2-4ae3-b8f4-29c217544bef",
+    "title" : "Austrian weather data",
+    "language" : "en"
+  }, {
+    "id" : "903a7e5b-8014-4b8a-b8fd-44f477880905",
+    "title" : "Österreichische Wetterdaten",
+    "language" : "en",
+    "type" : "TranslatedTitle"
+  } ],
+  "descriptions" : [ {
+    "id" : "1c438756-93f0-4797-983c-175a17e18c2c",
+    "description" : "Selecting all from the weather Austrian table",
+    "language" : "en"
+  } ],
+  "funders" : [ {
+    "id" : "8deb273d-6dd6-407d-970a-01534035ac01",
+    "funder_name" : "European Commission",
+    "funder_identifier" : "https://doi.org/10.13039/501100000780",
+    "funder_identifier_type" : "Crossref Funder ID",
+    "award_title" : "Institutionalizing global genetic-resource commons. Global Strategies for accessing and using essential public knowledge assets in the life science"
+  } ],
+  "query" : "SELECT `id`, `date`, `location`, `mintemp`, `rainfall` FROM `weather_aus` ORDER BY id ASC",
+  "execution" : "2018-11-07T10:59:12.000Z",
+  "doi" : "10.12345/183",
+  "publisher" : "Austrian Government",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "licenses" : [ {
+    "identifier" : "MIT",
+    "uri" : "https://opensource.org/license/mit/"
+  } ],
+  "creators" : [ {
+    "id" : "667cd1d6-4f94-4808-b5cb-12e5ec0788d8",
+    "firstname" : "Max",
+    "lastname" : "Mustermann",
+    "affiliation" : "TU Graz",
+    "creator_name" : "Mustermann, Max",
+    "name_type" : "Personal",
+    "name_identifier" : "00000-00000-00000",
+    "name_identifier_scheme" : "ORCID",
+    "affiliation_identifier" : "https://ror.org/04wn28048",
+    "affiliation_identifier_scheme" : "ROR",
+    "affiliation_identifier_scheme_uri" : "https://ror.org/"
+  } ],
+  "status" : "published",
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "query_id" : "60494137-f000-459e-acd3-4fcadbdf14ca",
+  "query_normalized" : "SELECT `id`, `date`, `location`, `mintemp`, `rainfall` FROM `weather_aus` ORDER BY id ASC",
+  "query_hash" : "a3b8ac39e38167d14cf3a9c20a69e4b6954d049525390b973a2c23064953a992",
+  "result_hash" : "8358c8ade4849d2094ab5bb29127afdae57e6bb5acb1db7af603813d406c467a",
+  "result_number" : 2,
+  "publication_month" : 5,
+  "publication_year" : 2022
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/identifier-2.json b/lib/java/dbrepo-core/src/main/resources/identifier-2.json
new file mode 100644
index 0000000000000000000000000000000000000000..73bd849cc24e5b96583e4cb8448fc24d65207ef5
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/identifier-2.json
@@ -0,0 +1,38 @@
+{
+  "id" : "fdb95f60-48e7-4e74-8122-d3c8d079c889",
+  "links" : {
+    "self" : "/api/identifier/fdb95f60-48e7-4e74-8122-d3c8d079c889",
+    "data" : "/api/database/b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425/subset/60494137-f000-459e-acd3-4fcadbdf14ca/data",
+    "self_html" : "/pid/fdb95f60-48e7-4e74-8122-d3c8d079c889"
+  },
+  "type" : "subset",
+  "titles" : [ ],
+  "descriptions" : [ ],
+  "query" : "SELECT `id`, `date`, `location`, `mintemp`, `rainfall` FROM `weather_aus` ORDER BY id ASC",
+  "execution" : "2019-03-03T04:45:52.000Z",
+  "publisher" : "Swedish Government",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "licenses" : [ {
+    "identifier" : "MIT",
+    "uri" : "https://opensource.org/license/mit/"
+  } ],
+  "creators" : [ ],
+  "status" : "published",
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "query_id" : "60494137-f000-459e-acd3-4fcadbdf14ca",
+  "query_normalized" : "SELECT `id`, `date`, `location`, `mintemp`, `rainfall` FROM `weather_aus` ORDER BY id ASC",
+  "query_hash" : "a3b8ac39e38167d14cf3a9c20a69e4b6954d049525390b973a2c23064953a992",
+  "result_hash" : "8358c8ade4849d2094ab5bb29127afdae57e6bb5acb1db7af603813d406c467a",
+  "result_number" : 2,
+  "publication_day" : 10,
+  "publication_month" : 7,
+  "publication_year" : 2023
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/identifier-3.json b/lib/java/dbrepo-core/src/main/resources/identifier-3.json
new file mode 100644
index 0000000000000000000000000000000000000000..e7c835c959e6a227e62c948626a98228401bc314
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/identifier-3.json
@@ -0,0 +1,36 @@
+{
+  "id" : "e2d831c2-3694-4fdc-8c48-7a7e94b73c43",
+  "links" : {
+    "self" : "/api/identifier/e2d831c2-3694-4fdc-8c48-7a7e94b73c43",
+    "data" : "/api/database/b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425/view/7d712cf7-78c7-4a47-90b0-d6b9f7f19b70/data",
+    "self_html" : "/pid/e2d831c2-3694-4fdc-8c48-7a7e94b73c43"
+  },
+  "type" : "view",
+  "titles" : [ ],
+  "descriptions" : [ ],
+  "query" : "SELECT `location`, `lat`, `lng` FROM `weather_location`",
+  "execution" : "2019-03-03T04:45:52.000Z",
+  "publisher" : "Polish Government",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "licenses" : [ {
+    "identifier" : "MIT",
+    "uri" : "https://opensource.org/license/mit/"
+  } ],
+  "creators" : [ ],
+  "status" : "published",
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "view_id" : "7d712cf7-78c7-4a47-90b0-d6b9f7f19b70",
+  "query_normalized" : "SELECT `location`, `lat`, `lng` FROM `weather_location`",
+  "query_hash" : "dc81a6877c7c51a6a6f406e1fc2a255e44a0d49a20548596e0d583c3eb849c23",
+  "publication_day" : 10,
+  "publication_month" : 7,
+  "publication_year" : 2023
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/identifier-4.json b/lib/java/dbrepo-core/src/main/resources/identifier-4.json
new file mode 100644
index 0000000000000000000000000000000000000000..474a520d26db9281c8fae7a476ca657ef3a0cfe4
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/identifier-4.json
@@ -0,0 +1,33 @@
+{
+  "id" : "3bd69bb8-f7e3-48e4-9717-823787e7ba23",
+  "links" : {
+    "self" : "/api/identifier/3bd69bb8-f7e3-48e4-9717-823787e7ba23",
+    "data" : "/api/database/b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425/table/666d0b6b-f017-4f7c-80d8-a47174d8b539/data",
+    "self_html" : "/pid/3bd69bb8-f7e3-48e4-9717-823787e7ba23"
+  },
+  "type" : "table",
+  "titles" : [ ],
+  "descriptions" : [ ],
+  "execution" : "2019-03-03T04:45:52.000Z",
+  "publisher" : "Example Publisher",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "licenses" : [ {
+    "identifier" : "MIT",
+    "uri" : "https://opensource.org/license/mit/"
+  } ],
+  "creators" : [ ],
+  "status" : "published",
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "table_id" : "666d0b6b-f017-4f7c-80d8-a47174d8b539",
+  "publication_day" : 10,
+  "publication_month" : 7,
+  "publication_year" : 2023
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/identifier-5.json b/lib/java/dbrepo-core/src/main/resources/identifier-5.json
new file mode 100644
index 0000000000000000000000000000000000000000..e10ff809f21d242dc9e46a9c0f3cd5378e181823
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/identifier-5.json
@@ -0,0 +1,65 @@
+{
+  "id" : "e05bb4c9-ed26-48c9-bd91-5c48a93a04bd",
+  "links" : {
+    "self" : "/api/identifier/e05bb4c9-ed26-48c9-bd91-5c48a93a04bd",
+    "data" : "/api/database/dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe/subset/4e0ac92a-7cb3-4222-9b85-0498c73e0afd/data",
+    "self_html" : "/pid/e05bb4c9-ed26-48c9-bd91-5c48a93a04bd",
+    "dashboard_html" : "/d/7779bc9207daeae7e5a7"
+  },
+  "type" : "subset",
+  "titles" : [ {
+    "id" : "1a0ae9c2-61c6-44f8-b886-26a4f4dabc52",
+    "title" : "Australische Wetterdaten",
+    "language" : "de",
+    "type" : "Subtitle"
+  } ],
+  "descriptions" : [ {
+    "id" : "ab49bdca-f373-4823-9947-2a0cbfa88350",
+    "description" : "Alle Wetterdaten in Australien",
+    "language" : "de",
+    "type" : "Abstract"
+  } ],
+  "query" : "SELECT `location` FROM `weather_aus`",
+  "execution" : "2018-11-07T10:59:12.000Z",
+  "doi" : "10.12345/13/50BBFCFE08A12",
+  "publisher" : "Australian Government",
+  "owner" : {
+    "id" : "eeb9a51b-4cd8-4039-90bf-e24f17372f7c",
+    "username" : "junit2",
+    "name" : "Jane Doe",
+    "orcid" : "https://orcid.org/0000-0002-9272-6225",
+    "qualified_name" : "Jane Doe — @junit2",
+    "given_name" : "Jane",
+    "family_name" : "Doe"
+  },
+  "creators" : [ {
+    "id" : "6844b684-93e4-47d2-a615-5939127fdafe",
+    "firstname" : "Max",
+    "lastname" : "Mustermann",
+    "affiliation" : "TU Graz",
+    "creator_name" : "Mustermann, Max",
+    "name_identifier" : "00000-00000-00000",
+    "name_identifier_scheme" : "ORCID",
+    "affiliation_identifier" : "https://ror.org/04wn28048",
+    "affiliation_identifier_scheme" : "ROR",
+    "affiliation_identifier_scheme_uri" : "https://ror.org/"
+  }, {
+    "id" : "14943ad6-a935-49f5-b07e-f9eb789b8604",
+    "firstname" : "Martina",
+    "lastname" : "Mustermann",
+    "affiliation" : "TU Wien",
+    "creator_name" : "Mustermann, Martina",
+    "name_identifier" : "00000-00000-00000",
+    "name_identifier_scheme" : "ORCID"
+  } ],
+  "status" : "draft",
+  "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+  "query_id" : "4e0ac92a-7cb3-4222-9b85-0498c73e0afd",
+  "query_normalized" : "SELECT `location` FROM `weather_aus`",
+  "query_hash" : "a2d2dd94ebc7653bb5a3b55dd8ed5e91d3d13c225c6855a1eb4eb7ca14c36ced",
+  "result_hash" : "ff3f7cbe1b96d296957f6e39e55b8b1b577fa3d205d4795af99594cfd20cb80d",
+  "result_number" : 2,
+  "publication_day" : 14,
+  "publication_month" : 7,
+  "publication_year" : 2022
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/identifier-6.json b/lib/java/dbrepo-core/src/main/resources/identifier-6.json
new file mode 100644
index 0000000000000000000000000000000000000000..3beed2b1e87e30e0c45d2a24412ba770eb95b9d4
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/identifier-6.json
@@ -0,0 +1,76 @@
+{
+  "id" : "a244204d-9671-42a0-be07-9b14402238fd",
+  "links" : {
+    "self" : "/api/identifier/a244204d-9671-42a0-be07-9b14402238fd",
+    "data" : "/api/database/9d8cb9a9-9468-4801-a2e0-2dac8bc67c31/subset/a9849020-45a7-40a8-9a19-d4ae2b28dd46/data",
+    "self_html" : "/pid/a244204d-9671-42a0-be07-9b14402238fd",
+    "dashboard_html" : "/d/18d25f581fb272ac260b"
+  },
+  "type" : "subset",
+  "titles" : [ {
+    "id" : "0449011c-1490-4c8e-b46c-c1f862126aea",
+    "title" : "Norwegian weather data",
+    "language" : "en"
+  } ],
+  "descriptions" : [ {
+    "id" : "aac03bbd-27e6-419d-8118-f996d594f00f",
+    "description" : "Selecting all from the weather Norwegian table",
+    "language" : "en"
+  } ],
+  "query" : "SELECT `location`, `mintemp` FROM `weather_aus` WHERE `mintemp` > 10",
+  "execution" : "2018-11-07T10:59:12.000Z",
+  "publisher" : "Norwegian Government",
+  "owner" : {
+    "id" : "7b080e33-d8db-4276-9d53-47208e657006",
+    "username" : "junit3",
+    "name" : "System System",
+    "qualified_name" : "System System — @junit3",
+    "given_name" : "System",
+    "family_name" : "System"
+  },
+  "licenses" : [ {
+    "identifier" : "MIT",
+    "uri" : "https://opensource.org/license/mit/"
+  } ],
+  "creators" : [ {
+    "id" : "f8a52dca-8aec-46c1-b0e1-603dbe6a1a65",
+    "firstname" : "Max",
+    "lastname" : "Mustermann",
+    "affiliation" : "TU Graz",
+    "creator_name" : "Mustermann, Max",
+    "name_identifier" : "00000-00000-00000",
+    "name_identifier_scheme" : "ORCID",
+    "affiliation_identifier" : "https://ror.org/04wn28048",
+    "affiliation_identifier_scheme" : "ROR",
+    "affiliation_identifier_scheme_uri" : "https://ror.org/"
+  }, {
+    "id" : "eeae78cb-75a1-42e2-b608-7082e5fbecc6",
+    "firstname" : "Martina",
+    "lastname" : "Mustermann",
+    "affiliation" : "TU Wien",
+    "creator_name" : "Mustermann, Martina",
+    "name_identifier" : "00000-00000-00000",
+    "name_identifier_scheme" : "ORCID"
+  }, {
+    "id" : "700058f1-6314-4cd1-9c0c-62e75c8f422b",
+    "firstname" : "Max",
+    "lastname" : "Mustermann",
+    "affiliation" : "TU Graz",
+    "creator_name" : "Mustermann, Max",
+    "name_identifier" : "00000-00000-00000",
+    "name_identifier_scheme" : "ORCID",
+    "affiliation_identifier" : "https://ror.org/04wn28048",
+    "affiliation_identifier_scheme" : "ROR",
+    "affiliation_identifier_scheme_uri" : "https://ror.org/"
+  } ],
+  "status" : "published",
+  "database_id" : "9d8cb9a9-9468-4801-a2e0-2dac8bc67c31",
+  "query_id" : "a9849020-45a7-40a8-9a19-d4ae2b28dd46",
+  "query_normalized" : "SELECT `location`, `mintemp` FROM `weather_aus` WHERE `mintemp` > 10",
+  "query_hash" : "a3d3dd94ebc7653bb5a3b55dd8ed5e91d3d13c335c6855a1eb4eb7ca14c36ced",
+  "result_hash" : "ff3f7cbe1b96d396957f6e39e55b8b1b577fa3d305d4795af99594cfd30cb80d",
+  "result_number" : 2,
+  "publication_day" : 14,
+  "publication_month" : 7,
+  "publication_year" : 2022
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/identifier-7.json b/lib/java/dbrepo-core/src/main/resources/identifier-7.json
new file mode 100644
index 0000000000000000000000000000000000000000..4353b2714a988d21b9f4343beca159ab2540dde5
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/identifier-7.json
@@ -0,0 +1,42 @@
+{
+  "id" : "b216ae00-a31d-4ecb-95fb-37eb4da3946f",
+  "links" : {
+    "self" : "/api/identifier/b216ae00-a31d-4ecb-95fb-37eb4da3946f",
+    "self_html" : "/pid/b216ae00-a31d-4ecb-95fb-37eb4da3946f",
+    "dashboard_html" : "/d/456a3760f69821a0f944"
+  },
+  "type" : "database",
+  "titles" : [ ],
+  "descriptions" : [ ],
+  "funders" : [ ],
+  "execution" : "2018-11-07T10:59:12.000Z",
+  "publisher" : "Swedish Government",
+  "owner" : {
+    "id" : "791d58c5-bfab-4520-b4fc-b44d4ab9feb0",
+    "username" : "junit4",
+    "name" : "JUnit 4",
+    "qualified_name" : "JUnit 4 — @junit4",
+    "given_name" : "JUnit",
+    "family_name" : "4"
+  },
+  "licenses" : [ ],
+  "creators" : [ {
+    "id" : "b899c367-06c7-4f47-8aea-5f15061ee3ee",
+    "firstname" : "Max",
+    "lastname" : "Mustermann",
+    "affiliation" : "TU Graz",
+    "creator_name" : "Mustermann, Max",
+    "name_identifier" : "00000-00000-00000",
+    "name_identifier_scheme" : "ORCID",
+    "affiliation_identifier" : "https://ror.org/04wn28048",
+    "affiliation_identifier_scheme" : "ROR",
+    "affiliation_identifier_scheme_uri" : "https://ror.org/"
+  } ],
+  "status" : "draft",
+  "database_id" : "c503d7f3-5952-4d97-b26a-da86bea4c20d",
+  "related_identifiers" : [ ],
+  "result_number" : 2,
+  "publication_day" : 14,
+  "publication_month" : 7,
+  "publication_year" : 2022
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/ontology-1.json b/lib/java/dbrepo-core/src/main/resources/ontology-1.json
new file mode 100644
index 0000000000000000000000000000000000000000..d53c1f50652eaa39472c7599b35a2bd9eba14dd5
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/ontology-1.json
@@ -0,0 +1,9 @@
+{
+  "id" : "dc195d01-0a45-4583-aa83-fd270b874353",
+  "uri" : "http://www.ontology-of-units-of-measure.org/resource/om-2/",
+  "prefix" : "om2",
+  "sparql" : false,
+  "rdf" : true,
+  "uri_pattern" : "http://www.ontology-of-units-of-measure.org/resource/om-2/.*",
+  "rdf_path" : "rdf/om-2.0.rdf"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/ontology-2.json b/lib/java/dbrepo-core/src/main/resources/ontology-2.json
new file mode 100644
index 0000000000000000000000000000000000000000..0e7e995a04b6ef14a631dbb32c31503fd86008a3
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/ontology-2.json
@@ -0,0 +1,8 @@
+{
+  "id" : "41d902a1-f9f8-4d51-ad64-618b72acf5ed",
+  "uri" : "http://www.wikidata.org/",
+  "prefix" : "wd",
+  "sparql" : true,
+  "rdf" : false,
+  "sparql_endpoint" : "https://query.wikidata.org/sparql"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/ontology-3.json b/lib/java/dbrepo-core/src/main/resources/ontology-3.json
new file mode 100644
index 0000000000000000000000000000000000000000..41795ea7e0f5332791e8d5508da41581f5d6e32d
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/ontology-3.json
@@ -0,0 +1,7 @@
+{
+  "id" : "5b41390b-d2d2-45c6-8038-1258c4b2725f",
+  "uri" : "http://www.w3.org/2000/01/rdf-schema#",
+  "prefix" : "rdfs",
+  "sparql" : false,
+  "rdf" : false
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/ontology-4.json b/lib/java/dbrepo-core/src/main/resources/ontology-4.json
new file mode 100644
index 0000000000000000000000000000000000000000..3f0a8e8fe4650f9b184295ee34ecba02b5fb0084
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/ontology-4.json
@@ -0,0 +1,7 @@
+{
+  "id" : "d6992475-9b71-4a4a-a6eb-bc1fe6a34443",
+  "uri" : "http://schema.org/",
+  "prefix" : "schema",
+  "sparql" : false,
+  "rdf" : false
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/ontology-5.json b/lib/java/dbrepo-core/src/main/resources/ontology-5.json
new file mode 100644
index 0000000000000000000000000000000000000000..8af111a8952feace00a157a260e4ed2f4b16bbb3
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/ontology-5.json
@@ -0,0 +1,8 @@
+{
+  "id" : "f95d1330-762e-4f5a-875a-3c64da5808a1",
+  "uri" : "http://dbpedia.org",
+  "prefix" : "db",
+  "sparql" : true,
+  "rdf" : false,
+  "sparql_endpoint" : "http://dbpedia.org/sparql"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/query-1.json b/lib/java/dbrepo-core/src/main/resources/query-1.json
new file mode 100644
index 0000000000000000000000000000000000000000..dc559d73c15744536aa87f808f94e2a028038649
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/query-1.json
@@ -0,0 +1,19 @@
+{
+  "id" : "60494137-f000-459e-acd3-4fcadbdf14ca",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "execution" : "2025-03-24T12:31:48.081Z",
+  "query" : "SELECT `id`, `date`, `location`, `mintemp`, `rainfall` FROM `weather_aus` ORDER BY id ASC",
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "query_hash" : "a3b8ac39e38167d14cf3a9c20a69e4b6954d049525390b973a2c23064953a992",
+  "is_persisted" : true,
+  "result_hash" : "8358c8ade4849d2094ab5bb29127afdae57e6bb5acb1db7af603813d406c467a",
+  "result_number" : 3
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/query-2.json b/lib/java/dbrepo-core/src/main/resources/query-2.json
new file mode 100644
index 0000000000000000000000000000000000000000..aaf30ab56fa9ab1604b3ea2c07142011c07d2647
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/query-2.json
@@ -0,0 +1,20 @@
+{
+  "id" : "4e0ac92a-7cb3-4222-9b85-0498c73e0afd",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "execution" : "2025-03-24T12:30:48.084Z",
+  "query" : "SELECT `location` FROM `weather_aus`",
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "query_normalized" : "SELECT `location` FROM `weather_aus`",
+  "query_hash" : "a2d2dd94ebc7653bb5a3b55dd8ed5e91d3d13c225c6855a1eb4eb7ca14c36ced",
+  "is_persisted" : false,
+  "result_hash" : "ff3f7cbe1b96d296957f6e39e55b8b1b577fa3d205d4795af99594cfd20cb80d",
+  "result_number" : 3
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/query-3.json b/lib/java/dbrepo-core/src/main/resources/query-3.json
new file mode 100644
index 0000000000000000000000000000000000000000..1b831c1b78aa2157332a21adefcaea0943558261
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/query-3.json
@@ -0,0 +1,20 @@
+{
+  "id" : "a9849020-45a7-40a8-9a19-d4ae2b28dd46",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "execution" : "2025-03-24T12:30:48.084Z",
+  "query" : "SELECT `location`, `mintemp` FROM `weather_aus` WHERE `mintemp` > 10",
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "query_normalized" : "SELECT `location`, `mintemp` FROM `weather_aus` WHERE `mintemp` > 10",
+  "query_hash" : "a3d3dd94ebc7653bb5a3b55dd8ed5e91d3d13c335c6855a1eb4eb7ca14c36ced",
+  "is_persisted" : true,
+  "result_hash" : "ff3f7cbe1b96d396957f6e39e55b8b1b577fa3d305d4795af99594cfd30cb80d",
+  "result_number" : 2
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/query-4.json b/lib/java/dbrepo-core/src/main/resources/query-4.json
new file mode 100644
index 0000000000000000000000000000000000000000..f3449b06bc8e4b55b48aa7657eadfa7ab98510d0
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/query-4.json
@@ -0,0 +1,20 @@
+{
+  "id" : "18a98197-51ff-4011-9f40-914a11675a6d",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "execution" : "2025-03-24T12:30:48.085Z",
+  "query" : "SELECT `id`, `value` FROM `mfcc`",
+  "database_id" : "9d8cb9a9-9468-4801-a2e0-2dac8bc67c31",
+  "query_normalized" : "SELECT `id`, `value` FROM `mfcc`",
+  "query_hash" : "df7da3801dfb5c191ff6711d79ce6455f3c09ec8323ce1ff7208ab85387263f5",
+  "is_persisted" : false,
+  "result_hash" : "ff4f7cbe1b96d496957f6e49e55b8b1b577fa4d405d4795af99594cfd40cb80d",
+  "result_number" : 6
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/query-5.json b/lib/java/dbrepo-core/src/main/resources/query-5.json
new file mode 100644
index 0000000000000000000000000000000000000000..5a09de8e1e09e8608056c6c2512420665c911627
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/query-5.json
@@ -0,0 +1,20 @@
+{
+  "id" : "1a39f775-e3d5-4865-b4f5-dbbb5693b637",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "execution" : "2025-03-24T12:30:48.086Z",
+  "query" : "SELECT `id`, `value` FROM `mfcc` WHERE `value` > 0",
+  "database_id" : "9d8cb9a9-9468-4801-a2e0-2dac8bc67c31",
+  "query_normalized" : "SELECT `id`, `value` FROM `mfcc` WHERE `value` > 0",
+  "query_hash" : "6d6dc48b12cdfd959d39a62887334a6bbd529b93eed4f211f3f671bd9e7d6225",
+  "is_persisted" : true,
+  "result_hash" : "ff5f7cbe1b96d596957f6e59e55b8b1b577fa5d505d5795af99595cfd50cb80d",
+  "result_number" : 6
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/query-6.json b/lib/java/dbrepo-core/src/main/resources/query-6.json
new file mode 100644
index 0000000000000000000000000000000000000000..b391a52fd99814e67cb9096d3615da7209518f60
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/query-6.json
@@ -0,0 +1,20 @@
+{
+  "id" : "7463412a-20c4-4fc1-8a33-948aea026f49",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "execution" : "2025-03-24T12:30:48.087Z",
+  "query" : "SELECT `location` FROM `weather_aus` WHERE `id` = 1",
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "query_normalized" : "SELECT `location` FROM `weather_aus` WHERE `id` = 1",
+  "query_hash" : "6d6dc48b12cdfd959d39a62887334a6bbd529b93eed4f211f3f671bd9e7d6225",
+  "is_persisted" : true,
+  "result_hash" : "ff5f7cbe1b96d596957f6e59e55b8b1b577fa5d505d5795af99595cfd50cb80d",
+  "result_number" : 1
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/query-7.json b/lib/java/dbrepo-core/src/main/resources/query-7.json
new file mode 100644
index 0000000000000000000000000000000000000000..1677fd4224f5acdd351e380fd92062a969cd2d59
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/query-7.json
@@ -0,0 +1,20 @@
+{
+  "id" : "fe73a325-30a0-444c-b74f-23ce1533e55f",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "execution" : "2025-03-24T12:30:48.084Z",
+  "query" : "SELECT id, date, a.location, lat, lng FROM weather_aus a JOIN weather_location l on a.location = l.location WHERE date = '2008-12-01'",
+  "database_id" : "c503d7f3-5952-4d97-b26a-da86bea4c20d",
+  "query_normalized" : "SELECT id, date, a.location, lat, lng FROM weather_aus a JOIN weather_location l on a.location = l.location WHERE date = '2008-12-01'",
+  "query_hash" : "df7da3801dfb5c191ff6711d79ce6455f3c09ec8323ce1ff7208ab85387263f5",
+  "is_persisted" : false,
+  "result_hash" : "ff4f7cbe1b96d496957f6e49e55b8b1b577fa4d405d4795af99594cfd40cb80d",
+  "result_number" : 2
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/query-8.json b/lib/java/dbrepo-core/src/main/resources/query-8.json
new file mode 100644
index 0000000000000000000000000000000000000000..dab0c6ff9846c7f400af681e6f01592b4c9c5078
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/query-8.json
@@ -0,0 +1,20 @@
+{
+  "id" : "1c466eee-d551-4ef9-a7e0-b5a2d1b15473",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "execution" : "2025-03-24T12:30:48.098Z",
+  "query" : "SELECT `id`, `animal_name` FROM `zoo` WHERE `hair` = TRUE AND `feathers` = FALSE;",
+  "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+  "query_normalized" : "SELECT `id`, `animal_name` FROM `zoo` WHERE `hair` = TRUE AND `feathers` = FALSE;",
+  "query_hash" : "f0ee0d6dd45e092fca120c4f0eab089f91ed26ccf8dc34a03c6b9c6bb4141271",
+  "is_persisted" : true,
+  "result_hash" : "b5f9cae916d32deff81c5f2e9f8ff43904034bc084b12320730953d120698bed",
+  "result_number" : 3
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/query-9.json b/lib/java/dbrepo-core/src/main/resources/query-9.json
new file mode 100644
index 0000000000000000000000000000000000000000..0ec3210c0b1bee83fffcbf91b59446efb44c21f1
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/query-9.json
@@ -0,0 +1,20 @@
+{
+  "id" : "df34f0b9-b64c-406c-9109-7a031f4a7f27",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "execution" : "2025-03-24T12:30:48.067Z",
+  "query" : "SELECT `lat`, `lng` FROM `mfcc` WHERE `location` = 'Fuji'",
+  "database_id" : "9d8cb9a9-9468-4801-a2e0-2dac8bc67c31",
+  "query_normalized" : "SELECT `lat`, `lng` FROM `mfcc` WHERE `location` = 'Fuji'",
+  "query_hash" : "dfcdec827b2ea74d89415f8d1ce39354f59ef304444ba4e12e4f3d9d3f35abe3",
+  "is_persisted" : true,
+  "result_hash" : "f0aba070a1fd29e96230d12d7c0b4d08b89820b3cc2dda0575680492010016e7",
+  "result_number" : 6
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/table-1.json b/lib/java/dbrepo-core/src/main/resources/table-1.json
new file mode 100644
index 0000000000000000000000000000000000000000..002a4f151856c9343da290cdf117c06cd1acf7b1
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/table-1.json
@@ -0,0 +1,117 @@
+{
+  "id" : "666d0b6b-f017-4f7c-80d8-a47174d8b539",
+  "name" : "Weather AUS",
+  "identifiers" : [ ],
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "description" : "Weather in Australia",
+  "columns" : [ {
+    "id" : "377c0a6e-938e-458c-ad2b-bbbd75d46412",
+    "name" : "id",
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "666d0b6b-f017-4f7c-80d8-a47174d8b539",
+    "ord" : 0,
+    "internal_name" : "id",
+    "type" : "serial",
+    "is_null_allowed" : false
+  }, {
+    "id" : "dbca4821-3023-479b-a25a-c08eb0ec02ce",
+    "name" : "Date",
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "666d0b6b-f017-4f7c-80d8-a47174d8b539",
+    "ord" : 1,
+    "internal_name" : "date",
+    "type" : "date",
+    "is_null_allowed" : true
+  }, {
+    "id" : "8ff0351e-4882-4948-94af-598e4b264b25",
+    "name" : "Location",
+    "size" : 255,
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "666d0b6b-f017-4f7c-80d8-a47174d8b539",
+    "ord" : 2,
+    "internal_name" : "location",
+    "type" : "varchar",
+    "is_null_allowed" : true
+  }, {
+    "id" : "9ab256eb-3324-4e76-af3b-e3e2a58ce161",
+    "name" : "MinTemp",
+    "size" : 10,
+    "d" : 0,
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "666d0b6b-f017-4f7c-80d8-a47174d8b539",
+    "ord" : 3,
+    "internal_name" : "mintemp",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  }, {
+    "id" : "619e9355-51aa-438f-8579-80cec30f35cb",
+    "name" : "Rainfall",
+    "size" : 10,
+    "d" : 0,
+    "concept" : {
+      "id" : "8cabc011-4bdf-44d4-9d33-b2648e2ddbf1",
+      "uri" : "http://www.wikidata.org/entity/Q25257",
+      "name" : "precipitation"
+    },
+    "unit" : {
+      "id" : "1fee60e4-42f8-4883-85a8-e282fddf6a62",
+      "uri" : "http://www.ontology-of-units-of-measure.org/resource/om-2/millimetre",
+      "name" : "millimetre",
+      "description" : "The millimetre is a unit of length defined as 1.0e-3 metre."
+    },
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "666d0b6b-f017-4f7c-80d8-a47174d8b539",
+    "ord" : 4,
+    "internal_name" : "rainfall",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  } ],
+  "constraints" : {
+    "uniques" : [ ],
+    "checks" : [ ],
+    "foreign_keys" : [ ],
+    "primary_key" : [ {
+      "id" : "377c0a6e-938e-458c-ad2b-bbbd75d46412",
+      "table" : {
+        "id" : "666d0b6b-f017-4f7c-80d8-a47174d8b539",
+        "name" : "Weather AUS",
+        "description" : "Weather in Australia",
+        "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+        "internal_name" : "weather_aus",
+        "is_versioned" : true,
+        "is_public" : false,
+        "is_schema_public" : false,
+        "owned_by" : "cd5bab0d-7799-4069-85fb-c5d738572a0b"
+      },
+      "column" : {
+        "id" : "377c0a6e-938e-458c-ad2b-bbbd75d46412",
+        "name" : "id",
+        "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+        "table_id" : "666d0b6b-f017-4f7c-80d8-a47174d8b539",
+        "internal_name" : "id",
+        "type" : "serial"
+      }
+    } ]
+  },
+  "created" : "2023-02-26 08:26:15",
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "internal_name" : "weather_aus",
+  "is_versioned" : true,
+  "is_schema_public" : false,
+  "queue_name" : "weather_aus",
+  "queue_type" : "quorum",
+  "routing_key" : "dbrepo.b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425.666d0b6b-f017-4f7c-80d8-a47174d8b539",
+  "is_public" : false,
+  "num_rows" : 3,
+  "data_length" : 2000,
+  "max_data_length" : 9223372036854775807,
+  "avg_row_length" : 3
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/table-2.json b/lib/java/dbrepo-core/src/main/resources/table-2.json
new file mode 100644
index 0000000000000000000000000000000000000000..3549be331383895ea1f8537af3b8c14a90fde8f5
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/table-2.json
@@ -0,0 +1,159 @@
+{
+  "id" : "0cc067b6-4e81-4871-b47e-17a38228a574",
+  "name" : "Weather Location",
+  "identifiers" : [ ],
+  "owner" : {
+    "id" : "eeb9a51b-4cd8-4039-90bf-e24f17372f7c",
+    "username" : "junit2",
+    "name" : "Jane Doe",
+    "orcid" : "https://orcid.org/0000-0002-9272-6225",
+    "qualified_name" : "Jane Doe — @junit2",
+    "given_name" : "Jane",
+    "family_name" : "Doe"
+  },
+  "description" : "Weather location",
+  "columns" : [ {
+    "id" : "795faa78-7ebb-4dd5-9eb1-e54a9192d0b5",
+    "name" : "location",
+    "size" : 255,
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "0cc067b6-4e81-4871-b47e-17a38228a574",
+    "ord" : 0,
+    "internal_name" : "location",
+    "type" : "varchar",
+    "is_null_allowed" : false
+  }, {
+    "id" : "f316ced5-7774-4656-aa7f-a874622d99b3",
+    "name" : "lat",
+    "size" : 10,
+    "d" : 0,
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "0cc067b6-4e81-4871-b47e-17a38228a574",
+    "ord" : 1,
+    "internal_name" : "lat",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  }, {
+    "id" : "11cb1aa2-8582-45ef-a3bb-7056aa94cdf1",
+    "name" : "lng",
+    "size" : 10,
+    "d" : 0,
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "0cc067b6-4e81-4871-b47e-17a38228a574",
+    "ord" : 2,
+    "internal_name" : "lng",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  } ],
+  "constraints" : {
+    "uniques" : [ {
+      "id" : "408e398f-d157-49a1-8b45-87a070f3b4de",
+      "name" : "uk_1",
+      "table" : {
+        "id" : "0cc067b6-4e81-4871-b47e-17a38228a574",
+        "name" : "Weather Location",
+        "description" : "Weather location",
+        "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+        "internal_name" : "weather_location",
+        "is_versioned" : true,
+        "is_public" : false,
+        "is_schema_public" : true,
+        "owned_by" : "eeb9a51b-4cd8-4039-90bf-e24f17372f7c"
+      },
+      "columns" : [ {
+        "id" : "f316ced5-7774-4656-aa7f-a874622d99b3",
+        "name" : "lat",
+        "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+        "table_id" : "0cc067b6-4e81-4871-b47e-17a38228a574",
+        "internal_name" : "lat",
+        "type" : "decimal"
+      } ]
+    } ],
+    "checks" : [ "`mintemp` > 0" ],
+    "foreign_keys" : [ {
+      "id" : "d79f0fb1-05d6-4f3e-a5e2-8559982b8516",
+      "name" : "fk_location",
+      "references" : [ {
+        "id" : "a4da8f2f-2999-4621-8066-801a2fb73c8d",
+        "column" : {
+          "id" : "11cb1aa2-8582-45ef-a3bb-7056aa94cdf1",
+          "name" : "lng",
+          "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+          "table_id" : "0cc067b6-4e81-4871-b47e-17a38228a574",
+          "internal_name" : "lng",
+          "type" : "decimal"
+        },
+        "foreign_key" : {
+          "id" : "d79f0fb1-05d6-4f3e-a5e2-8559982b8516"
+        },
+        "referenced_column" : {
+          "id" : "377c0a6e-938e-458c-ad2b-bbbd75d46412",
+          "name" : "id",
+          "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+          "table_id" : "666d0b6b-f017-4f7c-80d8-a47174d8b539",
+          "internal_name" : "id",
+          "type" : "serial"
+        }
+      } ],
+      "table" : {
+        "id" : "0cc067b6-4e81-4871-b47e-17a38228a574",
+        "name" : "Weather Location",
+        "description" : "Weather location",
+        "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+        "internal_name" : "weather_location",
+        "is_versioned" : true,
+        "is_public" : false,
+        "is_schema_public" : true,
+        "owned_by" : "eeb9a51b-4cd8-4039-90bf-e24f17372f7c"
+      },
+      "referenced_table" : {
+        "id" : "666d0b6b-f017-4f7c-80d8-a47174d8b539",
+        "name" : "Weather AUS",
+        "description" : "Weather in Australia",
+        "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+        "internal_name" : "weather_aus",
+        "is_versioned" : true,
+        "is_public" : false,
+        "is_schema_public" : false,
+        "owned_by" : "cd5bab0d-7799-4069-85fb-c5d738572a0b"
+      },
+      "on_update" : "no_action",
+      "on_delete" : "no_action"
+    } ],
+    "primary_key" : [ {
+      "id" : "795faa78-7ebb-4dd5-9eb1-e54a9192d0b5",
+      "table" : {
+        "id" : "0cc067b6-4e81-4871-b47e-17a38228a574",
+        "name" : "Weather Location",
+        "description" : "Weather location",
+        "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+        "internal_name" : "weather_location",
+        "is_versioned" : true,
+        "is_public" : false,
+        "is_schema_public" : true,
+        "owned_by" : "eeb9a51b-4cd8-4039-90bf-e24f17372f7c"
+      },
+      "column" : {
+        "id" : "795faa78-7ebb-4dd5-9eb1-e54a9192d0b5",
+        "name" : "location",
+        "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+        "table_id" : "0cc067b6-4e81-4871-b47e-17a38228a574",
+        "internal_name" : "location",
+        "type" : "varchar"
+      }
+    } ]
+  },
+  "created" : "2023-02-26 08:26:47",
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "internal_name" : "weather_location",
+  "is_versioned" : true,
+  "is_schema_public" : true,
+  "queue_name" : "weather_location",
+  "queue_type" : "quorum",
+  "routing_key" : "dbrepo.b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425.0cc067b6-4e81-4871-b47e-17a38228a574",
+  "is_public" : false,
+  "num_rows" : 3,
+  "data_length" : 2000,
+  "max_data_length" : 9223372036854775807,
+  "avg_row_length" : 3
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/table-3.json b/lib/java/dbrepo-core/src/main/resources/table-3.json
new file mode 100644
index 0000000000000000000000000000000000000000..6e314165bbe2ae977816a4e7614aeba7dad59ecd
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/table-3.json
@@ -0,0 +1,440 @@
+{
+  "id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+  "name" : "Sensor",
+  "identifiers" : [ ],
+  "owner" : {
+    "id" : "7b080e33-d8db-4276-9d53-47208e657006",
+    "username" : "junit3",
+    "name" : "System System",
+    "qualified_name" : "System System — @junit3",
+    "given_name" : "System",
+    "family_name" : "System"
+  },
+  "description" : "Some sensor data",
+  "columns" : [ {
+    "id" : "49cc2735-ba75-4e12-8ac7-8aec87ed7724",
+    "name" : "id",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 0,
+    "internal_name" : "id",
+    "type" : "bigint",
+    "is_null_allowed" : false
+  }, {
+    "id" : "2c240d64-3052-4a74-b696-e7490fdff3ea",
+    "name" : "linie",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 1,
+    "internal_name" : "linie",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "6fbb0a56-f23a-4aa4-b158-c614a0a30f86",
+    "name" : "richtung",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 2,
+    "internal_name" : "richtung",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "9b01f925-93ee-4f28-bf31-9902900a7099",
+    "name" : "betriebsdatum",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 3,
+    "internal_name" : "betriebsdatum",
+    "type" : "date",
+    "is_null_allowed" : true
+  }, {
+    "id" : "9bbd66f1-0d94-401c-b7f7-6e329bb9ee21",
+    "name" : "fahrzeug",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 4,
+    "internal_name" : "fahrzeug",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "19ad93d7-b298-495b-9678-9aac80678ff9",
+    "name" : "kurs",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 5,
+    "internal_name" : "kurs",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "4d27d9f4-645f-4222-b5a8-4a91fa6e4275",
+    "name" : "seq_von",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 6,
+    "internal_name" : "seq_von",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "b4f8fcf8-5824-45ec-8c58-43f20e6dffc5",
+    "name" : "halt_diva_von",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 7,
+    "internal_name" : "halt_diva_von",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "87247218-369e-484a-9a8f-d758478d8dfc",
+    "name" : "halt_punkt_diva_von",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 8,
+    "internal_name" : "halt_punkt_diva_von",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "6e191b97-189a-4d88-901e-888ca889e280",
+    "name" : "halt_kurz_von1",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 9,
+    "internal_name" : "halt_kurz_von1",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "6ac356ff-9be5-4259-9b62-83b6707be7fe",
+    "name" : "datum_von",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 10,
+    "internal_name" : "datum_von",
+    "type" : "date",
+    "is_null_allowed" : true
+  }, {
+    "id" : "0665b384-c824-4358-b6c5-f17706d46ea4",
+    "name" : "soll_an_von",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 11,
+    "internal_name" : "soll_an_von",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "22d3676e-d28e-4075-b223-91a7ac767bcf",
+    "name" : "ist_an_von",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 12,
+    "internal_name" : "ist_an_von",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "673326e3-ee2b-4c2f-902f-982e2abce1c2",
+    "name" : "soll_ab_von",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 13,
+    "internal_name" : "soll_ab_von",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "8dcacf4a-736b-4e67-9618-74998cba8940",
+    "name" : "ist_ab_von",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 14,
+    "internal_name" : "ist_ab_von",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "2b2f5359-76d3-4763-a53f-d18ca6b793fb",
+    "name" : "seq_nach",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 15,
+    "internal_name" : "seq_nach",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "674b6120-06cf-4624-b006-1ed48898bd69",
+    "name" : "halt_diva_nach",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 16,
+    "internal_name" : "halt_diva_nach",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "13edd7c9-6c88-44d7-b206-34774e49c5af",
+    "name" : "halt_punkt_diva_nach",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 17,
+    "internal_name" : "halt_punkt_diva_nach",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "6977bb3f-4ae2-43ea-bb82-c7f68454c538",
+    "name" : "halt_kurz_nach1",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 18,
+    "internal_name" : "halt_kurz_nach1",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "c03d2429-53e1-42eb-a1f5-ce342fa23336",
+    "name" : "datum_nach",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 19,
+    "internal_name" : "datum_nach",
+    "type" : "date",
+    "is_null_allowed" : true
+  }, {
+    "id" : "06edd332-750e-4aa1-b61b-e757fb2312c3",
+    "name" : "soll_an_nach",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 20,
+    "internal_name" : "soll_an_nach",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "b6b8631d-f283-49da-8d5e-4bb24def2a40",
+    "name" : "ist_an_nach1",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 21,
+    "internal_name" : "ist_an_nach1",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "0393ee00-31ba-44ab-9e82-1f5034a9f57b",
+    "name" : "soll_ab_nach",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 22,
+    "internal_name" : "soll_ab_nach",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "a63784ea-f70d-4bda-ace6-1c6a88edf831",
+    "name" : "ist_ab_nach",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 23,
+    "internal_name" : "ist_ab_nach",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "720fe829-802c-420b-8e41-bdbb636db43c",
+    "name" : "fahrt_id",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 24,
+    "internal_name" : "fahrt_id",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "5bce38ef-7d49-43b5-9054-068750684b5f",
+    "name" : "fahrweg_id",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 25,
+    "internal_name" : "fahrweg_id",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "92097c02-3dd3-40ea-bd03-a9135f45a557",
+    "name" : "fw_no",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 26,
+    "internal_name" : "fw_no",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "7361a38a-828b-495e-8a57-b36cca17d7db",
+    "name" : "fw_typ",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 27,
+    "internal_name" : "fw_typ",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "a06812db-03b7-484c-92a6-45d94eef3bb9",
+    "name" : "fw_kurz",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 28,
+    "internal_name" : "fw_kurz",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "05614d89-9216-47ea-96f0-acffc4674acf",
+    "name" : "fw_lang",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 29,
+    "internal_name" : "fw_lang",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "05ada13d-361a-48e7-9a0f-1191499509f1",
+    "name" : "umlauf_von",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 30,
+    "internal_name" : "umlauf_von",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "b3f259f6-700a-4b60-8eac-dceaa0dcda9d",
+    "name" : "halt_id_von",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 31,
+    "internal_name" : "halt_id_von",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "9160af06-e168-4b10-a7f9-520f41ae7955",
+    "name" : "halt_id_nach",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 32,
+    "internal_name" : "halt_id_nach",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "fde20c99-ed9c-4a60-8c18-f46e8603ebb5",
+    "name" : "halt_punkt_id_von",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 33,
+    "internal_name" : "halt_punkt_id_von",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "071c7f27-1cdd-4af9-b4d6-f932c27c7287",
+    "name" : "halt_punkt_id_nach",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 34,
+    "internal_name" : "halt_punkt_id_nach",
+    "type" : "int",
+    "is_null_allowed" : true
+  } ],
+  "constraints" : {
+    "uniques" : [ ],
+    "checks" : [ ],
+    "foreign_keys" : [ ],
+    "primary_key" : [ {
+      "id" : "49cc2735-ba75-4e12-8ac7-8aec87ed7724",
+      "table" : {
+        "id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+        "name" : "Sensor",
+        "description" : "Some sensor data",
+        "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+        "internal_name" : "sensor",
+        "is_versioned" : true,
+        "is_public" : false,
+        "is_schema_public" : false,
+        "owned_by" : "7b080e33-d8db-4276-9d53-47208e657006"
+      },
+      "column" : {
+        "id" : "49cc2735-ba75-4e12-8ac7-8aec87ed7724",
+        "name" : "id",
+        "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+        "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+        "internal_name" : "id",
+        "type" : "bigint"
+      }
+    } ]
+  },
+  "created" : "2023-02-26 08:27:11",
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "internal_name" : "sensor",
+  "is_versioned" : true,
+  "is_schema_public" : false,
+  "queue_name" : "sensor",
+  "queue_type" : "quorum",
+  "routing_key" : "dbrepo.b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425.a94ee518-c235-496b-8613-b0c643bc1b11",
+  "is_public" : false,
+  "num_rows" : 6,
+  "data_length" : 1800,
+  "max_data_length" : 9223372036854775807,
+  "avg_row_length" : 6
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/table-4.json b/lib/java/dbrepo-core/src/main/resources/table-4.json
new file mode 100644
index 0000000000000000000000000000000000000000..1547b1d8fda874630596b9e0b494aad9803a85ed
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/table-4.json
@@ -0,0 +1,74 @@
+{
+  "id" : "6c87cbcf-5043-404f-9bf1-b09ddbac25a2",
+  "name" : "Sensor 2",
+  "identifiers" : [ ],
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "description" : "Hello sensor",
+  "columns" : [ {
+    "id" : "c8ec8a56-dea1-4316-895f-56e6d289cbf7",
+    "name" : "Timestamp",
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "6c87cbcf-5043-404f-9bf1-b09ddbac25a2",
+    "ord" : 0,
+    "internal_name" : "timestamp",
+    "type" : "timestamp",
+    "is_null_allowed" : false
+  }, {
+    "id" : "d06956ae-aabd-474f-a47d-47af1ba043d1",
+    "name" : "Value",
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "6c87cbcf-5043-404f-9bf1-b09ddbac25a2",
+    "ord" : 1,
+    "internal_name" : "value",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  } ],
+  "constraints" : {
+    "uniques" : [ ],
+    "checks" : [ ],
+    "foreign_keys" : [ ],
+    "primary_key" : [ {
+      "id" : "c8ec8a56-dea1-4316-895f-56e6d289cbf7",
+      "table" : {
+        "id" : "6c87cbcf-5043-404f-9bf1-b09ddbac25a2",
+        "name" : "Sensor 2",
+        "description" : "Hello sensor",
+        "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+        "internal_name" : "sensor_2",
+        "is_versioned" : true,
+        "is_public" : true,
+        "is_schema_public" : false,
+        "owned_by" : "cd5bab0d-7799-4069-85fb-c5d738572a0b"
+      },
+      "column" : {
+        "id" : "c8ec8a56-dea1-4316-895f-56e6d289cbf7",
+        "name" : "Timestamp",
+        "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+        "table_id" : "6c87cbcf-5043-404f-9bf1-b09ddbac25a2",
+        "internal_name" : "timestamp",
+        "type" : "timestamp"
+      }
+    } ]
+  },
+  "created" : "2023-02-26 08:29:35",
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "internal_name" : "sensor_2",
+  "is_versioned" : true,
+  "is_schema_public" : false,
+  "queue_name" : "sensor_2",
+  "queue_type" : "quorum",
+  "routing_key" : "dbrepo.b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425.6c87cbcf-5043-404f-9bf1-b09ddbac25a2",
+  "is_public" : true,
+  "num_rows" : 0,
+  "data_length" : 1000,
+  "max_data_length" : 9223372036854775807,
+  "avg_row_length" : 0
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/table-5.json b/lib/java/dbrepo-core/src/main/resources/table-5.json
new file mode 100644
index 0000000000000000000000000000000000000000..8be799126aa49125c5e51579e0030965feb7629d
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/table-5.json
@@ -0,0 +1,241 @@
+{
+  "id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+  "name" : "zoo",
+  "identifiers" : [ ],
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "description" : "Some Kaggle dataset",
+  "columns" : [ {
+    "id" : "4efd4cbb-ca2e-48e2-8f40-37514956aa67",
+    "name" : "id",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 0,
+    "internal_name" : "id",
+    "type" : "bigint",
+    "is_null_allowed" : false
+  }, {
+    "id" : "53061685-c1db-4df6-ad4e-8f384a200104",
+    "name" : "Animal Name",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 1,
+    "internal_name" : "animal_name",
+    "type" : "varchar",
+    "is_null_allowed" : true
+  }, {
+    "id" : "643f9cda-8db1-47a4-bb08-c10e78e54c10",
+    "name" : "Hair",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 2,
+    "internal_name" : "hair",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "efeacc15-3b31-4a9f-9dba-f07d62dcddd6",
+    "name" : "Feathers",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 3,
+    "internal_name" : "feathers",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "0319db31-473a-47bc-bb9d-fa1edf82fcd5",
+    "name" : "Bread",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 4,
+    "internal_name" : "bread",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "9ba789ca-59cf-4480-b9f6-3b957b1d7f5c",
+    "name" : "Eggs",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 5,
+    "internal_name" : "eggs",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "81c42954-fd1a-4fef-adb1-bc4945469e26",
+    "name" : "Milk",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 6,
+    "internal_name" : "milk",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "49a38905-52a2-4a9b-b7b9-5e1dcf799b2a",
+    "name" : "Water",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 7,
+    "internal_name" : "water",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "1e1a9b6b-5aee-4773-b52d-ea56a5d1e2c8",
+    "name" : "Airborne",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 8,
+    "internal_name" : "airborne",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "42ede62a-ae98-4a14-ba54-76b8ba1c580f",
+    "name" : "Waterborne",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 9,
+    "internal_name" : "waterborne",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "0af0f84a-5a58-418a-8bbc-bde29ed0cda0",
+    "name" : "Aquantic",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 10,
+    "internal_name" : "aquantic",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "d9cb30a2-1566-4bd1-899d-060a8ba47722",
+    "name" : "Predator",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 11,
+    "internal_name" : "predator",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "e69f7f75-3731-4706-8193-0393aa0c08a7",
+    "name" : "Backbone",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 12,
+    "internal_name" : "backbone",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "4441630e-7dfa-4046-8bc2-929860f1c66e",
+    "name" : "Breathes",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 13,
+    "internal_name" : "breathes",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "f0a12be0-0b26-4686-bf7e-539cdc7e71b4",
+    "name" : "Venomous",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 14,
+    "internal_name" : "venomous",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "b60abdcc-5786-40f8-a309-e4467f7d963c",
+    "name" : "Fin",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 15,
+    "internal_name" : "fin",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "6d5877e2-daef-43d6-a1b6-1aff3ab1a9a2",
+    "name" : "Legs",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 16,
+    "internal_name" : "legs",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "bb45455f-d449-496e-94f8-eac4d46ba9c0",
+    "name" : "Tail",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 17,
+    "internal_name" : "tail",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  }, {
+    "id" : "44c5484b-b57d-48a4-8f24-d2074de98e1a",
+    "name" : "Domestic",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 18,
+    "internal_name" : "domestic",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "6475b937-71fc-4331-bc85-8ee71fa68d99",
+    "name" : "Catsize",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 19,
+    "internal_name" : "catsize",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "92ff472f-e203-4c8e-b243-81640229ca19",
+    "name" : "Class Type",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 20,
+    "internal_name" : "class_type",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  } ],
+  "constraints" : {
+    "uniques" : [ ],
+    "checks" : [ ],
+    "foreign_keys" : [ ],
+    "primary_key" : [ {
+      "id" : "4efd4cbb-ca2e-48e2-8f40-37514956aa67",
+      "table" : {
+        "id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+        "name" : "zoo",
+        "description" : "Some Kaggle dataset",
+        "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+        "internal_name" : "zoo",
+        "is_versioned" : true,
+        "is_public" : true,
+        "is_schema_public" : true,
+        "owned_by" : "cd5bab0d-7799-4069-85fb-c5d738572a0b"
+      },
+      "column" : {
+        "id" : "4efd4cbb-ca2e-48e2-8f40-37514956aa67",
+        "name" : "id",
+        "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+        "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+        "internal_name" : "id",
+        "type" : "bigint"
+      }
+    } ]
+  },
+  "created" : "2025-03-24 12:31:48",
+  "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+  "internal_name" : "zoo",
+  "is_versioned" : true,
+  "is_schema_public" : true,
+  "queue_name" : "zoo",
+  "queue_type" : "quorum",
+  "routing_key" : "dbrepo.dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe.91306cbd-c51f-47d3-8722-debfdbd8a77e",
+  "is_public" : true
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/table-6.json b/lib/java/dbrepo-core/src/main/resources/table-6.json
new file mode 100644
index 0000000000000000000000000000000000000000..ee2e26b6b70d1eff6bbc8dc1fc437605d5fbc19c
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/table-6.json
@@ -0,0 +1,106 @@
+{
+  "id" : "ae84d169-d36c-4f5a-a390-153d090f9574",
+  "name" : "names",
+  "identifiers" : [ ],
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "description" : "Some names dataset",
+  "columns" : [ {
+    "id" : "27b04a64-2849-4fae-b295-858c3e50361f",
+    "name" : "id",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "ae84d169-d36c-4f5a-a390-153d090f9574",
+    "ord" : 0,
+    "internal_name" : "id",
+    "type" : "bigint",
+    "is_null_allowed" : false
+  }, {
+    "id" : "1ea62e32-5719-4152-94da-45d37eb88b6f",
+    "name" : "firstname",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "ae84d169-d36c-4f5a-a390-153d090f9574",
+    "ord" : 1,
+    "internal_name" : "firstname",
+    "type" : "varchar",
+    "is_null_allowed" : false
+  }, {
+    "id" : "f523f9f5-42f7-4695-841e-a5fd30fa6879",
+    "name" : "lastname",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "ae84d169-d36c-4f5a-a390-153d090f9574",
+    "ord" : 2,
+    "internal_name" : "lastname",
+    "type" : "varchar",
+    "is_null_allowed" : false
+  }, {
+    "id" : "f57ea880-f917-4127-bcbb-202a34831383",
+    "name" : "birth",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "ae84d169-d36c-4f5a-a390-153d090f9574",
+    "ord" : 3,
+    "internal_name" : "birth",
+    "type" : "year",
+    "is_null_allowed" : false
+  }, {
+    "id" : "38aaeb63-b94b-4d90-8eae-a626dfb1f092",
+    "name" : "reminder",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "ae84d169-d36c-4f5a-a390-153d090f9574",
+    "ord" : 4,
+    "internal_name" : "reminder",
+    "type" : "time",
+    "is_null_allowed" : false
+  }, {
+    "id" : "f788cf6f-66ed-4f28-8b24-d9d173c4d340",
+    "name" : "ref_id",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "ae84d169-d36c-4f5a-a390-153d090f9574",
+    "ord" : 5,
+    "internal_name" : "ref_id",
+    "type" : "bigint",
+    "is_null_allowed" : true
+  } ],
+  "constraints" : {
+    "uniques" : [ ],
+    "checks" : [ ],
+    "foreign_keys" : [ ],
+    "primary_key" : [ {
+      "id" : "27b04a64-2849-4fae-b295-858c3e50361f",
+      "table" : {
+        "id" : "ae84d169-d36c-4f5a-a390-153d090f9574",
+        "name" : "names",
+        "description" : "Some names dataset",
+        "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+        "internal_name" : "names",
+        "is_versioned" : true,
+        "is_public" : true,
+        "is_schema_public" : false,
+        "owned_by" : "cd5bab0d-7799-4069-85fb-c5d738572a0b"
+      },
+      "column" : {
+        "id" : "27b04a64-2849-4fae-b295-858c3e50361f",
+        "name" : "id",
+        "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+        "table_id" : "ae84d169-d36c-4f5a-a390-153d090f9574",
+        "internal_name" : "id",
+        "type" : "bigint"
+      }
+    } ]
+  },
+  "created" : "2023-02-26 08:28:37",
+  "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+  "internal_name" : "names",
+  "is_versioned" : true,
+  "is_schema_public" : false,
+  "queue_name" : "names",
+  "queue_type" : "quorum",
+  "routing_key" : "dbrepo.dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe.ae84d169-d36c-4f5a-a390-153d090f9574",
+  "is_public" : true
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/table-7.json b/lib/java/dbrepo-core/src/main/resources/table-7.json
new file mode 100644
index 0000000000000000000000000000000000000000..c280bf116ae75be605b03b938da166fa238ec811
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/table-7.json
@@ -0,0 +1,168 @@
+{
+  "id" : "e5d10200-3e4f-45f4-9f36-ff3ca39c6c29",
+  "name" : "likes",
+  "identifiers" : [ ],
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "description" : "Some likes dataset",
+  "columns" : [ {
+    "id" : "395b44a4-0e31-41ea-94ad-c4f2d5e912c6",
+    "name" : "name_id",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "e5d10200-3e4f-45f4-9f36-ff3ca39c6c29",
+    "ord" : 0,
+    "internal_name" : "name_id",
+    "type" : "bigint",
+    "is_null_allowed" : false
+  }, {
+    "id" : "5713333b-872a-44c5-ab94-4d0ab62f5663",
+    "name" : "zoo_id",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "e5d10200-3e4f-45f4-9f36-ff3ca39c6c29",
+    "ord" : 1,
+    "internal_name" : "zoo_id",
+    "type" : "bigint",
+    "is_null_allowed" : false
+  } ],
+  "constraints" : {
+    "uniques" : [ ],
+    "checks" : [ ],
+    "foreign_keys" : [ {
+      "id" : "421c3dd8-ae09-4c72-a6ca-09de009e755f",
+      "name" : "fk_name_id",
+      "references" : [ {
+        "id" : "7c0e4a3c-88b8-4276-8924-403fd122fbf1",
+        "column" : {
+          "id" : "27b04a64-2849-4fae-b295-858c3e50361f",
+          "name" : "id",
+          "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+          "table_id" : "e5d10200-3e4f-45f4-9f36-ff3ca39c6c29",
+          "internal_name" : "id",
+          "type" : "bigint"
+        },
+        "foreign_key" : {
+          "id" : "421c3dd8-ae09-4c72-a6ca-09de009e755f"
+        },
+        "referenced_column" : {
+          "id" : "395b44a4-0e31-41ea-94ad-c4f2d5e912c6",
+          "name" : "name_id",
+          "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+          "table_id" : "ae84d169-d36c-4f5a-a390-153d090f9574",
+          "internal_name" : "name_id",
+          "type" : "bigint"
+        }
+      } ],
+      "table" : {
+        "id" : "e5d10200-3e4f-45f4-9f36-ff3ca39c6c29",
+        "name" : "likes",
+        "description" : "Some likes dataset",
+        "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+        "internal_name" : "likes",
+        "is_versioned" : true,
+        "is_public" : true,
+        "is_schema_public" : true,
+        "owned_by" : "cd5bab0d-7799-4069-85fb-c5d738572a0b"
+      },
+      "referenced_table" : {
+        "id" : "ae84d169-d36c-4f5a-a390-153d090f9574",
+        "name" : "names",
+        "description" : "Some names dataset",
+        "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+        "internal_name" : "names",
+        "is_versioned" : true,
+        "is_public" : true,
+        "is_schema_public" : false,
+        "owned_by" : "cd5bab0d-7799-4069-85fb-c5d738572a0b"
+      },
+      "on_update" : "no_action",
+      "on_delete" : "no_action"
+    }, {
+      "id" : "fce75207-6009-49ff-a646-d3e18aed787a",
+      "name" : "fk_zoo_id",
+      "references" : [ {
+        "id" : "e6cb1daa-a210-41c4-bb79-2c98ef25a02c",
+        "column" : {
+          "id" : "4efd4cbb-ca2e-48e2-8f40-37514956aa67",
+          "name" : "id",
+          "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+          "table_id" : "e5d10200-3e4f-45f4-9f36-ff3ca39c6c29",
+          "internal_name" : "id",
+          "type" : "bigint"
+        },
+        "foreign_key" : {
+          "id" : "fce75207-6009-49ff-a646-d3e18aed787a"
+        },
+        "referenced_column" : {
+          "id" : "5713333b-872a-44c5-ab94-4d0ab62f5663",
+          "name" : "zoo_id",
+          "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+          "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+          "internal_name" : "zoo_id",
+          "type" : "bigint"
+        }
+      } ],
+      "table" : {
+        "id" : "e5d10200-3e4f-45f4-9f36-ff3ca39c6c29",
+        "name" : "likes",
+        "description" : "Some likes dataset",
+        "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+        "internal_name" : "likes",
+        "is_versioned" : true,
+        "is_public" : true,
+        "is_schema_public" : true,
+        "owned_by" : "cd5bab0d-7799-4069-85fb-c5d738572a0b"
+      },
+      "referenced_table" : {
+        "id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+        "name" : "zoo",
+        "description" : "Some Kaggle dataset",
+        "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+        "internal_name" : "zoo",
+        "is_versioned" : true,
+        "is_public" : true,
+        "is_schema_public" : true,
+        "owned_by" : "cd5bab0d-7799-4069-85fb-c5d738572a0b"
+      },
+      "on_update" : "no_action",
+      "on_delete" : "no_action"
+    } ],
+    "primary_key" : [ {
+      "id" : "395b44a4-0e31-41ea-94ad-c4f2d5e912c6",
+      "table" : {
+        "id" : "e5d10200-3e4f-45f4-9f36-ff3ca39c6c29",
+        "name" : "likes",
+        "description" : "Some likes dataset",
+        "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+        "internal_name" : "likes",
+        "is_versioned" : true,
+        "is_public" : true,
+        "is_schema_public" : true,
+        "owned_by" : "cd5bab0d-7799-4069-85fb-c5d738572a0b"
+      },
+      "column" : {
+        "id" : "395b44a4-0e31-41ea-94ad-c4f2d5e912c6",
+        "name" : "name_id",
+        "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+        "table_id" : "e5d10200-3e4f-45f4-9f36-ff3ca39c6c29",
+        "internal_name" : "name_id",
+        "type" : "bigint"
+      }
+    } ]
+  },
+  "created" : "2023-02-26 08:29:07",
+  "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+  "internal_name" : "likes",
+  "is_versioned" : true,
+  "is_schema_public" : true,
+  "queue_name" : "likes",
+  "queue_type" : "quorum",
+  "routing_key" : "dbrepo.dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe.e5d10200-3e4f-45f4-9f36-ff3ca39c6c29",
+  "is_public" : true
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/table-8.json b/lib/java/dbrepo-core/src/main/resources/table-8.json
new file mode 100644
index 0000000000000000000000000000000000000000..7103bf211fc15c0e85a4fb462878af93eae0a627
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/table-8.json
@@ -0,0 +1,81 @@
+{
+  "id" : "2e039d0d-3257-4083-8b32-76d7cfa1f7fd",
+  "name" : "location",
+  "identifiers" : [ ],
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "description" : "Hello mfcc",
+  "columns" : [ {
+    "id" : "af362ac6-5dbb-4ede-83ea-5d94b39641c8",
+    "name" : "ID",
+    "database_id" : "9d8cb9a9-9468-4801-a2e0-2dac8bc67c31",
+    "table_id" : "2e039d0d-3257-4083-8b32-76d7cfa1f7fd",
+    "ord" : 0,
+    "internal_name" : "id",
+    "type" : "bigint",
+    "is_null_allowed" : false
+  }, {
+    "id" : "7ada597b-0766-4612-9ace-67eeee94e2da",
+    "name" : "Value",
+    "size" : 10,
+    "d" : 10,
+    "database_id" : "9d8cb9a9-9468-4801-a2e0-2dac8bc67c31",
+    "table_id" : "2e039d0d-3257-4083-8b32-76d7cfa1f7fd",
+    "ord" : 1,
+    "internal_name" : "value",
+    "type" : "decimal",
+    "is_null_allowed" : false
+  }, {
+    "id" : "8bcd9ef8-f7b8-4730-acc1-a3d43ba69a56",
+    "name" : "raw",
+    "database_id" : "9d8cb9a9-9468-4801-a2e0-2dac8bc67c31",
+    "table_id" : "2e039d0d-3257-4083-8b32-76d7cfa1f7fd",
+    "ord" : 2,
+    "internal_name" : "raw",
+    "type" : "longblob",
+    "is_null_allowed" : true
+  } ],
+  "constraints" : {
+    "uniques" : [ ],
+    "checks" : [ ],
+    "foreign_keys" : [ ],
+    "primary_key" : [ {
+      "id" : "cd23b601-966c-4aa7-9722-6bcb009200cc",
+      "table" : {
+        "id" : "2e039d0d-3257-4083-8b32-76d7cfa1f7fd",
+        "name" : "location",
+        "description" : "Hello mfcc",
+        "database_id" : "9d8cb9a9-9468-4801-a2e0-2dac8bc67c31",
+        "internal_name" : "mfcc",
+        "is_versioned" : true,
+        "is_public" : false,
+        "is_schema_public" : false,
+        "owned_by" : "cd5bab0d-7799-4069-85fb-c5d738572a0b"
+      },
+      "column" : {
+        "id" : "af362ac6-5dbb-4ede-83ea-5d94b39641c8",
+        "name" : "ID",
+        "database_id" : "9d8cb9a9-9468-4801-a2e0-2dac8bc67c31",
+        "table_id" : "2e039d0d-3257-4083-8b32-76d7cfa1f7fd",
+        "internal_name" : "id",
+        "type" : "bigint"
+      }
+    } ]
+  },
+  "created" : "2023-07-03 16:03:05",
+  "database_id" : "9d8cb9a9-9468-4801-a2e0-2dac8bc67c31",
+  "internal_name" : "mfcc",
+  "is_versioned" : true,
+  "is_schema_public" : false,
+  "queue_name" : "mfcc",
+  "queue_type" : "quorum",
+  "routing_key" : "dbrepo.9d8cb9a9-9468-4801-a2e0-2dac8bc67c31.2e039d0d-3257-4083-8b32-76d7cfa1f7fd",
+  "is_public" : false
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/table-9.json b/lib/java/dbrepo-core/src/main/resources/table-9.json
new file mode 100644
index 0000000000000000000000000000000000000000..dbe19481878204360154b01d4fa5f3e2d098f39d
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/table-9.json
@@ -0,0 +1,84 @@
+{
+  "id" : "9314294f-04fc-4354-8b1f-2a8aeb566453",
+  "name" : "Weather Location",
+  "identifiers" : [ ],
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "description" : "Location",
+  "columns" : [ {
+    "id" : "e03c7578-2d1a-4599-9b11-7174f40efc0a",
+    "name" : "location",
+    "size" : 255,
+    "database_id" : "c503d7f3-5952-4d97-b26a-da86bea4c20d",
+    "table_id" : "9314294f-04fc-4354-8b1f-2a8aeb566453",
+    "ord" : 0,
+    "internal_name" : "location",
+    "type" : "varchar",
+    "is_null_allowed" : false
+  }, {
+    "id" : "03c07223-17e1-4af5-b1ae-ef9ab434fe2d",
+    "name" : "lat",
+    "size" : 10,
+    "d" : 0,
+    "database_id" : "c503d7f3-5952-4d97-b26a-da86bea4c20d",
+    "table_id" : "9314294f-04fc-4354-8b1f-2a8aeb566453",
+    "ord" : 1,
+    "internal_name" : "lat",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  }, {
+    "id" : "ee6590db-923b-4234-beb8-3120da055cf6",
+    "name" : "lng",
+    "size" : 10,
+    "d" : 0,
+    "database_id" : "c503d7f3-5952-4d97-b26a-da86bea4c20d",
+    "table_id" : "9314294f-04fc-4354-8b1f-2a8aeb566453",
+    "ord" : 2,
+    "internal_name" : "lng",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  } ],
+  "constraints" : {
+    "uniques" : [ ],
+    "checks" : [ ],
+    "foreign_keys" : [ ],
+    "primary_key" : [ {
+      "id" : "e03c7578-2d1a-4599-9b11-7174f40efc0a",
+      "table" : {
+        "id" : "9314294f-04fc-4354-8b1f-2a8aeb566453",
+        "name" : "Weather Location",
+        "description" : "Location",
+        "database_id" : "c503d7f3-5952-4d97-b26a-da86bea4c20d",
+        "internal_name" : "weather_location",
+        "is_versioned" : true,
+        "is_public" : false,
+        "is_schema_public" : true,
+        "owned_by" : "cd5bab0d-7799-4069-85fb-c5d738572a0b"
+      },
+      "column" : {
+        "id" : "e03c7578-2d1a-4599-9b11-7174f40efc0a",
+        "name" : "location",
+        "database_id" : "c503d7f3-5952-4d97-b26a-da86bea4c20d",
+        "table_id" : "9314294f-04fc-4354-8b1f-2a8aeb566453",
+        "internal_name" : "location",
+        "type" : "varchar"
+      }
+    } ]
+  },
+  "created" : "2023-07-03 16:03:05",
+  "database_id" : "c503d7f3-5952-4d97-b26a-da86bea4c20d",
+  "internal_name" : "weather_location",
+  "is_versioned" : true,
+  "is_schema_public" : true,
+  "queue_name" : "weather_location",
+  "queue_type" : "quorum",
+  "routing_key" : "dbrepo.c503d7f3-5952-4d97-b26a-da86bea4c20d.9314294f-04fc-4354-8b1f-2a8aeb566453",
+  "is_public" : false
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/unit-1.json b/lib/java/dbrepo-core/src/main/resources/unit-1.json
new file mode 100644
index 0000000000000000000000000000000000000000..69d0d63483ebaae164684a353cd6d7abe1725313
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/unit-1.json
@@ -0,0 +1,6 @@
+{
+  "id" : "1fee60e4-42f8-4883-85a8-e282fddf6a62",
+  "uri" : "http://www.ontology-of-units-of-measure.org/resource/om-2/millimetre",
+  "name" : "millimetre",
+  "description" : "The millimetre is a unit of length defined as 1.0e-3 metre."
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/unit-2.json b/lib/java/dbrepo-core/src/main/resources/unit-2.json
new file mode 100644
index 0000000000000000000000000000000000000000..5e555d39a106b3cdc56bfee4795f43b012e6fc01
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/unit-2.json
@@ -0,0 +1,6 @@
+{
+  "id" : "d88591a9-5171-4b12-8381-bcff1cfe7442",
+  "uri" : "http://www.ontology-of-units-of-measure.org/resource/om-2/tonne",
+  "name" : "tonne",
+  "description" : "The tonne is a unit of mass defined as 1000 kilogram."
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/user-1.json b/lib/java/dbrepo-core/src/main/resources/user-1.json
new file mode 100644
index 0000000000000000000000000000000000000000..3eebc1e4847a3bdc560be2872a9525eab67d7e33
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/user-1.json
@@ -0,0 +1,14 @@
+{
+  "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+  "name" : "John Doe",
+  "username" : "junit1",
+  "attributes" : {
+    "theme" : "light",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "affiliation" : "TU Graz",
+    "language" : "en"
+  },
+  "qualified_name" : "John Doe — @junit1",
+  "given_name" : "John",
+  "family_name" : "Doe"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/user-2.json b/lib/java/dbrepo-core/src/main/resources/user-2.json
new file mode 100644
index 0000000000000000000000000000000000000000..e935687704060b4c15880f8fc21970aaa09eab72
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/user-2.json
@@ -0,0 +1,14 @@
+{
+  "id" : "eeb9a51b-4cd8-4039-90bf-e24f17372f7c",
+  "name" : "Jane Doe",
+  "username" : "junit2",
+  "attributes" : {
+    "theme" : "light",
+    "orcid" : "https://orcid.org/0000-0002-9272-6225",
+    "affiliation" : "TU Wien",
+    "language" : "de"
+  },
+  "qualified_name" : "Jane Doe — @junit2",
+  "given_name" : "Jane",
+  "family_name" : "Doe"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/user-3.json b/lib/java/dbrepo-core/src/main/resources/user-3.json
new file mode 100644
index 0000000000000000000000000000000000000000..73f468c45783922c8504ae072228bbe3ad2a9d17
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/user-3.json
@@ -0,0 +1,12 @@
+{
+  "id" : "7b080e33-d8db-4276-9d53-47208e657006",
+  "name" : "System System",
+  "username" : "junit3",
+  "attributes" : {
+    "theme" : "light",
+    "affiliation" : "TU Wien"
+  },
+  "qualified_name" : "System System — @junit3",
+  "given_name" : "System",
+  "family_name" : "System"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/user-4.json b/lib/java/dbrepo-core/src/main/resources/user-4.json
new file mode 100644
index 0000000000000000000000000000000000000000..587e6f55009211a12938c6895c1cddb3459d9106
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/user-4.json
@@ -0,0 +1,12 @@
+{
+  "id" : "791d58c5-bfab-4520-b4fc-b44d4ab9feb0",
+  "name" : "JUnit 4",
+  "username" : "junit4",
+  "attributes" : {
+    "theme" : "light",
+    "affiliation" : "TU Wien"
+  },
+  "qualified_name" : "JUnit 4 — @junit4",
+  "given_name" : "JUnit",
+  "family_name" : "4"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/user-5.json b/lib/java/dbrepo-core/src/main/resources/user-5.json
new file mode 100644
index 0000000000000000000000000000000000000000..11391836803353b93f6721611f57f28f3465e3e1
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/user-5.json
@@ -0,0 +1,12 @@
+{
+  "id" : "28ff851d-d7bc-4422-959c-edd7a5b15630",
+  "name" : "No Body",
+  "username" : "nobody",
+  "attributes" : {
+    "theme" : "dark",
+    "affiliation" : "TU Wien"
+  },
+  "qualified_name" : "No Body — @nobody",
+  "given_name" : "No",
+  "family_name" : "Body"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/view-1.json b/lib/java/dbrepo-core/src/main/resources/view-1.json
new file mode 100644
index 0000000000000000000000000000000000000000..aafefbbb0350a0f08deeaaef72529115cffdaf9a
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/view-1.json
@@ -0,0 +1,86 @@
+{
+  "id" : "7d712cf7-78c7-4a47-90b0-d6b9f7f19b70",
+  "name" : "JUnit",
+  "identifiers" : [ {
+    "id" : "e2d831c2-3694-4fdc-8c48-7a7e94b73c43",
+    "links" : {
+      "self" : "/api/identifier/e2d831c2-3694-4fdc-8c48-7a7e94b73c43",
+      "data" : "/api/database/b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425/view/7d712cf7-78c7-4a47-90b0-d6b9f7f19b70/data",
+      "self_html" : "/pid/e2d831c2-3694-4fdc-8c48-7a7e94b73c43"
+    },
+    "type" : "view",
+    "titles" : [ ],
+    "descriptions" : [ ],
+    "query" : "SELECT `location`, `lat`, `lng` FROM `weather_location`",
+    "execution" : "2019-03-03T04:45:52.000Z",
+    "publisher" : "Polish Government",
+    "owner" : {
+      "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+      "username" : "junit1",
+      "name" : "John Doe",
+      "orcid" : "https://orcid.org/0000-0003-4216-302X",
+      "qualified_name" : "John Doe — @junit1",
+      "given_name" : "John",
+      "family_name" : "Doe"
+    },
+    "licenses" : [ {
+      "identifier" : "MIT",
+      "uri" : "https://opensource.org/license/mit/"
+    } ],
+    "creators" : [ ],
+    "status" : "published",
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "view_id" : "7d712cf7-78c7-4a47-90b0-d6b9f7f19b70",
+    "query_normalized" : "SELECT `location`, `lat`, `lng` FROM `weather_location`",
+    "query_hash" : "dc81a6877c7c51a6a6f406e1fc2a255e44a0d49a20548596e0d583c3eb849c23",
+    "publication_day" : 10,
+    "publication_month" : 7,
+    "publication_year" : 2023
+  } ],
+  "query" : "SELECT `location`, `lat`, `lng` FROM `weather_location`",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "columns" : [ {
+    "id" : "ebf2c5ce-4deb-4cc6-b6f6-61f5d3f6fc98",
+    "name" : "location",
+    "size" : 255,
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "ord" : 0,
+    "internal_name" : "location",
+    "type" : "varchar",
+    "is_null_allowed" : false
+  }, {
+    "id" : "d6ba3475-cefa-4771-aaa1-9274f16335ee",
+    "name" : "lat",
+    "size" : 10,
+    "d" : 0,
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "ord" : 1,
+    "internal_name" : "lat",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  }, {
+    "id" : "4f189a5f-c9ca-4518-9758-1a0730f6276b",
+    "name" : "lng",
+    "size" : 10,
+    "d" : 0,
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "ord" : 2,
+    "internal_name" : "lng",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  } ],
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "internal_name" : "junit",
+  "is_public" : false,
+  "is_schema_public" : false,
+  "initial_view" : false,
+  "query_hash" : "dc81a6877c7c51a6a6f406e1fc2a255e44a0d49a20548596e0d583c3eb849c23"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/view-2.json b/lib/java/dbrepo-core/src/main/resources/view-2.json
new file mode 100644
index 0000000000000000000000000000000000000000..908f92557a0102b43f3f57506e081966526c2e89
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/view-2.json
@@ -0,0 +1,58 @@
+{
+  "id" : "1921a0a0-e4b0-4d12-a05f-be920af9b5ce",
+  "name" : "JUnit2",
+  "query" : "select `date`, `location` as loc, `mintemp`, `rainfall` from `weather_aus` where `location` = 'Albury'",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "columns" : [ {
+    "id" : "8fb30bce-04a8-4e9a-9c6b-0776eda3aab8",
+    "name" : "Date",
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "ord" : 0,
+    "internal_name" : "date",
+    "type" : "date",
+    "is_null_allowed" : true
+  }, {
+    "id" : "d43f9940-ae27-4d81-b17b-ccbaf578186c",
+    "name" : "loc",
+    "size" : 255,
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "ord" : 1,
+    "internal_name" : "loc",
+    "type" : "varchar",
+    "is_null_allowed" : true
+  }, {
+    "id" : "b47733bb-aeea-414d-811e-405c64463730",
+    "name" : "Rainfall",
+    "size" : 10,
+    "d" : 0,
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "ord" : 2,
+    "internal_name" : "rainfall",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  }, {
+    "id" : "2b467e3a-acef-4944-be19-b4b0680874c2",
+    "name" : "MinTemp",
+    "size" : 10,
+    "d" : 0,
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "ord" : 3,
+    "internal_name" : "mintemp",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  } ],
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "internal_name" : "junit2",
+  "is_public" : true,
+  "is_schema_public" : true,
+  "initial_view" : false,
+  "query_hash" : "987fc946772ffb6d85060262dcb5df419692a1f6772ea995e3dedb53c191e984"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/view-3.json b/lib/java/dbrepo-core/src/main/resources/view-3.json
new file mode 100644
index 0000000000000000000000000000000000000000..43369a4a84199d2f50ae5b0fc11c299eccfd4a13
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/view-3.json
@@ -0,0 +1,58 @@
+{
+  "id" : "88940939-d456-4aae-88a6-f2b6b343c614",
+  "name" : "JUnit3",
+  "query" : "select w.`mintemp`, w.`rainfall`, w.`location`, m.`date` from `weather_aus` w join `junit2` m on m.`location` = w.`location` and m.`date` = w.`date`",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "columns" : [ {
+    "id" : "129839cb-dbd7-492d-8fd0-ee44a8f51c4d",
+    "name" : "MinTemp",
+    "size" : 10,
+    "d" : 0,
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "ord" : 0,
+    "internal_name" : "mintemp",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  }, {
+    "id" : "e229d80a-c25c-4fbe-8f31-bbb2e1dff3d5",
+    "name" : "Rainfall",
+    "size" : 10,
+    "d" : 0,
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "ord" : 1,
+    "internal_name" : "rainfall",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  }, {
+    "id" : "12083a5d-fdd3-41db-9f92-d1298558e477",
+    "name" : "Location",
+    "size" : 255,
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "ord" : 2,
+    "internal_name" : "location",
+    "type" : "varchar",
+    "is_null_allowed" : true
+  }, {
+    "id" : "668f8a87-1fa6-4be7-9761-1844aa8315a4",
+    "name" : "Date",
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "ord" : 3,
+    "internal_name" : "date",
+    "type" : "date",
+    "is_null_allowed" : true
+  } ],
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "internal_name" : "junit3",
+  "is_public" : true,
+  "is_schema_public" : false,
+  "initial_view" : false,
+  "query_hash" : "bbbaa56a5206b3dc3e6cf9301b0db9344eb6f19b100c7b88550ffb597a0bd255"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/view-4.json b/lib/java/dbrepo-core/src/main/resources/view-4.json
new file mode 100644
index 0000000000000000000000000000000000000000..7469c70a8e59a69de7046a15ecf120181f166ad4
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/view-4.json
@@ -0,0 +1,157 @@
+{
+  "id" : "13b36fa0-a65a-4ccf-80b1-5b3a2444a41a",
+  "name" : "Mock View",
+  "query" : "SELECT `animal_name`, `hair`, `feathers`, `eggs`, `milk`, `airborne`, `aquatic`, `predator`, `backbone`, `breathes`, `venomous`, `fins`, `legs`, `tail`, `domestic`, `catsize`, `class_type` FROM `zoo` WHERE `class_type` = 1",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "columns" : [ {
+    "id" : "4efd4cbb-ca2e-48e2-8f40-37514956aa67",
+    "name" : "Animal Name",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 0,
+    "internal_name" : "animal_name",
+    "type" : "varchar",
+    "is_null_allowed" : true
+  }, {
+    "id" : "53061685-c1db-4df6-ad4e-8f384a200104",
+    "name" : "Hair",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 1,
+    "internal_name" : "hair",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "643f9cda-8db1-47a4-bb08-c10e78e54c10",
+    "name" : "Feathers",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 2,
+    "internal_name" : "feathers",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "efeacc15-3b31-4a9f-9dba-f07d62dcddd6",
+    "name" : "Eggs",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 3,
+    "internal_name" : "eggs",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "0319db31-473a-47bc-bb9d-fa1edf82fcd5",
+    "name" : "Milk",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 4,
+    "internal_name" : "milk",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "9ba789ca-59cf-4480-b9f6-3b957b1d7f5c",
+    "name" : "Airborne",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 5,
+    "internal_name" : "airborne",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "81c42954-fd1a-4fef-adb1-bc4945469e26",
+    "name" : "Aquantic",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 6,
+    "internal_name" : "aquantic",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "49a38905-52a2-4a9b-b7b9-5e1dcf799b2a",
+    "name" : "Predator",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 7,
+    "internal_name" : "predator",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "1e1a9b6b-5aee-4773-b52d-ea56a5d1e2c8",
+    "name" : "Backbone",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 8,
+    "internal_name" : "backbone",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "42ede62a-ae98-4a14-ba54-76b8ba1c580f",
+    "name" : "Breathes",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 9,
+    "internal_name" : "breathes",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "0af0f84a-5a58-418a-8bbc-bde29ed0cda0",
+    "name" : "Venomous",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 10,
+    "internal_name" : "venomous",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "d9cb30a2-1566-4bd1-899d-060a8ba47722",
+    "name" : "Fin",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 11,
+    "internal_name" : "fin",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "e69f7f75-3731-4706-8193-0393aa0c08a7",
+    "name" : "Legs",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 12,
+    "internal_name" : "legs",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "4441630e-7dfa-4046-8bc2-929860f1c66e",
+    "name" : "Tail",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 13,
+    "internal_name" : "tail",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  }, {
+    "id" : "f0a12be0-0b26-4686-bf7e-539cdc7e71b4",
+    "name" : "Domestic",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 14,
+    "internal_name" : "domestic",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "b60abdcc-5786-40f8-a309-e4467f7d963c",
+    "name" : "Catsize",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 15,
+    "internal_name" : "catsize",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "6d5877e2-daef-43d6-a1b6-1aff3ab1a9a2",
+    "name" : "Class Type",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 16,
+    "internal_name" : "class_type",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  } ],
+  "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+  "internal_name" : "mock_view",
+  "is_public" : true,
+  "is_schema_public" : false,
+  "initial_view" : false,
+  "query_hash" : "3561cd0bb0b0e94d6f15ae602134252a5760d09d660a71a4fb015b6991c8ba0b"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/view-5.json b/lib/java/dbrepo-core/src/main/resources/view-5.json
new file mode 100644
index 0000000000000000000000000000000000000000..105b5b88a38d27434bad01e0ac772ed732798d2f
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/view-5.json
@@ -0,0 +1,50 @@
+{
+  "id" : "bc6b8507-51f1-4d05-bb0c-1f619a991dec",
+  "name" : "Mock View",
+  "query" : "SELECT `location`, `lat`, `lng` FROM `weather_location` WHERE `location` = 'Albury'",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "columns" : [ {
+    "id" : "795faa78-7ebb-4dd5-9eb1-e54a9192d0b5",
+    "name" : "location",
+    "size" : 255,
+    "database_id" : "9d8cb9a9-9468-4801-a2e0-2dac8bc67c31",
+    "ord" : 0,
+    "internal_name" : "location",
+    "type" : "varchar",
+    "is_null_allowed" : false
+  }, {
+    "id" : "f316ced5-7774-4656-aa7f-a874622d99b3",
+    "name" : "lat",
+    "size" : 10,
+    "d" : 0,
+    "database_id" : "9d8cb9a9-9468-4801-a2e0-2dac8bc67c31",
+    "ord" : 1,
+    "internal_name" : "lat",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  }, {
+    "id" : "11cb1aa2-8582-45ef-a3bb-7056aa94cdf1",
+    "name" : "lng",
+    "size" : 10,
+    "d" : 0,
+    "database_id" : "9d8cb9a9-9468-4801-a2e0-2dac8bc67c31",
+    "ord" : 2,
+    "internal_name" : "lng",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  } ],
+  "database_id" : "9d8cb9a9-9468-4801-a2e0-2dac8bc67c31",
+  "internal_name" : "mock_view",
+  "is_public" : true,
+  "is_schema_public" : true,
+  "initial_view" : false,
+  "query_hash" : "120f32478aaff874c25ab32eceb9f00b64cc9d422831046f2f5d43953aca01e7"
+}
\ No newline at end of file