diff --git a/.docs/changelog.md b/.docs/changelog.md
index 1f4a4ed9040a1b623f9179035c1f11b576b88034..fd2e7b0d9cf3b7852a919c2f05cf11f56a181710 100644
--- a/.docs/changelog.md
+++ b/.docs/changelog.md
@@ -2,6 +2,19 @@
 author: Martin Weise
 ---
 
+## v1.8.2 (2025-04-??)
+
+#### Features
+
+* Added structured logging through the `fluentd` protocol via the lightweight fluentbit in a 
+  separate [Logging Service](../api/logging-service)
+  in [#524](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/issues/524).
+
+#### Changes
+
+* Improved internal packaging mechanism that is compatible with multiarch deployments 
+  in [#523](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/issues/523).
+
 ## v1.8.1 (2025-04-13)
 
 #### Changes
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 2d5f3a42823c4d25eea512cec08fc2248b4e32d3..615ad044bebdfad3a93d89754f30ee927eaf4461 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -15,7 +15,7 @@ variables:
   APP_VERSION: "1.8.1"
   CHART_VERSION: "1.8.1"
   SUPPORTED_VERSIONS: "1.7.3, 1.8.0, 1.8.1"
-  SUPPORTED_ARCH: "linux/amd64,linux/arm64"
+  SUPPORTED_ARCH: "linux/amd64"
   MAINTAINED_SERVICES: "analyse-service, auth-service-init, dashboard-service, dashboard-service-init, data-service, metadata-service, search-db, search-service, search-service-init, storage-service-init, ui"
   CACHE_FALLBACK_KEY: "${CI_DEFAULT_BRANCH}"
   # This will supress any download for dependencies and plugins or upload messages which would clutter the console log.
@@ -155,10 +155,10 @@ build-metadata-service:
     - master
   needs:
     - build-java-lib
-  dependencies:
-    - build-java-lib
+  before_script:
+    - mvn -f ./lib/java/dbrepo-core/pom.xml -q clean install $MAVEN_OPTS -DskipTests
   script:
-    - "mvn -f ./dbrepo-metadata-service/pom.xml clean package $MAVEN_OPTS -DskipTests"
+    - "mvn -f ./dbrepo-metadata-service/pom.xml -q clean package $MAVEN_OPTS -DskipTests"
   # Compiled classes are needed for SonarQube in later stages
   artifacts:
     when: always
@@ -200,11 +200,15 @@ build-java-lib:
     - merge_requests
     - master
   script:
-    - "mvn -f ./lib/java/dbrepo-core/pom.xml clean install $MAVEN_OPTS -DskipTests"
+    - "mvn -f ./lib/java/dbrepo-core/pom.xml clean package install $MAVEN_OPTS -DskipTests"
+    - "mvn deploy:deploy-file $MAVEN_OPTS -Dfile=./lib/java/dbrepo-core/target/dbrepo-core-$APP_VERSION.jar -DgroupId=at.ac.tuwien.ifs.dbrepo -DartifactId=dbrepo-core -Dversion=$APP_VERSION -Dpackaging=jar -Durl=file:./dbrepo-data-service/lib/ -DrepositoryId=maven-repository -DupdateReleaseInfo=true"
+    - "mvn deploy:deploy-file $MAVEN_OPTS -Dfile=./lib/java/dbrepo-core/target/dbrepo-core-$APP_VERSION.jar -DgroupId=at.ac.tuwien.ifs.dbrepo -DartifactId=dbrepo-core -Dversion=$APP_VERSION -Dpackaging=jar -Durl=file:./dbrepo-metadata-service/lib/ -DrepositoryId=maven-repository -DupdateReleaseInfo=true"
   artifacts:
     when: always
     paths:
       - ./lib/java/dbrepo-core/target/classes
+      - ./dbrepo-data-service/lib
+      - ./dbrepo-metadata-service/lib
 
 build-data-service:
   image: maven:3-openjdk-${JAVA_VERSION}
@@ -216,8 +220,10 @@ build-data-service:
     - build-java-lib
   dependencies:
     - build-java-lib
+  before_script:
+    - mvn -f ./lib/java/dbrepo-core/pom.xml -q clean install $MAVEN_OPTS -DskipTests
   script:
-    - "mvn -f ./dbrepo-data-service/pom.xml clean package $MAVEN_OPTS -DskipTests"
+    - "mvn -f ./dbrepo-data-service/pom.xml -q clean package $MAVEN_OPTS -DskipTests"
   # Compiled classes are needed for SonarQube in later stages
   artifacts:
     when: always
@@ -264,14 +270,13 @@ build-images:
   only:
     - merge_requests
     - master
+  variables:
+    DOCKER_BUILDKIT: 1
   before_script:
-    - "apk add --no-cache make"
+    - "apk add --no-cache make maven openjdk17-jdk"
     - echo "$CI_REGISTRY_PASSWORD" | docker login --username "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY_URL
   script:
-    - docker build --network=host -t dbrepo-core:build --target build ./lib/java/dbrepo-core
-    - docker build --network=host -t dbrepo-data-service:build --target build dbrepo-data-service
-    - docker build --network=host -t dbrepo-metadata-service:build --target build dbrepo-metadata-service
-    - docker compose build -q --parallel
+    - make build-images
 
 build-helm:
   image: docker.io/docker:${DOCKER_VERSION}-dind
@@ -295,6 +300,7 @@ test-metadata-service:
     - master
   needs:
     - build-java-lib
+    - build-metadata-service
   dependencies:
     - build-java-lib
   script:
@@ -317,11 +323,11 @@ test-data-service:
     - merge_requests
     - master
   needs:
+    - build-java-lib
     - build-data-service
   dependencies:
-    - build-data-service
+    - build-java-lib
   script:
-    - "mvn -f ./dbrepo-metadata-service/pom.xml clean install -DskipTests $MAVEN_OPTS"
     - "mvn -f ./dbrepo-data-service/pom.xml clean test verify $MAVEN_OPTS"
     - "cat ./dbrepo-data-service/report/target/site/jacoco-aggregate/index.html | grep -o 'Total[^%]*%' | sed 's/<.*>/ /; s/Total/Jacoco Coverage Total:/'"
   artifacts:
diff --git a/dbrepo-analyse-service/Dockerfile b/dbrepo-analyse-service/Dockerfile
index 26ea3ce65c2336bfd065e891c8d88ea47aaf73a3..df313ec934c825ab20b71da9a29f6e3f272a3462 100644
--- a/dbrepo-analyse-service/Dockerfile
+++ b/dbrepo-analyse-service/Dockerfile
@@ -1,4 +1,4 @@
-FROM python:3.11-alpine3.21
+FROM --platform=$BUILDPLATFORM python:3.11-alpine3.21
 LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at"
 
 RUN apk --no-cache add \
diff --git a/dbrepo-auth-service/init/Dockerfile b/dbrepo-auth-service/init/Dockerfile
index b325b35435431552c9c5898dc03356f556d1f0c2..bd692732d619340ed2f0ee72ca8cbff7189aa6e2 100644
--- a/dbrepo-auth-service/init/Dockerfile
+++ b/dbrepo-auth-service/init/Dockerfile
@@ -1,4 +1,4 @@
-FROM python:3.11-alpine
+FROM --platform=$BUILDPLATFORM python:3.11-alpine3.21
 LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at"
 
 RUN apk add --no-cache alpine-sdk \
diff --git a/dbrepo-auth-service/listeners/pom.xml b/dbrepo-auth-service/listeners/pom.xml
index e70201b96ac3d853a0274c7f06499d336f1c27cf..d70af41ef988cf4f81fc2f559f3a14d1187f22b1 100644
--- a/dbrepo-auth-service/listeners/pom.xml
+++ b/dbrepo-auth-service/listeners/pom.xml
@@ -10,7 +10,7 @@
         <version>24.0.5</version>
     </parent>
 
-    <groupId>at.tuwien</groupId>
+    <groupId>at.ac.tuwien.ifs.dbrepo</groupId>
     <artifactId>create-event-listener</artifactId>
     <name>dbrepo-auth-service</name>
     <version>24.0.5</version>
diff --git a/dbrepo-dashboard-service/Dockerfile b/dbrepo-dashboard-service/Dockerfile
index e739245d3031956fe99203167a25f72b9c06ed3b..62caad802ff5e7a852e9d47bbd8d41c79bb2e261 100644
--- a/dbrepo-dashboard-service/Dockerfile
+++ b/dbrepo-dashboard-service/Dockerfile
@@ -1,4 +1,4 @@
-FROM python:3.11-alpine3.21
+FROM --platform=$BUILDPLATFORM python:3.11-alpine3.21
 LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at"
 
 RUN apk add --no-cache \
diff --git a/dbrepo-dashboard-service/init.Dockerfile b/dbrepo-dashboard-service/init.Dockerfile
index 487e3e280e245e8f01a2a2caf0c8bf202765bc0c..4d00c467cd4621e894c456e4a7325d87108ccfb3 100644
--- a/dbrepo-dashboard-service/init.Dockerfile
+++ b/dbrepo-dashboard-service/init.Dockerfile
@@ -1,4 +1,4 @@
-FROM python:3.11-alpine3.21
+FROM --platform=$BUILDPLATFORM python:3.11-alpine3.21
 LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at"
 
 RUN apk add --no-cache \
diff --git a/dbrepo-dashboard-ui/Dockerfile b/dbrepo-dashboard-ui/Dockerfile
index daf9ef46dd808a99eb6bb776945f014cdf6f9c8f..83683e3926506228216d274c3d50eea2dbef3d9f 100644
--- a/dbrepo-dashboard-ui/Dockerfile
+++ b/dbrepo-dashboard-ui/Dockerfile
@@ -1,4 +1,4 @@
-FROM docker.io/bitnami/grafana:11.5.3 AS runtime
+FROM --platform=$BUILDPLATFORM docker.io/bitnami/grafana:11.5.3 AS runtime
 LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at"
 
 COPY --chown=grafana:grafana ./grafana.ini ./conf/grafana.ini
diff --git a/dbrepo-data-service/.gitignore b/dbrepo-data-service/.gitignore
index d39a47ee0fab72fbe4fd7f5ae968ff2f3bc3de78..3e5eeee0c8f132e1eae76cc90a3f0a418ef5f407 100644
--- a/dbrepo-data-service/.gitignore
+++ b/dbrepo-data-service/.gitignore
@@ -7,6 +7,9 @@ target/
 ### Environment ###
 .env
 
+### local repo ###
+lib/at/
+
 ### Generated ###
 ready
 mapping.xml
diff --git a/dbrepo-data-service/Dockerfile b/dbrepo-data-service/Dockerfile
index 7468f1c568d033c86d60579ed2c35576bcaac736..537f88fe71ec84b8fcdd29b671c172300df71b8e 100644
--- a/dbrepo-data-service/Dockerfile
+++ b/dbrepo-data-service/Dockerfile
@@ -1,38 +1,37 @@
 ###### FIRST STAGE ######
-FROM dbrepo-core:build AS dependency
-LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at"
-
-###### SECOND STAGE ######
-FROM maven:3-amazoncorretto-17 AS build
+FROM --platform=$BUILDPLATFORM maven:3-amazoncorretto-17 AS build
 LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at"
 
 COPY ./pom.xml ./
 
 RUN mvn -fn dependency:go-offline
 
-COPY --from=dependency /root/.m2/repository/at/ac/tuwien/ifs/dbrepo /root/.m2/repository/at/ac/tuwien/ifs/dbrepo
-
+COPY ./lib ./lib
 COPY ./querystore ./querystore
 COPY ./report ./report
 COPY ./rest-service ./rest-service
 COPY ./services ./services
 
 # Make sure it compiles
-RUN mvn -fn clean package -DskipTests
+RUN mvn -q clean package -DskipTests
 
-###### THIRD STAGE ######
-FROM amazoncorretto:17-alpine3.19 AS runtime
+###### SECOND STAGE ######
+FROM --platform=$BUILDPLATFORM amazoncorretto:17-alpine3.21 AS runtime
 LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at"
 
-RUN apk add --no-cache curl bash jq
+RUN apk --no-cache add \
+    bash \
+    curl \
+    jq
 
 WORKDIR /app
 
-RUN adduser -D dbrepo --uid 1001
+RUN adduser -D dbrepo --uid 1001 && \
+    chown -R 1001:1001 /app
 
 USER 1001
 
-COPY --from=build --chown=1001 ./rest-service/target/rest-service-*.jar ./data-service.jar
+COPY --from=build --chown=1001 ./rest-service/target/*rest-service-*.jar ./data-service.jar
 
 # non-root port
 EXPOSE 8080
diff --git a/dbrepo-data-service/README.md b/dbrepo-data-service/README.md
index 68c317174da2f9c5936f70f40f9d74ad7f7d4130..f15c7ff746b07a158bbddd6fc0c2fc4facb6f457 100644
--- a/dbrepo-data-service/README.md
+++ b/dbrepo-data-service/README.md
@@ -1,5 +1,14 @@
 # Data Service
 
+## Build
+
+Before testing, it is recommended to (re-)build the `MapStruct` mappers in case they were modified using the `package`
+target:
+
+```shell
+mvn clean package
+```
+
 ## Test
 
 Run all unit and integration tests and create an HTML+TXT coverage report located in the `report` module:
diff --git a/dbrepo-data-service/lib/.gitkeep b/dbrepo-data-service/lib/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/dbrepo-data-service/pom.xml b/dbrepo-data-service/pom.xml
index 6f67e74b7043a9df43bd38d0a5a2bbd3cd4e1050..4593cb0ae5d7b18c8e1dd09ee8a12bab053fceb6 100644
--- a/dbrepo-data-service/pom.xml
+++ b/dbrepo-data-service/pom.xml
@@ -13,9 +13,9 @@
         <url>https://www.tuwien.ac.at</url>
     </organization>
 
-    <groupId>at.ac.tuwien.ac.at.ifs.dbrepo</groupId>
-    <artifactId>dbrepo-data-service</artifactId>
-    <name>dbrepo-data-service</name>
+    <groupId>at.ac.tuwien.ifs.dbrepo</groupId>
+    <artifactId>data-service</artifactId>
+    <name>data-service</name>
     <version>1.8.1</version>
 
     <description>Service that manages the data</description>
@@ -96,11 +96,7 @@
         <dependency>
             <groupId>at.ac.tuwien.ifs.dbrepo</groupId>
             <artifactId>dbrepo-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-test</artifactId>
+            <version>1.8.1</version>
         </dependency>
         <!-- Spark -->
         <dependency>
@@ -140,6 +136,13 @@
             <artifactId>hadoop-aws</artifactId>
             <version>${hadoop.version}</version>
         </dependency>
+        <!-- Api -->
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <version>${lombok.version}</version>
+            <scope>provided</scope>
+        </dependency>
         <!-- Data Source -->
         <dependency>
             <groupId>org.mariadb.jdbc</groupId>
@@ -330,6 +333,16 @@
         </plugins>
     </build>
 
+    <repositories>
+        <repository>
+            <id>dbrepo-maven-repo</id>
+            <url>file:///${project.basedir}/lib</url>
+            <snapshots>
+                <enabled>true</enabled>
+            </snapshots>
+        </repository>
+    </repositories>
+
     <licenses>
         <license>
             <name>Apache-2.0</name>
diff --git a/dbrepo-data-service/querystore/pom.xml b/dbrepo-data-service/querystore/pom.xml
index 5f58c03d52f654815cbe7f631f42e00c3ace2e42..df7ebf027142fe95303824142dec822f58bf76bd 100644
--- a/dbrepo-data-service/querystore/pom.xml
+++ b/dbrepo-data-service/querystore/pom.xml
@@ -4,13 +4,13 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
-        <groupId>at.ac.tuwien.ac.at.ifs.dbrepo</groupId>
-        <artifactId>dbrepo-data-service</artifactId>
+        <groupId>at.ac.tuwien.ifs.dbrepo</groupId>
+        <artifactId>data-service</artifactId>
         <version>1.8.1</version>
     </parent>
 
-    <artifactId>dbrepo-data-service-querystore</artifactId>
-    <name>dbrepo-data-service-querystore</name>
+    <name>querystore</name>
+    <artifactId>querystore</artifactId>
     <version>1.8.1</version>
 
     <dependencies/>
diff --git a/dbrepo-data-service/querystore/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/querystore/Query.java b/dbrepo-data-service/querystore/src/main/java/at/ac/tuwien/ifs/dbrepo/querystore/Query.java
similarity index 97%
rename from dbrepo-data-service/querystore/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/querystore/Query.java
rename to dbrepo-data-service/querystore/src/main/java/at/ac/tuwien/ifs/dbrepo/querystore/Query.java
index 15b96d573982197526ba2ee18ccb8d2d75b43ea5..d6432a40a7b6ba6b252d07b9d6f81c18d2bc008f 100644
--- a/dbrepo-data-service/querystore/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/querystore/Query.java
+++ b/dbrepo-data-service/querystore/src/main/java/at/ac/tuwien/ifs/dbrepo/querystore/Query.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.querystore;
+package at.ac.tuwien.ifs.dbrepo.querystore;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
diff --git a/dbrepo-data-service/report/pom.xml b/dbrepo-data-service/report/pom.xml
index 54eb9dae65f3ab60239db3f63c39e68ee49206d4..31dc7e5dcf938186053181c83c8749e7607a58f2 100644
--- a/dbrepo-data-service/report/pom.xml
+++ b/dbrepo-data-service/report/pom.xml
@@ -4,14 +4,15 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
-        <groupId>at.ac.tuwien.ac.at.ifs.dbrepo</groupId>
-        <artifactId>dbrepo-data-service</artifactId>
+        <groupId>at.ac.tuwien.ifs.dbrepo</groupId>
+        <artifactId>data-service</artifactId>
         <version>1.8.1</version>
     </parent>
 
+    <name>report</name>
     <artifactId>report</artifactId>
-    <name>dbrepo-data-service-report</name>
     <version>1.8.1</version>
+
     <description>
         This module is only intended for the pipeline coverage report. See the detailed report in the
         respective modules
@@ -19,14 +20,14 @@
 
     <dependencies>
         <dependency>
-            <groupId>at.ac.tuwien.ac.at.ifs.dbrepo</groupId>
+            <groupId>at.ac.tuwien.ifs.dbrepo</groupId>
             <artifactId>rest-service</artifactId>
-            <version>${project.version}</version>
+            <version>1.8.1</version>
         </dependency>
         <dependency>
-            <groupId>at.ac.tuwien.ac.at.ifs.dbrepo</groupId>
+            <groupId>at.ac.tuwien.ifs.dbrepo</groupId>
             <artifactId>services</artifactId>
-            <version>${project.version}</version>
+            <version>1.8.1</version>
         </dependency>
     </dependencies>
 
diff --git a/dbrepo-data-service/rest-service/pom.xml b/dbrepo-data-service/rest-service/pom.xml
index a51ca9424440f89b6ff240832741e4fd4f7f9d23..ab400a68ede799641f8c919a53163099bcf47646 100644
--- a/dbrepo-data-service/rest-service/pom.xml
+++ b/dbrepo-data-service/rest-service/pom.xml
@@ -4,18 +4,18 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
-        <groupId>at.ac.tuwien.ac.at.ifs.dbrepo</groupId>
-        <artifactId>dbrepo-data-service</artifactId>
+        <groupId>at.ac.tuwien.ifs.dbrepo</groupId>
+        <artifactId>data-service</artifactId>
         <version>1.8.1</version>
     </parent>
 
+    <name>rest-service</name>
     <artifactId>rest-service</artifactId>
-    <name>dbrepo-data-service-rest-service</name>
     <version>1.8.1</version>
 
     <dependencies>
         <dependency>
-            <groupId>at.ac.tuwien.ac.at.ifs.dbrepo</groupId>
+            <groupId>at.ac.tuwien.ifs.dbrepo</groupId>
             <artifactId>services</artifactId>
             <version>1.8.1</version>
         </dependency>
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/DataServiceApplication.java b/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/DataServiceApplication.java
similarity index 91%
rename from dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/DataServiceApplication.java
rename to dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/DataServiceApplication.java
index 8430543899ef67fa7daa0e22f57a4f0eb58eb7d4..612a4ff483e220d2a1fe3a33180a543dd303559b 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/DataServiceApplication.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/DataServiceApplication.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo;
+package at.ac.tuwien.ifs.dbrepo;
 
 import lombok.extern.log4j.Log4j2;
 import org.springframework.boot.SpringApplication;
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/SwaggerConfig.java b/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/config/SwaggerConfig.java
similarity index 97%
rename from dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/SwaggerConfig.java
rename to dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/config/SwaggerConfig.java
index 176f3449eebf415c01b0f7785e3e49c2cbbc5dcb..7c1ce104da5e022ce0cb788326799be997917079 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/SwaggerConfig.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/config/SwaggerConfig.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.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-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoints/AccessEndpoint.java b/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/AccessEndpoint.java
similarity index 98%
rename from dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoints/AccessEndpoint.java
rename to dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/AccessEndpoint.java
index 10961b435915fb531ed11c40e0956652a00140f5..70b3e59616d1e73244efe290abe633abcc7d9186 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoints/AccessEndpoint.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/AccessEndpoint.java
@@ -1,12 +1,12 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
 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.ac.tuwien.ac.at.ifs.dbrepo.service.AccessService;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.CacheService;
+import at.ac.tuwien.ifs.dbrepo.service.AccessService;
+import at.ac.tuwien.ifs.dbrepo.service.CacheService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.Content;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoints/DatabaseEndpoint.java b/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/DatabaseEndpoint.java
similarity index 88%
rename from dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoints/DatabaseEndpoint.java
rename to dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/DatabaseEndpoint.java
index 8ddaf80c102090af32254fc20ad8a9f8954d2084..34f42725c0f1e0f31afa345b2e359a31d288c202 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoints/DatabaseEndpoint.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/DatabaseEndpoint.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
@@ -7,11 +7,11 @@ 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.ac.tuwien.ac.at.ifs.dbrepo.mapper.MetadataMapper;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.AccessService;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.CacheService;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.ContainerService;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.DatabaseService;
+import at.ac.tuwien.ifs.dbrepo.mapper.DataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.AccessService;
+import at.ac.tuwien.ifs.dbrepo.service.CacheService;
+import at.ac.tuwien.ifs.dbrepo.service.ContainerService;
+import at.ac.tuwien.ifs.dbrepo.service.DatabaseService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.Content;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -36,18 +36,18 @@ import java.util.UUID;
 @RequestMapping(path = "/api/database")
 public class DatabaseEndpoint extends RestEndpoint {
 
+    private final DataMapper dataMapper;
     private final CacheService cacheService;
     private final AccessService accessService;
-    private final MetadataMapper metadataMapper;
     private final DatabaseService databaseService;
     private final ContainerService containerService;
 
     @Autowired
-    public DatabaseEndpoint(CacheService cacheService, AccessService accessService, DatabaseService databaseService,
-                            ContainerService containerService, MetadataMapper metadataMapper) {
+    public DatabaseEndpoint(DataMapper dataMapper, CacheService cacheService, AccessService accessService,
+                            DatabaseService databaseService, ContainerService containerService) {
+        this.dataMapper = dataMapper;
         this.cacheService = cacheService;
         this.accessService = accessService;
-        this.metadataMapper = metadataMapper;
         this.databaseService = databaseService;
         this.containerService = containerService;
     }
@@ -93,8 +93,8 @@ public class DatabaseEndpoint extends RestEndpoint {
         try {
             final DatabaseDto database = containerService.createDatabase(container, data);
             containerService.createQueryStore(container, data.getInternalName());
-            accessService.create(database, metadataMapper.createDatabaseDtoToPrivilegedUserDto(data), AccessTypeDto.WRITE_ALL);
-            accessService.create(database, metadataMapper.createDatabaseDtoToReadonlyUserDto(data), AccessTypeDto.READ);
+            accessService.create(database, dataMapper.createDatabaseDtoToPrivilegedUserDto(data), AccessTypeDto.WRITE_ALL);
+            accessService.create(database, dataMapper.createDatabaseDtoToReadonlyUserDto(data), AccessTypeDto.READ);
             return ResponseEntity.status(HttpStatus.CREATED)
                     .body(database);
         } catch (SQLException e) {
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoints/RestEndpoint.java b/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/RestEndpoint.java
similarity index 98%
rename from dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoints/RestEndpoint.java
rename to dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/RestEndpoint.java
index 778d38f30fed356bd0e96898e3d0020c5088505b..c8f1e8db6b1f4e132a4a3c4c9c3732aefa189721 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoints/RestEndpoint.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/RestEndpoint.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDetailsDto;
 import org.apache.spark.sql.Dataset;
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoints/SubsetEndpoint.java b/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/SubsetEndpoint.java
similarity index 98%
rename from dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoints/SubsetEndpoint.java
rename to dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/SubsetEndpoint.java
index a66f6f22d9d26d3b24e9b5b3ddf8d126724924f6..8c3656b0cd603f69946a8c69c6b02ff887ede6ad 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoints/SubsetEndpoint.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/SubsetEndpoint.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.ExportResourceDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
@@ -9,13 +9,13 @@ 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.ac.tuwien.ac.at.ifs.dbrepo.gateway.MetadataServiceGateway;
-import at.ac.tuwien.ac.at.ifs.dbrepo.mapper.MariaDbMapper;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.CacheService;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.DatabaseService;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.StorageService;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.SubsetService;
-import at.ac.tuwien.ac.at.ifs.dbrepo.validation.EndpointValidator;
+import at.ac.tuwien.ifs.dbrepo.gateway.MetadataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.mapper.MariaDbMapper;
+import at.ac.tuwien.ifs.dbrepo.service.CacheService;
+import at.ac.tuwien.ifs.dbrepo.service.DatabaseService;
+import at.ac.tuwien.ifs.dbrepo.service.StorageService;
+import at.ac.tuwien.ifs.dbrepo.service.SubsetService;
+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.headers.Header;
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoints/TableEndpoint.java b/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/TableEndpoint.java
similarity index 99%
rename from dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoints/TableEndpoint.java
rename to dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/TableEndpoint.java
index ad401670f2043a7b9d745d60dc0bc8fad1761116..8ea36ff682ace6f66d1744662668b485f61cbc9a 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoints/TableEndpoint.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/TableEndpoint.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.ExportResourceDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
@@ -9,10 +9,10 @@ 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.ac.tuwien.ac.at.ifs.dbrepo.gateway.MetadataServiceGateway;
-import at.ac.tuwien.ac.at.ifs.dbrepo.mapper.MariaDbMapper;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.*;
-import at.ac.tuwien.ac.at.ifs.dbrepo.validation.EndpointValidator;
+import at.ac.tuwien.ifs.dbrepo.gateway.MetadataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.mapper.MariaDbMapper;
+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.headers.Header;
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoints/UploadEndpoint.java b/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/UploadEndpoint.java
similarity index 96%
rename from dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoints/UploadEndpoint.java
rename to dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/UploadEndpoint.java
index 83e2b875d547b3df5b981d76f478d7505e2852e8..b7a88fc3f7c63116689dbbe26d4466ed43e0160b 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoints/UploadEndpoint.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/UploadEndpoint.java
@@ -1,10 +1,10 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
 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.ac.tuwien.ac.at.ifs.dbrepo.service.StorageService;
+import at.ac.tuwien.ifs.dbrepo.service.StorageService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.Content;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoints/ViewEndpoint.java b/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/ViewEndpoint.java
similarity index 98%
rename from dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoints/ViewEndpoint.java
rename to dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/ViewEndpoint.java
index 09e971a205383bbc2c9f8f529c2fe269f6c69caf..b589d66a06fadd7543ca103217dca41085f6f0a9 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoints/ViewEndpoint.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/ViewEndpoint.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.ExportResourceDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.CreateViewDto;
@@ -8,9 +8,9 @@ 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.ac.tuwien.ac.at.ifs.dbrepo.mapper.MariaDbMapper;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.*;
-import at.ac.tuwien.ac.at.ifs.dbrepo.validation.EndpointValidator;
+import at.ac.tuwien.ifs.dbrepo.mapper.MariaDbMapper;
+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.headers.Header;
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/handlers/ApiExceptionHandler.java b/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/handlers/ApiExceptionHandler.java
similarity index 99%
rename from dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/handlers/ApiExceptionHandler.java
rename to dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/handlers/ApiExceptionHandler.java
index 012123f67142ddc16e22a1373bb72c04d052b45b..6aea3e878221c6766a76d8e1e245b54ac3e1a089 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/handlers/ApiExceptionHandler.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/handlers/ApiExceptionHandler.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.handlers;
+package at.ac.tuwien.ifs.dbrepo.handlers;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
 import at.ac.tuwien.ifs.dbrepo.core.exception.*;
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/validation/EndpointValidator.java b/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/validation/EndpointValidator.java
similarity index 96%
rename from dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/validation/EndpointValidator.java
rename to dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/validation/EndpointValidator.java
index d505a8d36ec58cdab91dbaef07913a27dc3b38f3..009c3b0b3fe5ced4ee469a3d9512d4e92927d3ce 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/validation/EndpointValidator.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/validation/EndpointValidator.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.validation;
+package at.ac.tuwien.ifs.dbrepo.validation;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
@@ -6,9 +6,9 @@ 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.ac.tuwien.ac.at.ifs.dbrepo.endpoints.RestEndpoint;
+import at.ac.tuwien.ifs.dbrepo.endpoints.RestEndpoint;
 import at.ac.tuwien.ifs.dbrepo.core.exception.*;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.CacheService;
+import at.ac.tuwien.ifs.dbrepo.service.CacheService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
diff --git a/dbrepo-data-service/rest-service/src/main/resources/application.yml b/dbrepo-data-service/rest-service/src/main/resources/application.yml
index 41d23f4c7f6cdf97c8c6ebef2becd2f6d82cce8b..d8dec2e455c0d5fb199207deb3fe3ff3dc7fd21f 100644
--- a/dbrepo-data-service/rest-service/src/main/resources/application.yml
+++ b/dbrepo-data-service/rest-service/src/main/resources/application.yml
@@ -51,7 +51,7 @@ logging:
   pattern.console: "%d %highlight(%-5level) %msg%n"
   level:
     root: warn
-    at.ac.tuwien.ac.at.ifs.dbrepo.: "${LOG_LEVEL:info}"
+    at.ac.tuwien.ifs.dbrepo.: "${LOG_LEVEL:info}"
     org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver: debug
 dbrepo:
   endpoints:
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/MariaDbConfig.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/MariaDbConfig.java
similarity index 99%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/MariaDbConfig.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/MariaDbConfig.java
index af4f12dc84bce16f9f13f50447206b258c4ff6d8..eed50bf5fb3995d322f7aea2c679cfa719e1ce22 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/MariaDbConfig.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/MariaDbConfig.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/MariaDbContainerConfig.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/MariaDbContainerConfig.java
similarity index 98%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/MariaDbContainerConfig.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/MariaDbContainerConfig.java
index 215d0aa146c248a7dde7dff8ecd13fd0f84e5ec3..6a6fbc7476b719be47fa0c17e49e82c65c623c0a 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/MariaDbContainerConfig.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/MariaDbContainerConfig.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/MariadbConfigTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/MariadbConfigTest.java
similarity index 94%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/MariadbConfigTest.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/MariadbConfigTest.java
index 4068421d4fd9e1580b56c40ee5c0ac20672083db..eee4b27b4456a696680bb69b3dda49056f493707 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/MariadbConfigTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/MariadbConfigTest.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.DatabaseService;
+import at.ac.tuwien.ifs.dbrepo.service.DatabaseService;
 import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeAll;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoint/AccessEndpointUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoint/AccessEndpointUnitTest.java
similarity index 98%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoint/AccessEndpointUnitTest.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoint/AccessEndpointUnitTest.java
index 99d01e5db0ee8ecece70595f38dae2a9f66d5169..a634c2b45239f85fd528cdb697242743d01291ea 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoint/AccessEndpointUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoint/AccessEndpointUnitTest.java
@@ -1,13 +1,13 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.endpoint;
+package at.ac.tuwien.ifs.dbrepo.endpoint;
 
 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.ac.tuwien.ac.at.ifs.dbrepo.endpoints.AccessEndpoint;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.AccessService;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.CacheService;
+import at.ac.tuwien.ifs.dbrepo.endpoints.AccessEndpoint;
+import at.ac.tuwien.ifs.dbrepo.service.AccessService;
+import at.ac.tuwien.ifs.dbrepo.service.CacheService;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoint/DatabaseEndpointUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoint/DatabaseEndpointUnitTest.java
similarity index 96%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoint/DatabaseEndpointUnitTest.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoint/DatabaseEndpointUnitTest.java
index 1ced03dff9e9dfc2cb3d0f6820a6947838e45dcd..01a575b4609b4dd2a882f2bae6e40ba520229b74 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoint/DatabaseEndpointUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoint/DatabaseEndpointUnitTest.java
@@ -1,15 +1,15 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.endpoint;
+package at.ac.tuwien.ifs.dbrepo.endpoint;
 
 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.ac.tuwien.ac.at.ifs.dbrepo.endpoints.DatabaseEndpoint;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.AccessService;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.CacheService;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.ContainerService;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.DatabaseService;
+import at.ac.tuwien.ifs.dbrepo.endpoints.DatabaseEndpoint;
+import at.ac.tuwien.ifs.dbrepo.service.AccessService;
+import at.ac.tuwien.ifs.dbrepo.service.CacheService;
+import at.ac.tuwien.ifs.dbrepo.service.ContainerService;
+import at.ac.tuwien.ifs.dbrepo.service.DatabaseService;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoint/SubsetEndpointUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoint/SubsetEndpointUnitTest.java
similarity index 98%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoint/SubsetEndpointUnitTest.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoint/SubsetEndpointUnitTest.java
index e6f5235539bb88e4b6018e301b9097ab74b95b36..023ed55471036fe464f8dea0cd300bb48d899f48 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoint/SubsetEndpointUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoint/SubsetEndpointUnitTest.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.endpoint;
+package at.ac.tuwien.ifs.dbrepo.endpoint;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryDto;
@@ -6,12 +6,12 @@ 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.ac.tuwien.ac.at.ifs.dbrepo.endpoints.SubsetEndpoint;
-import at.ac.tuwien.ac.at.ifs.dbrepo.gateway.MetadataServiceGateway;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.CacheService;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.DatabaseService;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.StorageService;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.SubsetService;
+import at.ac.tuwien.ifs.dbrepo.endpoints.SubsetEndpoint;
+import at.ac.tuwien.ifs.dbrepo.gateway.MetadataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.service.CacheService;
+import at.ac.tuwien.ifs.dbrepo.service.DatabaseService;
+import at.ac.tuwien.ifs.dbrepo.service.StorageService;
+import at.ac.tuwien.ifs.dbrepo.service.SubsetService;
 import jakarta.servlet.http.HttpServletRequest;
 import lombok.extern.log4j.Log4j2;
 import org.apache.spark.sql.Dataset;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoint/TableEndpointUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoint/TableEndpointUnitTest.java
similarity index 99%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoint/TableEndpointUnitTest.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoint/TableEndpointUnitTest.java
index 74fa52e20e8fba16a0ba5ee994e66439d207fbca..8bfd1c527fc1d4ad772aa22460219b306a611492 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoint/TableEndpointUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoint/TableEndpointUnitTest.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.endpoint;
+package at.ac.tuwien.ifs.dbrepo.endpoint;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
@@ -8,12 +8,12 @@ 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.ac.tuwien.ac.at.ifs.dbrepo.endpoints.TableEndpoint;
-import at.ac.tuwien.ac.at.ifs.dbrepo.gateway.MetadataServiceGateway;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.CacheService;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.DatabaseService;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.SubsetService;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.TableService;
+import at.ac.tuwien.ifs.dbrepo.endpoints.TableEndpoint;
+import at.ac.tuwien.ifs.dbrepo.gateway.MetadataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.service.CacheService;
+import at.ac.tuwien.ifs.dbrepo.service.DatabaseService;
+import at.ac.tuwien.ifs.dbrepo.service.SubsetService;
+import at.ac.tuwien.ifs.dbrepo.service.TableService;
 import jakarta.servlet.http.HttpServletRequest;
 import lombok.extern.log4j.Log4j2;
 import org.apache.spark.sql.Dataset;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoint/ViewEndpointUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoint/ViewEndpointUnitTest.java
similarity index 98%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoint/ViewEndpointUnitTest.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoint/ViewEndpointUnitTest.java
index e8e1f2f461c13a6392916fc3c68e11d3aa6aac8a..9e0b1c4454f3a6abd12af702d5658b5b6bec9802 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/endpoint/ViewEndpointUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoint/ViewEndpointUnitTest.java
@@ -1,14 +1,14 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.endpoint;
+package at.ac.tuwien.ifs.dbrepo.endpoint;
 
 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.ac.tuwien.ac.at.ifs.dbrepo.endpoints.ViewEndpoint;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.CacheService;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.DatabaseService;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.SubsetService;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.ViewService;
+import at.ac.tuwien.ifs.dbrepo.endpoints.ViewEndpoint;
+import at.ac.tuwien.ifs.dbrepo.service.CacheService;
+import at.ac.tuwien.ifs.dbrepo.service.DatabaseService;
+import at.ac.tuwien.ifs.dbrepo.service.SubsetService;
+import at.ac.tuwien.ifs.dbrepo.service.ViewService;
 import jakarta.servlet.http.HttpServletRequest;
 import lombok.extern.log4j.Log4j2;
 import org.apache.spark.sql.Dataset;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/gateway/InterceptorUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/InterceptorUnitTest.java
similarity index 97%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/gateway/InterceptorUnitTest.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/InterceptorUnitTest.java
index fefc38887a4e288fd32ea6d136f2ce5595c334a2..b56888551b5da6ca4bb34cfb6f3bc96481ba3a04 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/gateway/InterceptorUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/InterceptorUnitTest.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
 import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/gateway/MetadataServiceGatewayUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/MetadataServiceGatewayUnitTest.java
similarity index 99%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/gateway/MetadataServiceGatewayUnitTest.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/MetadataServiceGatewayUnitTest.java
index b7b8d29337088b950cf2c3e019b6573afa1f83ba..60860315edd4f23aea7dc43fc6960a628c2ef996 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/gateway/MetadataServiceGatewayUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/MetadataServiceGatewayUnitTest.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/handlers/ApiExceptionHandlerTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/handlers/ApiExceptionHandlerTest.java
similarity index 99%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/handlers/ApiExceptionHandlerTest.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/handlers/ApiExceptionHandlerTest.java
index a576c566d0919684b7d56c174774e6f4018d3dcb..ede6492560b8f0e76e3a329ef7561c6137d97cd7 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/handlers/ApiExceptionHandlerTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/handlers/ApiExceptionHandlerTest.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.handlers;
+package at.ac.tuwien.ifs.dbrepo.handlers;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
 import at.ac.tuwien.ifs.dbrepo.core.exception.*;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/listener/DefaultListenerIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/listener/DefaultListenerIntegrationTest.java
similarity index 90%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/listener/DefaultListenerIntegrationTest.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/listener/DefaultListenerIntegrationTest.java
index a9eaa533fe339a990996496dca2449eff0f45609..dcb0af3d66d698f4db8eeffe6e7e13401848a9d5 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/listener/DefaultListenerIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/listener/DefaultListenerIntegrationTest.java
@@ -1,13 +1,13 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.listener;
+package at.ac.tuwien.ifs.dbrepo.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.ac.tuwien.ac.at.ifs.dbrepo.config.MariaDbConfig;
-import at.ac.tuwien.ac.at.ifs.dbrepo.config.MariaDbContainerConfig;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.CacheService;
+import at.ac.tuwien.ifs.dbrepo.config.MariaDbConfig;
+import at.ac.tuwien.ifs.dbrepo.config.MariaDbContainerConfig;
+import at.ac.tuwien.ifs.dbrepo.service.CacheService;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -28,7 +28,7 @@ import org.testcontainers.junit.jupiter.Testcontainers;
 import java.sql.SQLException;
 import java.util.HashMap;
 
-import static at.ac.tuwien.ac.at.ifs.dbrepo.utils.RabbitMqUtils.buildMessage;
+import static at.ac.tuwien.ifs.dbrepo.utils.RabbitMqUtils.buildMessage;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.Mockito.when;
 
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/listener/DefaultListenerUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/listener/DefaultListenerUnitTest.java
similarity index 93%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/listener/DefaultListenerUnitTest.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/listener/DefaultListenerUnitTest.java
index d65af08386063b438e6143f4ca727f22e2f6c412..8b0eedcebebf8a01ef8cd7a42ea916afd30ebf7a 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/listener/DefaultListenerUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/listener/DefaultListenerUnitTest.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.listener;
+package at.ac.tuwien.ifs.dbrepo.listener;
 
-import at.ac.tuwien.ac.at.ifs.dbrepo.config.MariaDbContainerConfig;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.CacheService;
+import at.ac.tuwien.ifs.dbrepo.config.MariaDbContainerConfig;
+import at.ac.tuwien.ifs.dbrepo.service.CacheService;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -19,7 +19,7 @@ import org.testcontainers.junit.jupiter.Testcontainers;
 
 import java.util.HashMap;
 
-import static at.ac.tuwien.ac.at.ifs.dbrepo.utils.RabbitMqUtils.buildMessage;
+import static at.ac.tuwien.ifs.dbrepo.utils.RabbitMqUtils.buildMessage;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.Mockito.doThrow;
 
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/mapper/MariaDbMapperUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mapper/MariaDbMapperUnitTest.java
similarity index 97%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/mapper/MariaDbMapperUnitTest.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mapper/MariaDbMapperUnitTest.java
index f7afcd67ea3794dc8773ce9aaf0030239358a095..b85c3935ff93d56d6eae8b4b86356f18d3b33394 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/mapper/MariaDbMapperUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mapper/MariaDbMapperUnitTest.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.mapper;
+package at.ac.tuwien.ifs.dbrepo.mapper;
 
 import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/mvc/ActuatorEndpointMvcTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/ActuatorEndpointMvcTest.java
similarity index 97%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/mvc/ActuatorEndpointMvcTest.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/ActuatorEndpointMvcTest.java
index 41cdce04d667f0d7aee1700022841af9ed9245f2..7d8c74437a1204dda49c7f18bdaba94ff668d01e 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/mvc/ActuatorEndpointMvcTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/ActuatorEndpointMvcTest.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.mvc;
+package at.ac.tuwien.ifs.dbrepo.mvc;
 
 import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/mvc/OpenApiEndpointMvcTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/OpenApiEndpointMvcTest.java
similarity index 98%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/mvc/OpenApiEndpointMvcTest.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/OpenApiEndpointMvcTest.java
index 6c2e84044b27a87e2971e860abfb6c2c594d3793..102b50fe745bbe265b9e63d7a41a23008050b2ef 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/mvc/OpenApiEndpointMvcTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/OpenApiEndpointMvcTest.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.mvc;
+package at.ac.tuwien.ifs.dbrepo.mvc;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
-import at.ac.tuwien.ac.at.ifs.dbrepo.endpoints.*;
+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;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/mvc/PrometheusEndpointMvcTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/PrometheusEndpointMvcTest.java
similarity index 94%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/mvc/PrometheusEndpointMvcTest.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/PrometheusEndpointMvcTest.java
index 6f0e20b900fc3b4de0bd362eba9fbde0f41f8f0b..956e09e7d684ceb0dce1282a997f7c9dbf0641be 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/mvc/PrometheusEndpointMvcTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/PrometheusEndpointMvcTest.java
@@ -1,15 +1,15 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.mvc;
+package at.ac.tuwien.ifs.dbrepo.mvc;
 
 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.ac.tuwien.ac.at.ifs.dbrepo.config.MetricsConfig;
-import at.ac.tuwien.ac.at.ifs.dbrepo.endpoints.SubsetEndpoint;
-import at.ac.tuwien.ac.at.ifs.dbrepo.endpoints.TableEndpoint;
-import at.ac.tuwien.ac.at.ifs.dbrepo.endpoints.ViewEndpoint;
-import at.ac.tuwien.ac.at.ifs.dbrepo.listener.DefaultListener;
+import at.ac.tuwien.ifs.dbrepo.config.MetricsConfig;
+import at.ac.tuwien.ifs.dbrepo.endpoints.SubsetEndpoint;
+import at.ac.tuwien.ifs.dbrepo.endpoints.TableEndpoint;
+import at.ac.tuwien.ifs.dbrepo.endpoints.ViewEndpoint;
+import at.ac.tuwien.ifs.dbrepo.listener.DefaultListener;
 import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import io.micrometer.observation.tck.TestObservationRegistry;
 import jakarta.servlet.http.HttpServletRequest;
@@ -30,7 +30,7 @@ import org.springframework.test.web.servlet.MockMvc;
 import java.util.HashMap;
 import java.util.List;
 
-import static at.ac.tuwien.ac.at.ifs.dbrepo.utils.RabbitMqUtils.buildMessage;
+import static at.ac.tuwien.ifs.dbrepo.utils.RabbitMqUtils.buildMessage;
 import static io.micrometer.observation.tck.TestObservationRegistryAssert.assertThat;
 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
 import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/mvc/SubsetEndpointMvcTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/SubsetEndpointMvcTest.java
similarity index 93%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/mvc/SubsetEndpointMvcTest.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/SubsetEndpointMvcTest.java
index 42c53604853db64899793cb94da9b31ed4b6f83a..593954df956fc4e599bba665355b01a405e0611e 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/mvc/SubsetEndpointMvcTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/SubsetEndpointMvcTest.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.mvc;
+package at.ac.tuwien.ifs.dbrepo.mvc;
 
-import at.ac.tuwien.ac.at.ifs.dbrepo.gateway.MetadataServiceGateway;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.SubsetService;
+import at.ac.tuwien.ifs.dbrepo.gateway.MetadataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.service.SubsetService;
 import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/AccessServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/AccessServiceIntegrationTest.java
similarity index 96%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/AccessServiceIntegrationTest.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/AccessServiceIntegrationTest.java
index 8f4e3af0341110380ac8f23ed6332c088277aad9..0834d8a34ce72be9e8dd2b22d8d49694fdf1d2ae 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/AccessServiceIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/AccessServiceIntegrationTest.java
@@ -1,8 +1,8 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
-import at.ac.tuwien.ac.at.ifs.dbrepo.config.MariaDbConfig;
-import at.ac.tuwien.ac.at.ifs.dbrepo.config.MariaDbContainerConfig;
+import at.ac.tuwien.ifs.dbrepo.config.MariaDbConfig;
+import at.ac.tuwien.ifs.dbrepo.config.MariaDbContainerConfig;
 import at.ac.tuwien.ifs.dbrepo.core.exception.DatabaseMalformedException;
 import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/ContainerServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ContainerServiceIntegrationTest.java
similarity index 95%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/ContainerServiceIntegrationTest.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ContainerServiceIntegrationTest.java
index 281002e157b5685bec2b16eabbbbcac6da2e8fcc..24f8be45f54d5ffc0a4e41f25e546fd8186e71e5 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/ContainerServiceIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ContainerServiceIntegrationTest.java
@@ -1,8 +1,8 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
-import at.ac.tuwien.ac.at.ifs.dbrepo.config.MariaDbConfig;
-import at.ac.tuwien.ac.at.ifs.dbrepo.config.MariaDbContainerConfig;
+import at.ac.tuwien.ifs.dbrepo.config.MariaDbConfig;
+import at.ac.tuwien.ifs.dbrepo.config.MariaDbContainerConfig;
 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;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/CredentialServiceUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/CredentialServiceUnitTest.java
similarity index 98%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/CredentialServiceUnitTest.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/CredentialServiceUnitTest.java
index 885a8f4de97c84e8ce513ea853a31fbaeaa1a5a5..febf388d59531bb4e8a831b43a81facf19a7eb01 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/CredentialServiceUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/CredentialServiceUnitTest.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
@@ -7,8 +7,8 @@ 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.ac.tuwien.ac.at.ifs.dbrepo.gateway.MetadataServiceGateway;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.impl.CacheServiceImpl;
+import at.ac.tuwien.ifs.dbrepo.gateway.MetadataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.service.impl.CacheServiceImpl;
 import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/DatabaseServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/DatabaseServiceIntegrationTest.java
similarity index 99%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/DatabaseServiceIntegrationTest.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/DatabaseServiceIntegrationTest.java
index b2648eda53086fb79d63cf65c47442b141a8adfd..db1b29a29e5a4c720969c35b7778c29df347ccfc 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/DatabaseServiceIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/DatabaseServiceIntegrationTest.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewColumnDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
@@ -16,8 +16,8 @@ import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.unique.Unique
 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.ac.tuwien.ac.at.ifs.dbrepo.config.MariaDbConfig;
-import at.ac.tuwien.ac.at.ifs.dbrepo.config.MariaDbContainerConfig;
+import at.ac.tuwien.ifs.dbrepo.config.MariaDbConfig;
+import at.ac.tuwien.ifs.dbrepo.config.MariaDbContainerConfig;
 import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/QueueServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/QueueServiceIntegrationTest.java
similarity index 91%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/QueueServiceIntegrationTest.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/QueueServiceIntegrationTest.java
index 3ffe3a88216c0ef71c0259a5340bf17de0dad004..99e3f77f807c1d5c09c1f58773d31724006c42ee 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/QueueServiceIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/QueueServiceIntegrationTest.java
@@ -1,13 +1,13 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ac.at.ifs.dbrepo.config.MariaDbConfig;
-import at.ac.tuwien.ac.at.ifs.dbrepo.config.MariaDbContainerConfig;
+import at.ac.tuwien.ifs.dbrepo.config.MariaDbConfig;
+import at.ac.tuwien.ifs.dbrepo.config.MariaDbContainerConfig;
 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.ac.at.ifs.dbrepo.gateway.MetadataServiceGateway;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.impl.QueueServiceRabbitMqImpl;
+import at.ac.tuwien.ifs.dbrepo.gateway.MetadataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.service.impl.QueueServiceRabbitMqImpl;
 import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeAll;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/StorageServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/StorageServiceIntegrationTest.java
similarity index 97%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/StorageServiceIntegrationTest.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/StorageServiceIntegrationTest.java
index 1ebd52e3b8fae44aaf84b21a1d4d576001431181..4f1c6efe40329961c213a463c1aa2fccb2168a33 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/StorageServiceIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/StorageServiceIntegrationTest.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ac.at.ifs.dbrepo.config.S3Config;
+import at.ac.tuwien.ifs.dbrepo.config.S3Config;
 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;
@@ -28,11 +28,9 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
 import org.testcontainers.containers.MinIOContainer;
 import org.testcontainers.junit.jupiter.Container;
 import org.testcontainers.junit.jupiter.Testcontainers;
-import software.amazon.awssdk.core.ResponseInputStream;
 import software.amazon.awssdk.core.sync.RequestBody;
 import software.amazon.awssdk.services.s3.S3Client;
 import software.amazon.awssdk.services.s3.model.CreateBucketRequest;
-import software.amazon.awssdk.services.s3.model.GetObjectResponse;
 import software.amazon.awssdk.services.s3.model.PutObjectRequest;
 
 import java.io.*;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/SubsetServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/SubsetServiceIntegrationTest.java
similarity index 98%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/SubsetServiceIntegrationTest.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/SubsetServiceIntegrationTest.java
index 0e1f9c4f428a832d84a7d130e5c3c095ac630ca5..abc992bf4bdb96233004f20e0bab866f5e2776aa 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/SubsetServiceIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/SubsetServiceIntegrationTest.java
@@ -1,11 +1,11 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.database.query.*;
 import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierBriefDto;
-import at.ac.tuwien.ac.at.ifs.dbrepo.config.MariaDbConfig;
-import at.ac.tuwien.ac.at.ifs.dbrepo.config.MariaDbContainerConfig;
+import at.ac.tuwien.ifs.dbrepo.config.MariaDbConfig;
+import at.ac.tuwien.ifs.dbrepo.config.MariaDbContainerConfig;
 import at.ac.tuwien.ifs.dbrepo.core.exception.*;
-import at.ac.tuwien.ac.at.ifs.dbrepo.gateway.MetadataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.MetadataServiceGateway;
 import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.apache.spark.sql.Dataset;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/TableServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/TableServiceIntegrationTest.java
similarity index 98%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/TableServiceIntegrationTest.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/TableServiceIntegrationTest.java
index 2dc7fd8bcaf489e04f92a5d7be05083eaf1e7c88..8029dc3081fdb0187decf6028f18a5214448af0b 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/TableServiceIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/TableServiceIntegrationTest.java
@@ -1,11 +1,11 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
 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.ac.tuwien.ac.at.ifs.dbrepo.config.MariaDbConfig;
-import at.ac.tuwien.ac.at.ifs.dbrepo.config.MariaDbContainerConfig;
-import at.ac.tuwien.ac.at.ifs.dbrepo.config.S3Config;
+import at.ac.tuwien.ifs.dbrepo.config.MariaDbConfig;
+import at.ac.tuwien.ifs.dbrepo.config.MariaDbContainerConfig;
+import at.ac.tuwien.ifs.dbrepo.config.S3Config;
 import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import com.google.common.io.Files;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/ViewServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ViewServiceIntegrationTest.java
similarity index 89%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/ViewServiceIntegrationTest.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ViewServiceIntegrationTest.java
index 86152366f8ea417e2bba972ba83b67b891936021..55776ac7118544b10e7c090f8805dfc853d8cf89 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/ViewServiceIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ViewServiceIntegrationTest.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ac.at.ifs.dbrepo.config.MariaDbConfig;
-import at.ac.tuwien.ac.at.ifs.dbrepo.config.MariaDbContainerConfig;
+import at.ac.tuwien.ifs.dbrepo.config.MariaDbConfig;
+import at.ac.tuwien.ifs.dbrepo.config.MariaDbContainerConfig;
 import at.ac.tuwien.ifs.dbrepo.core.exception.ViewMalformedException;
 import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/utils/FileUtils.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/FileUtils.java
similarity index 84%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/utils/FileUtils.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/FileUtils.java
index e105d6839d03b21431ac651f00391ac8a9b55800..2642b56b96adbda28db3cf8c54f05667a8ab2679 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/utils/FileUtils.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/FileUtils.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.utils;
+package at.ac.tuwien.ifs.dbrepo.utils;
 
 import java.io.File;
 import java.io.IOException;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/utils/MariaDbUtilTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/MariaDbUtilTest.java
similarity index 97%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/utils/MariaDbUtilTest.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/MariaDbUtilTest.java
index 8a5dcd8ca75d3b4c772d1437f2105e55f7fd9fd8..6880f744d565e592b54baa99e7c1f41601e1edbf 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/utils/MariaDbUtilTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/MariaDbUtilTest.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.utils;
+package at.ac.tuwien.ifs.dbrepo.utils;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnTypeDto;
 import org.junit.jupiter.api.Test;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/utils/RabbitMqUtils.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/RabbitMqUtils.java
similarity index 92%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/utils/RabbitMqUtils.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/RabbitMqUtils.java
index f7a9b615c4723fbf36b366e1729886570734b1ac..a85d61b8b3e33c50674f990136541a668a8db724 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/utils/RabbitMqUtils.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/RabbitMqUtils.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.utils;
+package at.ac.tuwien.ifs.dbrepo.utils;
 
 import org.springframework.amqp.core.Message;
 import org.springframework.amqp.core.MessageProperties;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/validation/EndpointValidatorUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/validation/EndpointValidatorUnitTest.java
similarity index 97%
rename from dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/validation/EndpointValidatorUnitTest.java
rename to dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/validation/EndpointValidatorUnitTest.java
index fba1ee837d90c1f8840686145734c4033ee26455..f63c7618bc3b3583a8e69dfcd7cc8b5f01387185 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ac/at/ifs/dbrepo/validation/EndpointValidatorUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/validation/EndpointValidatorUnitTest.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.validation;
+package at.ac.tuwien.ifs.dbrepo.validation;
 
 import at.ac.tuwien.ifs.dbrepo.core.exception.PaginationException;
 import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
diff --git a/dbrepo-data-service/rest-service/src/test/resources/application.properties b/dbrepo-data-service/rest-service/src/test/resources/application.properties
index 8f658cab55bae085a012cce3706c4908b964451d..5086a6175bbd3c73974bba6d99725bddc3fa7459 100644
--- a/dbrepo-data-service/rest-service/src/test/resources/application.properties
+++ b/dbrepo-data-service/rest-service/src/test/resources/application.properties
@@ -24,7 +24,7 @@ spring.sql.init.schema-locations=classpath*:init/schema.sql
 spring.jpa.hibernate.ddl-auto=create
 
 # log
-logging.level.at.ac.tuwien.ac.at.ifs.dbrepo.=trace
+logging.level.at.ac.tuwien.ifs.dbrepo.=trace
 
 # rabbitmq
 spring.rabbitmq.host=localhost
diff --git a/dbrepo-data-service/services/pom.xml b/dbrepo-data-service/services/pom.xml
index 8d8d0a8edbbe4762a9f303d60854e3970746af93..c423837f3747f6b6ca34963e19883995a02ddcaa 100644
--- a/dbrepo-data-service/services/pom.xml
+++ b/dbrepo-data-service/services/pom.xml
@@ -4,19 +4,19 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
-        <groupId>at.ac.tuwien.ac.at.ifs.dbrepo</groupId>
-        <artifactId>dbrepo-data-service</artifactId>
+        <groupId>at.ac.tuwien.ifs.dbrepo</groupId>
+        <artifactId>data-service</artifactId>
         <version>1.8.1</version>
     </parent>
 
+    <name>services</name>
     <artifactId>services</artifactId>
-    <name>dbrepo-data-service-services</name>
     <version>1.8.1</version>
 
     <dependencies>
         <dependency>
-            <groupId>at.ac.tuwien.ac.at.ifs.dbrepo</groupId>
-            <artifactId>dbrepo-data-service-querystore</artifactId>
+            <groupId>at.ac.tuwien.ifs.dbrepo</groupId>
+            <artifactId>querystore</artifactId>
             <version>1.8.1</version>
         </dependency>
     </dependencies>
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/mapper/MetadataMapper.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/mapper/MetadataMapper.java
deleted file mode 100644
index b5cd8286cd5b4f1560f83b391b4498b122d2c18f..0000000000000000000000000000000000000000
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/mapper/MetadataMapper.java
+++ /dev/null
@@ -1,88 +0,0 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.mapper;
-
-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;
-import org.mapstruct.Mappings;
-
-import java.util.UUID;
-
-@Mapper(componentModel = "spring", imports = {DatabaseDto.class, ContainerDto.class, ImageDto.class})
-public interface MetadataMapper {
-
-    org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(MetadataMapper.class);
-
-    ContainerDto containerDtoToContainerDto(ContainerDto data);
-
-    @Mappings({
-            @Mapping(target = "id", source = "userId"),
-            @Mapping(target = "username", source = "privilegedUsername"),
-            @Mapping(target = "password", source = "privilegedPassword"),
-    })
-    UserDto createDatabaseDtoToPrivilegedUserDto(CreateDatabaseDto data);
-
-    @Mappings({
-            @Mapping(target = "username", source = "readonlyUsername"),
-            @Mapping(target = "password", source = "readonlyPassword"),
-    })
-    UserDto createDatabaseDtoToReadonlyUserDto(CreateDatabaseDto data);
-
-    DatabaseBriefDto databaseDtoToDatabaseBriefDto(DatabaseDto data);
-
-    ColumnDto viewColumnDtoToColumnDto(ViewColumnDto data);
-
-    ViewColumnDto columnDtoToViewColumnDto(ColumnDto data);
-
-    TableDto tableDtoToTableDto(TableDto data);
-
-    ViewDto viewDtoToViewDto(ViewDto data);
-
-    ContainerDto ContainerDtoToContainerDto(ContainerDto data);
-
-    UserDto userDtoToUserDto(UserDto data);
-
-    @Mappings({
-            @Mapping(target = "accessToken", source = "token")
-    })
-    TokenDto accessTokenResponseToTokenDto(AccessTokenResponse data);
-
-    UserBriefDto userDtoToUserBriefDto(UserDto data);
-
-    TableBriefDto tableDtoToTableBriefDto(TableDto data);
-
-    IdentifierBriefDto identifierDtoToIdentifierBriefDto(IdentifierDto data);
-
-    default String metricToUri(String baseUrl, UUID databaseId, UUID tableId, UUID subsetId, UUID viewId) {
-        final StringBuilder uri = new StringBuilder(baseUrl)
-                .append("/database/")
-                .append(databaseId);
-        if (tableId != null) {
-            uri.append("/table/")
-                    .append(tableId);
-        } else if (subsetId != null) {
-            uri.append("/subset/")
-                    .append(subsetId);
-        } else if (viewId != null) {
-            uri.append("/view/")
-                    .append(viewId);
-        }
-        log.trace("count uri: {}", uri);
-        return uri.toString();
-    }
-
-}
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/auth/AuthTokenFilter.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/auth/AuthTokenFilter.java
similarity index 99%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/auth/AuthTokenFilter.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/auth/AuthTokenFilter.java
index 2073c384e8722066dfbf627f2dd3fdea16f96d48..1e748a391b887c52769dabfdf74eef5a992ac4fc 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/auth/AuthTokenFilter.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/auth/AuthTokenFilter.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.auth;
+package at.ac.tuwien.ifs.dbrepo.auth;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.auth.RealmAccessDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDetailsDto;
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/auth/BasicAuthenticationProvider.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/auth/BasicAuthenticationProvider.java
similarity index 93%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/auth/BasicAuthenticationProvider.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/auth/BasicAuthenticationProvider.java
index b1811dfbf6618433506c770b3eef567f95819003..5ab64107cd4dc80be7b16a8db0db4815372cc3fc 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/auth/BasicAuthenticationProvider.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/auth/BasicAuthenticationProvider.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.auth;
+package at.ac.tuwien.ifs.dbrepo.auth;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.CredentialService;
+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-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/auth/InternalRequestInterceptor.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/auth/InternalRequestInterceptor.java
similarity index 90%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/auth/InternalRequestInterceptor.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/auth/InternalRequestInterceptor.java
index 07cf01cc6f26e373f49fa735aa2f2aa99d719bd4..09076f95b993b17f2b53112d96ceb8bd6c4a5dae 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/auth/InternalRequestInterceptor.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/auth/InternalRequestInterceptor.java
@@ -1,8 +1,8 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.auth;
+package at.ac.tuwien.ifs.dbrepo.auth;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
-import at.ac.tuwien.ac.at.ifs.dbrepo.config.GatewayConfig;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.CredentialService;
+import at.ac.tuwien.ifs.dbrepo.config.GatewayConfig;
+import at.ac.tuwien.ifs.dbrepo.service.CredentialService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpHeaders;
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/CacheConfig.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/CacheConfig.java
similarity index 97%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/CacheConfig.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/CacheConfig.java
index 0c8120565a57ce6e4ab06290a29a26f092245182..a40030b8b4dd89e82c5190f060ae970b03f39cb2 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/CacheConfig.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/CacheConfig.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/GatewayConfig.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/GatewayConfig.java
similarity index 88%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/GatewayConfig.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/GatewayConfig.java
index 09e9a249ffbac16a1b500830ccf1c12572a37cec..12bd674a50388badc118535f9192609adf95d130 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/GatewayConfig.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/GatewayConfig.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
-import at.ac.tuwien.ac.at.ifs.dbrepo.auth.InternalRequestInterceptor;
-import at.ac.tuwien.ac.at.ifs.dbrepo.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;
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/JacksonConfig.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/JacksonConfig.java
similarity index 95%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/JacksonConfig.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/JacksonConfig.java
index b3e0c0a96630826b7d501a377b0c56fc204771c7..567d223eb31cedc2fb0445854e8da2509f212905 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/JacksonConfig.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/JacksonConfig.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.SerializationFeature;
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/KeycloakConfig.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/KeycloakConfig.java
similarity index 95%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/KeycloakConfig.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/KeycloakConfig.java
index 3d006a366568b5000bfd4a0de9555df3351390f8..36077309f8ae54654eef4d9fa66d272f42ff4a62 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/KeycloakConfig.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/KeycloakConfig.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import lombok.Getter;
 import org.keycloak.admin.client.Keycloak;
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/MetricsConfig.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/MetricsConfig.java
similarity index 92%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/MetricsConfig.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/MetricsConfig.java
index 32774b8c16ff2c9866b63dfc0559134106fe008f..4be6cd10e66137817f4a0b4b91ec81a723886648 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/MetricsConfig.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/MetricsConfig.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import io.micrometer.observation.ObservationRegistry;
 import io.micrometer.observation.aop.ObservedAspect;
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/QueryConfig.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/QueryConfig.java
similarity index 94%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/QueryConfig.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/QueryConfig.java
index 3b5541d741a65fae1ca485f35be4acb225f09a98..eed47bdf467947c821b2c8ef0be0dfbd4fdbe385 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/QueryConfig.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/QueryConfig.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import lombok.Getter;
 import lombok.extern.log4j.Log4j2;
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/RabbitConfig.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/RabbitConfig.java
similarity index 95%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/RabbitConfig.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/RabbitConfig.java
index 2ea4260c335dfb438dd44ce25c48f4c069c1116f..347aca691a734badc1fc9eb9bce86bbc29758bed 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/RabbitConfig.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/RabbitConfig.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
-import at.ac.tuwien.ac.at.ifs.dbrepo.listener.DefaultListener;
+import at.ac.tuwien.ifs.dbrepo.listener.DefaultListener;
 import lombok.Getter;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.amqp.rabbit.connection.ConnectionFactory;
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/S3Config.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/S3Config.java
similarity index 96%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/S3Config.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/S3Config.java
index c9f8a5d49bc9efcf38b2314a50c4b0540f083d47..e9d1aa41a966c9d907007d7228c6ac72e81f67b6 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/S3Config.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/S3Config.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import lombok.Getter;
 import lombok.extern.log4j.Log4j2;
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/SparkConfig.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/SparkConfig.java
similarity index 97%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/SparkConfig.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/SparkConfig.java
index 223df5b1c063312642f8b0dc20247d7863f87dbb..fe9421f2d0746087375e5568f81258b20500a52b 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/SparkConfig.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/SparkConfig.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import lombok.Getter;
 import lombok.extern.log4j.Log4j2;
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/WebSecurityConfig.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/WebSecurityConfig.java
similarity index 94%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/WebSecurityConfig.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/WebSecurityConfig.java
index a834ed2d8081dfd3ebcdb69e6dcec3eb57790f04..432326ff78619f58773e06b720c3f24fd9b8a6e5 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/config/WebSecurityConfig.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/WebSecurityConfig.java
@@ -1,8 +1,8 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
-import at.ac.tuwien.ac.at.ifs.dbrepo.auth.AuthTokenFilter;
-import at.ac.tuwien.ac.at.ifs.dbrepo.auth.BasicAuthenticationProvider;
-import at.ac.tuwien.ac.at.ifs.dbrepo.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-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/gateway/KeycloakGateway.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/KeycloakGateway.java
similarity index 85%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/gateway/KeycloakGateway.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/KeycloakGateway.java
index 0577b6a5a9be291e2b723d3b735c9d496b2ccbc2..3d46ddfd9103906023fa4adcb72d72017fd3a7a5 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/gateway/KeycloakGateway.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/KeycloakGateway.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
 import org.springframework.security.authentication.BadCredentialsException;
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/gateway/MetadataServiceGateway.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/MetadataServiceGateway.java
similarity index 99%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/gateway/MetadataServiceGateway.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/MetadataServiceGateway.java
index 01634718c749778a65f046066e5cb8d1ac879a7a..c2f901c3cb25d5a923748e9109a2fc6075a45075 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/gateway/MetadataServiceGateway.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/MetadataServiceGateway.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/gateway/impl/KeycloakGatewayImpl.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/KeycloakGatewayImpl.java
similarity index 77%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/gateway/impl/KeycloakGatewayImpl.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/KeycloakGatewayImpl.java
index e3a439a3765d11b6c9b3080e15608bd55622d4ae..b5b623551137187b33b28e1157f6b6463229db0f 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/gateway/impl/KeycloakGatewayImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/KeycloakGatewayImpl.java
@@ -1,9 +1,9 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.gateway.impl;
+package at.ac.tuwien.ifs.dbrepo.gateway.impl;
 
-import at.ac.tuwien.ac.at.ifs.dbrepo.config.KeycloakConfig;
-import at.ac.tuwien.ac.at.ifs.dbrepo.gateway.KeycloakGateway;
-import at.ac.tuwien.ac.at.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.config.KeycloakConfig;
+import at.ac.tuwien.ifs.dbrepo.gateway.KeycloakGateway;
 import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.mapper.DataMapper;
 import jakarta.ws.rs.NotAuthorizedException;
 import lombok.extern.log4j.Log4j2;
 import org.keycloak.OAuth2Constants;
@@ -17,13 +17,13 @@ import org.springframework.stereotype.Service;
 @Service
 public class KeycloakGatewayImpl implements KeycloakGateway {
 
+    private final DataMapper dataMapper;
     private final KeycloakConfig keycloakConfig;
-    private final MetadataMapper metadataMapper;
 
     @Autowired
-    public KeycloakGatewayImpl(KeycloakConfig keycloakConfig, MetadataMapper metadataMapper) {
+    public KeycloakGatewayImpl(DataMapper dataMapper, KeycloakConfig keycloakConfig) {
+        this.dataMapper = dataMapper;
         this.keycloakConfig = keycloakConfig;
-        this.metadataMapper = metadataMapper;
     }
 
     @Override
@@ -40,7 +40,7 @@ public class KeycloakGatewayImpl implements KeycloakGateway {
                 .username(username)
                 .password(password)
                 .build()) {
-            return metadataMapper.accessTokenResponseToTokenDto(userKeycloak.tokenManager()
+            return dataMapper.accessTokenResponseToTokenDto(userKeycloak.tokenManager()
                     .getAccessToken());
         } catch (NotAuthorizedException e) {
             log.error("Failed to obtain user token: {}", e.getMessage());
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/gateway/impl/MetadataServiceGatewayImpl.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/MetadataServiceGatewayImpl.java
similarity index 95%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/gateway/impl/MetadataServiceGatewayImpl.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/MetadataServiceGatewayImpl.java
index 292b5bba4a023d4f21d43d043346dfeba4875add..7175151c109419f76d89f4f25c9a1a0912075d9e 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/gateway/impl/MetadataServiceGatewayImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/MetadataServiceGatewayImpl.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.gateway.impl;
+package at.ac.tuwien.ifs.dbrepo.gateway.impl;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
@@ -8,9 +8,9 @@ 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.ac.at.ifs.dbrepo.config.GatewayConfig;
-import at.ac.tuwien.ac.at.ifs.dbrepo.gateway.MetadataServiceGateway;
-import at.ac.tuwien.ac.at.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.config.GatewayConfig;
+import at.ac.tuwien.ifs.dbrepo.gateway.MetadataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.mapper.DataMapper;
 import jakarta.validation.constraints.NotNull;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,16 +31,16 @@ import java.util.UUID;
 @Service
 public class MetadataServiceGatewayImpl implements MetadataServiceGateway {
 
-    private final RestTemplate internalRestTemplate;
+    private final DataMapper dataMapper;
     private final GatewayConfig gatewayConfig;
-    private final MetadataMapper metadataMapper;
+    private final RestTemplate internalRestTemplate;
 
     @Autowired
-    public MetadataServiceGatewayImpl(@Qualifier("internalRestTemplate") RestTemplate internalRestTemplate,
-                                      GatewayConfig gatewayConfig, MetadataMapper metadataMapper) {
-        this.internalRestTemplate = internalRestTemplate;
+    public MetadataServiceGatewayImpl(DataMapper dataMapper, GatewayConfig gatewayConfig,
+                                      @Qualifier("internalRestTemplate") RestTemplate internalRestTemplate) {
+        this.dataMapper = dataMapper;
         this.gatewayConfig = gatewayConfig;
-        this.metadataMapper = metadataMapper;
+        this.internalRestTemplate = internalRestTemplate;
     }
 
     @Override
@@ -74,7 +74,7 @@ public class MetadataServiceGatewayImpl implements MetadataServiceGateway {
             log.error("Failed to find container with id {}: body is empty", containerId);
             throw new MetadataServiceException("Failed to find container with id " + containerId + ": body is empty");
         }
-        final ContainerDto container = metadataMapper.containerDtoToContainerDto(response.getBody());
+        final ContainerDto container = dataMapper.containerDtoToContainerDto(response.getBody());
         container.setHost(response.getHeaders().get("X-Host").get(0));
         container.setPort(Integer.parseInt(response.getHeaders().get("X-Port").get(0)));
         container.setUsername(response.getHeaders().get("X-Username").get(0));
@@ -147,7 +147,7 @@ public class MetadataServiceGatewayImpl implements MetadataServiceGateway {
             log.error("Failed to find table with id {}: body is empty", id);
             throw new MetadataServiceException("Failed to find table with id " + id + ": body is empty");
         }
-        final TableDto table = metadataMapper.tableDtoToTableDto(response.getBody());
+        final TableDto table = dataMapper.tableDtoToTableDto(response.getBody());
         table.setLastRetrieved(Instant.now());
         return table;
     }
@@ -175,7 +175,7 @@ public class MetadataServiceGatewayImpl implements MetadataServiceGateway {
             log.error("Failed to find view with id {}: body is empty", id);
             throw new MetadataServiceException("Failed to find view with id " + id + ": body is empty");
         }
-        final ViewDto view = metadataMapper.viewDtoToViewDto(response.getBody());
+        final ViewDto view = dataMapper.viewDtoToViewDto(response.getBody());
         view.setLastRetrieved(Instant.now());
         return view;
     }
@@ -210,7 +210,7 @@ public class MetadataServiceGatewayImpl implements MetadataServiceGateway {
             log.error("Failed to find user with id {}: body is empty", userId);
             throw new MetadataServiceException("Failed to find user with id " + userId + ": body is empty");
         }
-        final UserDto user = metadataMapper.userDtoToUserDto(response.getBody());
+        final UserDto user = dataMapper.userDtoToUserDto(response.getBody());
         user.setUsername(response.getHeaders().get("X-Username").get(0));
         user.setPassword(response.getHeaders().get("X-Password").get(0));
         user.setLastRetrieved(Instant.now());
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/listener/DefaultListener.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/listener/DefaultListener.java
similarity index 95%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/listener/DefaultListener.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/listener/DefaultListener.java
index 59e34fbe65db283c936b84e64cf7d34b78c86fcd..436cadc3d3e63680b0953cf3633a54b60faa33b4 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/listener/DefaultListener.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/listener/DefaultListener.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.listener;
+package at.ac.tuwien.ifs.dbrepo.listener;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
@@ -6,8 +6,8 @@ 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.ac.at.ifs.dbrepo.service.CacheService;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.QueueService;
+import at.ac.tuwien.ifs.dbrepo.service.CacheService;
+import at.ac.tuwien.ifs.dbrepo.service.QueueService;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import io.micrometer.observation.annotation.Observed;
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/mapper/DataMapper.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/mapper/DataMapper.java
similarity index 89%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/mapper/DataMapper.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/mapper/DataMapper.java
index 5408f338b2ea5b423bec09c7af2fd35e3e9831ee..ddf7f9a882ab9b460f101b09a4a83b7c3b41e410 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/mapper/DataMapper.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/mapper/DataMapper.java
@@ -1,8 +1,11 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.mapper;
+package at.ac.tuwien.ifs.dbrepo.mapper;
 
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+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.query.QueryDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.table.*;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.*;
@@ -13,12 +16,19 @@ import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.Forei
 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.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 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;
+import org.keycloak.representations.AccessTokenResponse;
 import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.Mappings;
 
 import java.io.File;
 import java.io.IOException;
@@ -42,15 +52,64 @@ public interface DataMapper {
     DateTimeFormatter mariaDbFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss[.SSSSSS]")
             .withZone(ZoneId.of("UTC"));
 
-    /* redundant */
-    ColumnBriefDto columnDtoToColumnBriefDto(ColumnDto data);
+    ContainerDto containerDtoToContainerDto(ContainerDto data);
 
-    /* redundant */
-    TableBriefDto tableDtoToTableBriefDto(TableDto data);
+    @Mappings({
+            @Mapping(target = "id", source = "userId"),
+            @Mapping(target = "username", source = "privilegedUsername"),
+            @Mapping(target = "password", source = "privilegedPassword"),
+    })
+    UserDto createDatabaseDtoToPrivilegedUserDto(CreateDatabaseDto data);
+
+    @Mappings({
+            @Mapping(target = "username", source = "readonlyUsername"),
+            @Mapping(target = "password", source = "readonlyPassword"),
+    })
+    UserDto createDatabaseDtoToReadonlyUserDto(CreateDatabaseDto data);
+
+    DatabaseBriefDto databaseDtoToDatabaseBriefDto(DatabaseDto data);
 
-    /* redundant */
     ColumnDto viewColumnDtoToColumnDto(ViewColumnDto data);
 
+    ViewColumnDto columnDtoToViewColumnDto(ColumnDto data);
+
+    TableDto tableDtoToTableDto(TableDto data);
+
+    ViewDto viewDtoToViewDto(ViewDto data);
+
+    UserDto userDtoToUserDto(UserDto data);
+
+    @Mappings({
+            @Mapping(target = "accessToken", source = "token")
+    })
+    TokenDto accessTokenResponseToTokenDto(AccessTokenResponse data);
+
+    UserBriefDto userDtoToUserBriefDto(UserDto data);
+
+    TableBriefDto tableDtoToTableBriefDto(TableDto data);
+
+    IdentifierBriefDto identifierDtoToIdentifierBriefDto(IdentifierDto data);
+
+    default String metricToUri(String baseUrl, UUID databaseId, UUID tableId, UUID subsetId, UUID viewId) {
+        final StringBuilder uri = new StringBuilder(baseUrl)
+                .append("/database/")
+                .append(databaseId);
+        if (tableId != null) {
+            uri.append("/table/")
+                    .append(tableId);
+        } else if (subsetId != null) {
+            uri.append("/subset/")
+                    .append(subsetId);
+        } else if (viewId != null) {
+            uri.append("/view/")
+                    .append(viewId);
+        }
+        log.trace("count uri: {}", uri);
+        return uri.toString();
+    }
+
+    ColumnBriefDto columnDtoToColumnBriefDto(ColumnDto data);
+
     ForeignKeyBriefDto foreignKeyDtoToForeignKeyBriefDto(ForeignKeyDto data);
 
     default String rabbitMqTupleToInsertOrUpdateQuery(String databaseName, TableDto table, Map<String, Object> data) {
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/mapper/MariaDbMapper.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/mapper/MariaDbMapper.java
similarity index 99%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/mapper/MariaDbMapper.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/mapper/MariaDbMapper.java
index 7895c902e70964fb6aee68927bd40a6b798e58a8..336c88cc8d794662da2935531efc0e5e9d284155 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/mapper/MariaDbMapper.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/mapper/MariaDbMapper.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.mapper;
+package at.ac.tuwien.ifs.dbrepo.mapper;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.container.image.OperatorDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
@@ -15,7 +15,7 @@ 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.*;
-import at.ac.tuwien.ac.at.ifs.dbrepo.utils.MariaDbUtil;
+import at.ac.tuwien.ifs.dbrepo.utils.MariaDbUtil;
 import org.jooq.*;
 import org.jooq.Record;
 import org.jooq.conf.ParamType;
@@ -39,7 +39,7 @@ import java.util.stream.Collectors;
 import static org.jooq.impl.DSL.field;
 import static org.jooq.impl.DSL.name;
 
-@Mapper(componentModel = "spring", uses = {MetadataMapper.class, DataMapper.class})
+@Mapper(componentModel = "spring", uses = {DataMapper.class, DataMapper.class})
 public interface MariaDbMapper {
 
     org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(MariaDbMapper.class);
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/AccessService.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/AccessService.java
similarity index 97%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/AccessService.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/AccessService.java
index 18b821f86d15a0ba12ad1d7cbdac3568ef363405..966aafa6080861e4f88831c238a881d297245128 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/AccessService.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/AccessService.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service;
+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.DatabaseDto;
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/CacheService.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/CacheService.java
similarity index 98%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/CacheService.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/CacheService.java
index 3304ab8e1df25b69bb7d01d5cc434617753ac8d3..efe211491f13cad1c3d824a86b66e71672614e7b 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/CacheService.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/CacheService.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
@@ -25,7 +25,7 @@ public interface CacheService {
      * @throws RemoteUnavailableException The remote service is not available.
      * @throws MetadataServiceException   The remote service returned invalid data.
      */
-    DatabaseDto getDatabase(UUID id, Boolean forceReload) throws DatabaseNotFoundException, RemoteUnavailableException,
+    DatabaseDto getDatabase(UUID id, boolean forceReload) throws DatabaseNotFoundException, RemoteUnavailableException,
             MetadataServiceException;
 
     /**
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/ContainerService.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ContainerService.java
similarity index 96%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/ContainerService.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ContainerService.java
index 4baf82c7d2bdc2839e20fb73a737ce0f454518b5..a38bc6688bc7680d71a6a10cb51c209a171d73e0 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/ContainerService.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ContainerService.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/CredentialService.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/CredentialService.java
similarity index 90%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/CredentialService.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/CredentialService.java
index b1da6ede1169a9ae26483c56a7e0c888f4c161eb..4a54849006fa031872af1b1aa43938036e3ac243 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/CredentialService.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/CredentialService.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
 
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/DatabaseService.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/DatabaseService.java
similarity index 98%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/DatabaseService.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/DatabaseService.java
index 3f9a8778aa4bc168270115b9f9e0ffaaedd5c8cd..6fc9e273df1c9a4d757ab73fced91a0e2378b6a7 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/DatabaseService.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/DatabaseService.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/QueueService.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/QueueService.java
similarity index 92%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/QueueService.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/QueueService.java
index dfeb996755a4b400338e131ad0b5613dc51df8f8..2a53210f314d3b826b7d336a759380bdecd47f51 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/QueueService.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/QueueService.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/StorageService.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/StorageService.java
similarity index 98%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/StorageService.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/StorageService.java
index 88a3fd4d2901e642ab7674988f3f776d687a30b1..19540194abbb08be71fe741e5d0b9586ec992e47 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/StorageService.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/StorageService.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.ExportResourceDto;
 import at.ac.tuwien.ifs.dbrepo.core.exception.MalformedException;
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/SubsetService.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/SubsetService.java
similarity index 99%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/SubsetService.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/SubsetService.java
index 7b85908a764908c095326abab61330a7f52f2920..eb341c95eb13ddd824f5ec177dd273094e4f47fc 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/SubsetService.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/SubsetService.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryDto;
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/TableService.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/TableService.java
similarity index 99%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/TableService.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/TableService.java
index 6cc72d52ec2605b3bcea73a0c5348bd2177048b2..f2b246eb8b457d5ec4f337e51cc0a5a8ec723ff3 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/TableService.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/TableService.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.query.ImportDto;
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/ViewService.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ViewService.java
similarity index 96%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/ViewService.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ViewService.java
index b2041019713b89a953405b5c8e4bcd3ccc4dc008..60bd5dd180c6f5d4f4f2a1c8332a328586c3078e 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/ViewService.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ViewService.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/AccessServiceMariaDbImpl.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/AccessServiceMariaDbImpl.java
similarity index 86%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/AccessServiceMariaDbImpl.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/AccessServiceMariaDbImpl.java
index 4f1cc7ac6504efe64bfb1ed515cd55e9ccf15fe0..7e02560b78df6a481014433adde1b8952e7286af 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/AccessServiceMariaDbImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/AccessServiceMariaDbImpl.java
@@ -1,11 +1,11 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service.impl;
+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.database.DatabaseDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
 import at.ac.tuwien.ifs.dbrepo.core.exception.DatabaseMalformedException;
-import at.ac.tuwien.ac.at.ifs.dbrepo.mapper.MariaDbMapper;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.AccessService;
+import at.ac.tuwien.ifs.dbrepo.mapper.MariaDbMapper;
+import at.ac.tuwien.ifs.dbrepo.service.AccessService;
 import com.mchange.v2.c3p0.ComboPooledDataSource;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -42,22 +42,22 @@ public class AccessServiceMariaDbImpl extends DataConnector implements AccessSer
             long start = System.currentTimeMillis();
             connection.prepareStatement(mariaDbMapper.databaseCreateUserQuery(user.getUsername(), user.getPassword()))
                     .execute();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             /* grant access */
             final String grants = access != AccessTypeDto.READ ? grantDefaultWrite : grantDefaultRead;
             start = System.currentTimeMillis();
             connection.prepareStatement(mariaDbMapper.databaseGrantPrivilegesQuery(user.getUsername(), grants))
                     .execute();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             /* grant query store */
             start = System.currentTimeMillis();
             connection.prepareStatement(mariaDbMapper.databaseGrantProcedureQuery(user.getUsername(), "store_query"))
                     .execute();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             /* apply access rights */
             start = System.currentTimeMillis();
             connection.prepareStatement(mariaDbMapper.databaseFlushPrivilegesQuery());
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             connection.commit();
         } catch (SQLException e) {
             connection.rollback();
@@ -81,7 +81,7 @@ public class AccessServiceMariaDbImpl extends DataConnector implements AccessSer
             final long start = System.currentTimeMillis();
             connection.prepareStatement(mariaDbMapper.databaseGrantPrivilegesQuery(user.getUsername(), grants))
                     .execute();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             /* apply access rights */
             connection.prepareStatement(mariaDbMapper.databaseFlushPrivilegesQuery());
             connection.commit();
@@ -105,12 +105,12 @@ public class AccessServiceMariaDbImpl extends DataConnector implements AccessSer
             long start = System.currentTimeMillis();
             connection.prepareStatement(mariaDbMapper.databaseRevokePrivilegesQuery(user.getUsername()))
                     .execute();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             /* apply access rights */
             start = System.currentTimeMillis();
             connection.prepareStatement(mariaDbMapper.databaseFlushPrivilegesQuery())
                     .execute();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             connection.commit();
         } catch (SQLException e) {
             connection.rollback();
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/CacheServiceImpl.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/CacheServiceImpl.java
similarity index 96%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/CacheServiceImpl.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/CacheServiceImpl.java
index 44fbfa36f45b965fbb38384a10b9158365e3356b..1ad95511304912d1b4304e0bcbd1d94e1a162b87 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/CacheServiceImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/CacheServiceImpl.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
@@ -8,9 +8,9 @@ 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.ac.tuwien.ac.at.ifs.dbrepo.gateway.MetadataServiceGateway;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.CacheService;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.TableService;
+import at.ac.tuwien.ifs.dbrepo.gateway.MetadataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.service.CacheService;
+import at.ac.tuwien.ifs.dbrepo.service.TableService;
 import com.github.benmanes.caffeine.cache.Cache;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -51,7 +51,7 @@ public class CacheServiceImpl implements CacheService {
     }
 
     @Override
-    public DatabaseDto getDatabase(UUID id, Boolean forceReload) throws DatabaseNotFoundException, RemoteUnavailableException,
+    public DatabaseDto getDatabase(UUID id, boolean forceReload) throws DatabaseNotFoundException, RemoteUnavailableException,
             MetadataServiceException {
         if (!forceReload) {
             final DatabaseDto cacheDatabase = databaseCache.getIfPresent(id);
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/ContainerServiceMariaDbImpl.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ContainerServiceMariaDbImpl.java
similarity index 85%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/ContainerServiceMariaDbImpl.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ContainerServiceMariaDbImpl.java
index 8a61a05af51f4a1834bd384e0928933de510b75d..1a2d9fa2def0fe261c417ac3d594ae948319e2d4 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/ContainerServiceMariaDbImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ContainerServiceMariaDbImpl.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
@@ -6,9 +6,9 @@ import at.ac.tuwien.ifs.dbrepo.core.api.database.internal.CreateDatabaseDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
 import at.ac.tuwien.ifs.dbrepo.core.exception.DatabaseMalformedException;
 import at.ac.tuwien.ifs.dbrepo.core.exception.QueryStoreCreateException;
-import at.ac.tuwien.ac.at.ifs.dbrepo.config.RabbitConfig;
-import at.ac.tuwien.ac.at.ifs.dbrepo.mapper.MariaDbMapper;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.ContainerService;
+import at.ac.tuwien.ifs.dbrepo.config.RabbitConfig;
+import at.ac.tuwien.ifs.dbrepo.mapper.MariaDbMapper;
+import at.ac.tuwien.ifs.dbrepo.service.ContainerService;
 import com.mchange.v2.c3p0.ComboPooledDataSource;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -40,7 +40,7 @@ public class ContainerServiceMariaDbImpl extends DataConnector implements Contai
             final long start = System.currentTimeMillis();
             connection.prepareStatement(mariaDbMapper.databaseCreateDatabaseQuery(data.getInternalName()))
                     .execute();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             connection.commit();
         } catch (SQLException e) {
             connection.rollback();
@@ -73,19 +73,19 @@ public class ContainerServiceMariaDbImpl extends DataConnector implements Contai
             long start = System.currentTimeMillis();
             connection.prepareStatement(mariaDbMapper.queryStoreCreateTableRawQuery())
                     .execute();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             start = System.currentTimeMillis();
             connection.prepareStatement(mariaDbMapper.queryStoreCreateHashTableProcedureRawQuery())
                     .execute();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             start = System.currentTimeMillis();
             connection.prepareStatement(mariaDbMapper.queryStoreCreateStoreQueryProcedureRawQuery())
                     .execute();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             start = System.currentTimeMillis();
             connection.prepareStatement(mariaDbMapper.queryStoreCreateInternalStoreQueryProcedureRawQuery())
                     .execute();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             connection.commit();
         } catch (SQLException e) {
             connection.rollback();
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/CredentialServiceImpl.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/CredentialServiceImpl.java
similarity index 89%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/CredentialServiceImpl.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/CredentialServiceImpl.java
index ed9420a984154b84c50cebbacdd704c8f2262ea5..9d708e28d87e963370920e2f1e2cdf2ea71049d1 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/CredentialServiceImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/CredentialServiceImpl.java
@@ -1,9 +1,9 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ac.at.ifs.dbrepo.auth.AuthTokenFilter;
+import at.ac.tuwien.ifs.dbrepo.auth.AuthTokenFilter;
 import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
-import at.ac.tuwien.ac.at.ifs.dbrepo.gateway.KeycloakGateway;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.CredentialService;
+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-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/DataConnector.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DataConnector.java
similarity index 94%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/DataConnector.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DataConnector.java
index cb476e79ecfb4168c7565226b93d186ee6e32ebb..1100b0e7b98adf975e59c23e61ea4cd9e76ebf19 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/DataConnector.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DataConnector.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
@@ -14,6 +14,8 @@ import java.sql.SQLException;
 @Service
 public abstract class DataConnector {
 
+    public static final String EXECUTED_STATEMENT_MS = "executed statement in {} ms";
+
     public ComboPooledDataSource getDataSource(ContainerDto container, String databaseName) {
         final ComboPooledDataSource dataSource = new ComboPooledDataSource();
         dataSource.setJdbcUrl(getJdbcUrl(container, databaseName));
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/DatabaseServiceMariaDbImpl.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DatabaseServiceMariaDbImpl.java
similarity index 90%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/DatabaseServiceMariaDbImpl.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DatabaseServiceMariaDbImpl.java
index f4a496b3861ea80e3180f2dbadb689b8a4a32897..5db0fd57136161caf87c6038f201102aafc8c294 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/DatabaseServiceMariaDbImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DatabaseServiceMariaDbImpl.java
@@ -1,9 +1,8 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ac.at.ifs.dbrepo.mapper.DataMapper;
-import at.ac.tuwien.ac.at.ifs.dbrepo.mapper.MariaDbMapper;
-import at.ac.tuwien.ac.at.ifs.dbrepo.mapper.MetadataMapper;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.DatabaseService;
+import at.ac.tuwien.ifs.dbrepo.mapper.DataMapper;
+import at.ac.tuwien.ifs.dbrepo.mapper.MariaDbMapper;
+import at.ac.tuwien.ifs.dbrepo.service.DatabaseService;
 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;
@@ -31,14 +30,11 @@ public class DatabaseServiceMariaDbImpl extends DataConnector implements Databas
 
     private final DataMapper dataMapper;
     private final MariaDbMapper mariaDbMapper;
-    private final MetadataMapper metadataMapper;
 
     @Autowired
-    public DatabaseServiceMariaDbImpl(DataMapper dataMapper, MariaDbMapper mariaDbMapper,
-                                      MetadataMapper metadataMapper) {
+    public DatabaseServiceMariaDbImpl(DataMapper dataMapper, MariaDbMapper mariaDbMapper) {
         this.dataMapper = dataMapper;
         this.mariaDbMapper = mariaDbMapper;
-        this.metadataMapper = metadataMapper;
     }
 
     @Override
@@ -53,7 +49,7 @@ public class DatabaseServiceMariaDbImpl extends DataConnector implements Databas
             statement1.setString(2, viewName);
             log.trace("1={}, 2={}", database.getInternalName(), viewName);
             final ResultSet resultSet1 = statement1.executeQuery();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             if (!resultSet1.next()) {
                 throw new ViewNotFoundException("Failed to find view in the information schema");
             }
@@ -67,7 +63,7 @@ public class DatabaseServiceMariaDbImpl extends DataConnector implements Databas
             statement2.setString(2, view.getInternalName());
             log.trace("1={}, 2={}", database.getInternalName(), view.getInternalName());
             final ResultSet resultSet2 = statement2.executeQuery();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             TableDto tmp = TableDto.builder()
                     .columns(new LinkedList<>())
                     .build();
@@ -76,7 +72,7 @@ public class DatabaseServiceMariaDbImpl extends DataConnector implements Databas
             }
             view.setColumns(tmp.getColumns()
                     .stream()
-                    .map(metadataMapper::columnDtoToViewColumnDto)
+                    .map(dataMapper::columnDtoToViewColumnDto)
                     .toList());
             view.getColumns()
                     .forEach(column -> column.setDatabaseId(database.getId()));
@@ -99,7 +95,7 @@ public class DatabaseServiceMariaDbImpl extends DataConnector implements Databas
             connection.prepareStatement(mariaDbMapper.tableCreateDtoToCreateTableRawQuery(database.getInternalName(),
                             data))
                     .execute();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             connection.commit();
         } catch (SQLException e) {
             connection.rollback();
@@ -141,7 +137,7 @@ public class DatabaseServiceMariaDbImpl extends DataConnector implements Databas
             final long start = System.currentTimeMillis();
             connection.prepareStatement(mariaDbMapper.viewCreateRawQuery(view.getInternalName(), query))
                     .execute();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             /* select view columns */
             final PreparedStatement statement2 = connection.prepareStatement(mariaDbMapper.databaseTableColumnsSelectRawQuery());
             statement2.setString(1, database.getInternalName());
@@ -175,7 +171,7 @@ public class DatabaseServiceMariaDbImpl extends DataConnector implements Databas
             statement.setString(1, database.getInternalName());
             final long start = System.currentTimeMillis();
             final ResultSet resultSet1 = statement.executeQuery();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             while (resultSet1.next()) {
                 final String viewName = resultSet1.getString(1);
                 if (viewName.length() == 64) {
@@ -212,7 +208,7 @@ public class DatabaseServiceMariaDbImpl extends DataConnector implements Databas
             final PreparedStatement statement = connection.prepareStatement(mariaDbMapper.databaseTablesSelectRawQuery());
             statement.setString(1, database.getInternalName());
             final ResultSet resultSet1 = statement.executeQuery();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             while (resultSet1.next()) {
                 final String tableName = resultSet1.getString(1);
                 if (database.getTables().stream().anyMatch(t -> t.getInternalName().equals(tableName))) {
@@ -247,7 +243,7 @@ public class DatabaseServiceMariaDbImpl extends DataConnector implements Databas
             statement1.setString(2, tableName);
             log.trace("1={}, 2={}", database.getInternalName(), tableName);
             TableDto table = dataMapper.schemaResultSetToTable(database, statement1.executeQuery());
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             /* obtain columns metadata */
             start = System.currentTimeMillis();
             final PreparedStatement statement2 = connection.prepareStatement(mariaDbMapper.databaseTableColumnsSelectRawQuery());
@@ -255,7 +251,7 @@ public class DatabaseServiceMariaDbImpl extends DataConnector implements Databas
             statement2.setString(2, tableName);
             log.trace("1={}, 2={}", database.getInternalName(), tableName);
             final ResultSet resultSet2 = statement2.executeQuery();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             while (resultSet2.next()) {
                 table = dataMapper.resultSetToTable(resultSet2, table);
             }
@@ -266,7 +262,7 @@ public class DatabaseServiceMariaDbImpl extends DataConnector implements Databas
             statement3.setString(2, tableName);
             log.trace("1={}, 2={}", database.getInternalName(), tableName);
             final ResultSet resultSet3 = statement3.executeQuery();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             while (resultSet3.next()) {
                 final String clause = resultSet3.getString(1);
                 table.getConstraints()
@@ -281,11 +277,11 @@ public class DatabaseServiceMariaDbImpl extends DataConnector implements Databas
             statement4.setString(2, tableName);
             log.trace("1={}, 2={}", database.getInternalName(), tableName);
             final ResultSet resultSet4 = statement4.executeQuery();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             while (resultSet4.next()) {
                 table = dataMapper.resultSetToConstraint(resultSet4, table);
                 for (UniqueDto uk : table.getConstraints().getUniques()) {
-                    uk.setTable(metadataMapper.tableDtoToTableBriefDto(table));
+                    uk.setTable(dataMapper.tableDtoToTableBriefDto(table));
                     final TableDto tmpTable = table;
                     uk.getColumns()
                             .forEach(column -> {
@@ -319,7 +315,7 @@ public class DatabaseServiceMariaDbImpl extends DataConnector implements Databas
             final long start = System.currentTimeMillis();
             connection.prepareStatement(mariaDbMapper.databaseSetPasswordQuery(data.getUsername(), data.getPassword()))
                     .execute();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             connection.commit();
         } catch (SQLException e) {
             connection.rollback();
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/QueueServiceRabbitMqImpl.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/QueueServiceRabbitMqImpl.java
similarity index 79%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/QueueServiceRabbitMqImpl.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/QueueServiceRabbitMqImpl.java
index e6ad806daa7ba53ab8a4816e7c7130e15d77f7eb..190863696306b1942036a85cf9f7c95847e2f745 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/QueueServiceRabbitMqImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/QueueServiceRabbitMqImpl.java
@@ -1,11 +1,10 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
 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.ac.tuwien.ac.at.ifs.dbrepo.mapper.DataMapper;
-import at.ac.tuwien.ac.at.ifs.dbrepo.mapper.MetadataMapper;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.QueueService;
+import at.ac.tuwien.ifs.dbrepo.mapper.DataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.QueueService;
 import com.mchange.v2.c3p0.ComboPooledDataSource;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,12 +21,10 @@ import java.util.Optional;
 public class QueueServiceRabbitMqImpl extends DataConnector implements QueueService {
 
     private final DataMapper dataMapper;
-    private final MetadataMapper metadataMapper;
 
     @Autowired
-    public QueueServiceRabbitMqImpl(DataMapper dataMapper, MetadataMapper metadataMapper) {
+    public QueueServiceRabbitMqImpl(DataMapper dataMapper) {
         this.dataMapper = dataMapper;
-        this.metadataMapper = metadataMapper;
     }
 
     @Override
@@ -38,7 +35,7 @@ public class QueueServiceRabbitMqImpl extends DataConnector implements QueueServ
             final int[] idx = new int[]{1};
             final PreparedStatement preparedStatement = connection.prepareStatement(
                     dataMapper.rabbitMqTupleToInsertOrUpdateQuery(database.getInternalName(),
-                            metadataMapper.tableDtoToTableDto(table), data));
+                            dataMapper.tableDtoToTableDto(table), data));
             for (Map.Entry<String, Object> entry : data.entrySet()) {
                 final Optional<ColumnDto> optional = table.getColumns().stream().filter(c -> c.getInternalName().equals(entry.getKey())).findFirst();
                 if (optional.isEmpty()) {
@@ -50,7 +47,7 @@ public class QueueServiceRabbitMqImpl extends DataConnector implements QueueServ
             }
             final long start = System.currentTimeMillis();
             preparedStatement.executeUpdate();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             log.trace("successfully inserted tuple");
         } finally {
             dataSource.close();
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/StorageServiceS3Impl.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/StorageServiceS3Impl.java
similarity index 97%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/StorageServiceS3Impl.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/StorageServiceS3Impl.java
index 94cf2b43db8ae6ec3d13da1edaa2eec8bbebbbc8..d29f5e2a2dc8c864402c4d0d66c4ab7de336461b 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/StorageServiceS3Impl.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/StorageServiceS3Impl.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ac.at.ifs.dbrepo.config.S3Config;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.StorageService;
+import at.ac.tuwien.ifs.dbrepo.config.S3Config;
+import at.ac.tuwien.ifs.dbrepo.service.StorageService;
 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;
@@ -9,7 +9,6 @@ import at.ac.tuwien.ifs.dbrepo.core.exception.StorageUnavailableException;
 import at.ac.tuwien.ifs.dbrepo.core.exception.TableMalformedException;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.lang3.RandomStringUtils;
-import org.apache.james.mime4j.dom.datetime.DateTime;
 import org.apache.spark.sql.*;
 import org.apache.spark.sql.catalyst.ExtendedAnalysisException;
 import org.apache.spark.sql.types.StructField;
@@ -22,8 +21,6 @@ import software.amazon.awssdk.services.s3.model.*;
 
 import java.io.*;
 import java.nio.charset.Charset;
-import java.time.Instant;
-import java.time.temporal.ChronoUnit;
 import java.util.Arrays;
 import java.util.LinkedHashMap;
 import java.util.List;
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/SubsetServiceMariaDbImpl.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/SubsetServiceMariaDbImpl.java
similarity index 89%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/SubsetServiceMariaDbImpl.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/SubsetServiceMariaDbImpl.java
index d19e18e52a676dfa74d7d6c12f5f3fccb5bee5ad..b8044175dc5abbed006093211e2b89335b90e316 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/SubsetServiceMariaDbImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/SubsetServiceMariaDbImpl.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryDto;
@@ -6,11 +6,10 @@ 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.ac.tuwien.ac.at.ifs.dbrepo.gateway.MetadataServiceGateway;
-import at.ac.tuwien.ac.at.ifs.dbrepo.mapper.DataMapper;
-import at.ac.tuwien.ac.at.ifs.dbrepo.mapper.MariaDbMapper;
-import at.ac.tuwien.ac.at.ifs.dbrepo.mapper.MetadataMapper;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.SubsetService;
+import at.ac.tuwien.ifs.dbrepo.gateway.MetadataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.mapper.DataMapper;
+import at.ac.tuwien.ifs.dbrepo.mapper.MariaDbMapper;
+import at.ac.tuwien.ifs.dbrepo.service.SubsetService;
 import com.mchange.v2.c3p0.ComboPooledDataSource;
 import lombok.extern.log4j.Log4j2;
 import org.apache.spark.sql.Dataset;
@@ -35,18 +34,15 @@ public class SubsetServiceMariaDbImpl extends DataConnector implements SubsetSer
     private final DataMapper dataMapper;
     private final SparkSession sparkSession;
     private final MariaDbMapper mariaDbMapper;
-    private final MetadataMapper metadataMapper;
     private final MetadataServiceGateway metadataServiceGateway;
 
     @Autowired
     public SubsetServiceMariaDbImpl(DSLContext context, DataMapper dataMapper, MariaDbMapper mariaDbMapper,
-                                    SparkSession sparkSession, MetadataMapper metadataMapper,
-                                    MetadataServiceGateway metadataServiceGateway) {
+                                    SparkSession sparkSession, MetadataServiceGateway metadataServiceGateway) {
         this.context = context;
         this.dataMapper = dataMapper;
         this.sparkSession = sparkSession;
         this.mariaDbMapper = mariaDbMapper;
-        this.metadataMapper = metadataMapper;
         this.metadataServiceGateway = metadataServiceGateway;
     }
 
@@ -98,7 +94,7 @@ public class SubsetServiceMariaDbImpl extends DataConnector implements SubsetSer
                 log.trace("filter persisted only {}", filterPersisted);
             }
             final ResultSet resultSet = statement.executeQuery();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             final List<QueryDto> queries = new LinkedList<>();
             while (resultSet.next()) {
                 final QueryDto query = dataMapper.resultSetToQueryDto(resultSet);
@@ -127,7 +123,7 @@ public class SubsetServiceMariaDbImpl extends DataConnector implements SubsetSer
             final long start = System.currentTimeMillis();
             final ResultSet resultSet = connection.prepareStatement(mariaDbMapper.countRawSelectQuery(statement, timestamp))
                     .executeQuery();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             return mariaDbMapper.resultSetToNumber(resultSet);
         } catch (SQLException e) {
             log.error("Failed to map object: {}", e.getMessage());
@@ -147,12 +143,12 @@ public class SubsetServiceMariaDbImpl extends DataConnector implements SubsetSer
             final PreparedStatement preparedStatement = connection.prepareStatement(mariaDbMapper.queryStoreFindQueryRawQuery());
             preparedStatement.setString(1, String.valueOf(queryId));
             final ResultSet resultSet = preparedStatement.executeQuery();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             if (!resultSet.next()) {
                 throw new QueryNotFoundException("Failed to find query");
             }
             final QueryDto query = dataMapper.resultSetToQueryDto(resultSet);
-            query.setOwner(metadataMapper.userDtoToUserBriefDto(metadataServiceGateway.getUserById(query.getOwner()
+            query.setOwner(dataMapper.userDtoToUserBriefDto(metadataServiceGateway.getUserById(query.getOwner()
                     .getId())));
             query.setDatabaseId(database.getId());
             return query;
@@ -184,7 +180,7 @@ public class SubsetServiceMariaDbImpl extends DataConnector implements SubsetSer
             callableStatement.setTimestamp(3, Timestamp.from(timestamp));
             callableStatement.registerOutParameter(4, Types.VARCHAR);
             callableStatement.executeUpdate();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             queryId = UUID.fromString(callableStatement.getString(4));
             callableStatement.close();
             log.info("Stored query with id {} in database with name {}", queryId, database.getInternalName());
@@ -211,7 +207,7 @@ public class SubsetServiceMariaDbImpl extends DataConnector implements SubsetSer
             preparedStatement.setBoolean(1, persist);
             preparedStatement.setString(2, String.valueOf(queryId));
             preparedStatement.executeUpdate();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
         } catch (SQLException e) {
             log.error("Failed to (un-)persist query: {}", e.getMessage());
             throw new QueryStorePersistException("Failed to (un-)persist query", e);
@@ -229,7 +225,7 @@ public class SubsetServiceMariaDbImpl extends DataConnector implements SubsetSer
             final long start = System.currentTimeMillis();
             connection.prepareStatement(mariaDbMapper.queryStoreDeleteStaleQueriesRawQuery())
                     .executeUpdate();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
         } catch (SQLException e) {
             log.error("Failed to delete stale queries: {}", e.getMessage());
             throw new QueryStoreGCException("Failed to delete stale queries: " + e.getMessage(), e);
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/TableServiceMariaDbImpl.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/TableServiceMariaDbImpl.java
similarity index 94%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/TableServiceMariaDbImpl.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/TableServiceMariaDbImpl.java
index f337cc8b1b7c4b32c00364e29d2050d23c75de44..1ca0da14d8e87972dc58eedc1e139f1da8b62451 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/TableServiceMariaDbImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/TableServiceMariaDbImpl.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
 import at.ac.tuwien.ifs.dbrepo.core.api.database.query.ImportDto;
@@ -7,12 +7,12 @@ 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.ac.tuwien.ac.at.ifs.dbrepo.mapper.DataMapper;
-import at.ac.tuwien.ac.at.ifs.dbrepo.mapper.MariaDbMapper;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.DatabaseService;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.StorageService;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.TableService;
-import at.ac.tuwien.ac.at.ifs.dbrepo.utils.MariaDbUtil;
+import at.ac.tuwien.ifs.dbrepo.mapper.DataMapper;
+import at.ac.tuwien.ifs.dbrepo.mapper.MariaDbMapper;
+import at.ac.tuwien.ifs.dbrepo.service.DatabaseService;
+import at.ac.tuwien.ifs.dbrepo.service.StorageService;
+import at.ac.tuwien.ifs.dbrepo.service.TableService;
+import at.ac.tuwien.ifs.dbrepo.utils.MariaDbUtil;
 import com.mchange.v2.c3p0.ComboPooledDataSource;
 import lombok.extern.log4j.Log4j2;
 import org.apache.spark.sql.AnalysisException;
@@ -70,7 +70,7 @@ public class TableServiceMariaDbImpl extends DataConnector implements TableServi
             statistic = dataMapper.resultSetToTableStatistic(resultSet);
             statistic.setTotalColumns(Long.parseLong("" + tmpTable.getColumns()
                     .size()));
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             statistic.setAvgRowLength(tmpTable.getAvgRowLength());
             statistic.setDataLength(tmpTable.getDataLength());
             statistic.setMaxDataLength(tmpTable.getMaxDataLength());
@@ -110,7 +110,7 @@ public class TableServiceMariaDbImpl extends DataConnector implements TableServi
                 statement.setString(1, data.getDescription());
             }
             statement.executeUpdate();
-            log.debug("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.debug(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             connection.commit();
         } catch (SQLException e) {
             connection.rollback();
@@ -132,7 +132,7 @@ public class TableServiceMariaDbImpl extends DataConnector implements TableServi
             connection.prepareStatement(mariaDbMapper.dropTableRawQuery(database.getInternalName(),
                             table.getInternalName()))
                     .execute();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             connection.commit();
         } catch (SQLException e) {
             connection.rollback();
@@ -156,7 +156,7 @@ public class TableServiceMariaDbImpl extends DataConnector implements TableServi
             final ResultSet resultSet = connection.prepareStatement(mariaDbMapper.selectHistoryRawQuery(
                             database.getInternalName(), table.getInternalName(), size))
                     .executeQuery();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             history = dataMapper.resultSetToTableHistory(resultSet);
             connection.commit();
         } catch (SQLException e) {
@@ -182,7 +182,7 @@ public class TableServiceMariaDbImpl extends DataConnector implements TableServi
             final ResultSet resultSet = connection.prepareStatement(mariaDbMapper.selectCountRawQuery(
                             database.getInternalName(), tableName, timestamp))
                     .executeQuery();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             queryResult = mariaDbMapper.resultSetToNumber(resultSet);
             connection.commit();
         } catch (SQLException e) {
@@ -270,7 +270,7 @@ public class TableServiceMariaDbImpl extends DataConnector implements TableServi
             }
             final long start = System.currentTimeMillis();
             statement.executeUpdate();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             connection.commit();
         } catch (SQLException e) {
             connection.rollback();
@@ -315,7 +315,7 @@ public class TableServiceMariaDbImpl extends DataConnector implements TableServi
             }
             final long start = System.currentTimeMillis();
             statement.executeUpdate();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             connection.commit();
         } catch (SQLException e) {
             connection.rollback();
@@ -352,7 +352,7 @@ public class TableServiceMariaDbImpl extends DataConnector implements TableServi
             }
             final long start = System.currentTimeMillis();
             statement.executeUpdate();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             connection.commit();
         } catch (SQLException e) {
             connection.rollback();
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/ViewServiceMariaDbImpl.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ViewServiceMariaDbImpl.java
similarity index 90%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/ViewServiceMariaDbImpl.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ViewServiceMariaDbImpl.java
index 3122e6fc8b4c5e7d26ff080d2857fdf7bde3847d..5b8f2017aaaa13c02cad9252bed36d8686abec04 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/service/impl/ViewServiceMariaDbImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ViewServiceMariaDbImpl.java
@@ -1,11 +1,11 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
 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.ac.tuwien.ac.at.ifs.dbrepo.mapper.MariaDbMapper;
-import at.ac.tuwien.ac.at.ifs.dbrepo.service.ViewService;
+import at.ac.tuwien.ifs.dbrepo.mapper.MariaDbMapper;
+import at.ac.tuwien.ifs.dbrepo.service.ViewService;
 import com.mchange.v2.c3p0.ComboPooledDataSource;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -37,7 +37,7 @@ public class ViewServiceMariaDbImpl extends DataConnector implements ViewService
             connection.prepareStatement(mariaDbMapper.dropViewRawQuery(database.getInternalName(),
                             view.getInternalName()))
                     .execute();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             connection.commit();
         } catch (SQLException e) {
             connection.rollback();
@@ -61,7 +61,7 @@ public class ViewServiceMariaDbImpl extends DataConnector implements ViewService
             final ResultSet resultSet = connection.prepareStatement(mariaDbMapper.selectCountRawQuery(
                             database.getInternalName(), view.getInternalName(), timestamp))
                     .executeQuery();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
+            log.trace(EXECUTED_STATEMENT_MS, System.currentTimeMillis() - start);
             queryResult = mariaDbMapper.resultSetToNumber(resultSet);
             connection.commit();
         } catch (SQLException e) {
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/utils/MariaDbUtil.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/utils/MariaDbUtil.java
similarity index 97%
rename from dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/utils/MariaDbUtil.java
rename to dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/utils/MariaDbUtil.java
index 78f51fee877670f656c594e28e9b91f485177c62..8e27a151d31f75cc745607767cdd842c3df0f355 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ac/at/ifs/dbrepo/utils/MariaDbUtil.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/utils/MariaDbUtil.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ac.at.ifs.dbrepo.utils;
+package at.ac.tuwien.ifs.dbrepo.utils;
 
 import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnTypeDto;
 
diff --git a/dbrepo-metadata-service/.dockerignore b/dbrepo-metadata-service/.dockerignore
index fcdfe8de55e91b3b65fcf598c5980ae256087910..00e85186720976c4dc73fcb71829996845c4fed6 100644
--- a/dbrepo-metadata-service/.dockerignore
+++ b/dbrepo-metadata-service/.dockerignore
@@ -1 +1 @@
-rest-service/src/main/resources/*.csv
\ No newline at end of file
+rest-service/src/main/resources/*.csv
diff --git a/dbrepo-metadata-service/.gitignore b/dbrepo-metadata-service/.gitignore
index d39a47ee0fab72fbe4fd7f5ae968ff2f3bc3de78..3e5eeee0c8f132e1eae76cc90a3f0a418ef5f407 100644
--- a/dbrepo-metadata-service/.gitignore
+++ b/dbrepo-metadata-service/.gitignore
@@ -7,6 +7,9 @@ target/
 ### Environment ###
 .env
 
+### local repo ###
+lib/at/
+
 ### Generated ###
 ready
 mapping.xml
diff --git a/dbrepo-metadata-service/Dockerfile b/dbrepo-metadata-service/Dockerfile
index 8d01865d85a0d1cad2cad9f2f7849a655b9e0259..2d3acf1bd192eda57a807b8e0be6b48ccde398fc 100644
--- a/dbrepo-metadata-service/Dockerfile
+++ b/dbrepo-metadata-service/Dockerfile
@@ -1,17 +1,12 @@
 ###### FIRST STAGE ######
-FROM dbrepo-core:build AS dependency
-LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at"
-
-###### SECOND STAGE ######
-FROM maven:3-amazoncorretto-17 AS build
+FROM --platform=$BUILDPLATFORM maven:3-amazoncorretto-17 AS build
 LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at"
 
 COPY ./pom.xml ./
 
 RUN mvn -fn dependency:go-offline
 
-COPY --from=dependency /root/.m2/repository/at/ac/tuwien/ifs/dbrepo /root/.m2/repository/at/ac/tuwien/ifs/dbrepo
-
+COPY ./lib ./lib
 COPY ./oai ./oai
 COPY ./report ./report
 COPY ./repositories ./repositories
@@ -19,25 +14,29 @@ COPY ./rest-service ./rest-service
 COPY ./services ./services
 
 # Make sure it compiles
-RUN mvn -fn clean package -DskipTests
+RUN mvn -q clean package -DskipTests
 
-###### THIRD STAGE ######
-FROM amazoncorretto:17-alpine3.19 AS runtime
+###### SECOND STAGE ######
+FROM --platform=$BUILDPLATFORM amazoncorretto:17-alpine3.21 AS runtime
 LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at"
 
-RUN apk add --no-cache curl bash jq
+RUN apk --no-cache add \
+    bash \
+    curl \
+    jq
 
 WORKDIR /app
 
-RUN adduser -D dbrepo --uid 1001
+RUN adduser -D dbrepo --uid 1001 && \
+    chown -R 1001:1001 /app
 
 USER 1001
 
-COPY --from=build --chown=1001 ./rest-service/target/dbrepo-metadata-service-rest-service-*.jar ./metadata-service.jar
+COPY --from=build --chown=1001 ./rest-service/target/*rest-service-*.jar ./metadata-service.jar
 
 # non-root port
 EXPOSE 8080
 
-ENV JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true"
+ENV JAVA_OPTS=""
 
 ENTRYPOINT exec java $JAVA_OPTS -jar ./metadata-service.jar
\ No newline at end of file
diff --git a/dbrepo-metadata-service/README.md b/dbrepo-metadata-service/README.md
index 7160f7bbbc743d2bb6425773566c98eb86005143..64e71fbdfb77e345d3e0453a1ac740605b6675c1 100644
--- a/dbrepo-metadata-service/README.md
+++ b/dbrepo-metadata-service/README.md
@@ -1,5 +1,14 @@
 # Metadata Service
 
+## Build
+
+Before testing, it is recommended to (re-)build the `MapStruct` mappers in case they were modified using the `package`
+target:
+
+```shell
+mvn clean package
+```
+
 ## Test
 
 Run all unit and integration tests and create an HTML+TXT coverage report located in the `report` module:
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/doi/AffiliationDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/doi/AffiliationDto.java
deleted file mode 100644
index 807c03f48df24d122757da14161f0b98404ba5c1..0000000000000000000000000000000000000000
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/doi/AffiliationDto.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package at.tuwien.api.doi;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-import lombok.extern.jackson.Jacksonized;
-
-@Getter
-@Setter
-@Builder
-@EqualsAndHashCode
-@NoArgsConstructor
-@AllArgsConstructor
-@Jacksonized
-@ToString
-public class AffiliationDto {
-
-    @Schema(example = "ISE, TU Wien, Data Science Research Unit, Vienna, Austria")
-    private String name;
-
-}
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/doi/AuthorDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/doi/AuthorDto.java
deleted file mode 100644
index 8f8bbb61ffc64341119614f7de3395c40beac92e..0000000000000000000000000000000000000000
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/doi/AuthorDto.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package at.tuwien.api.doi;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-import lombok.extern.jackson.Jacksonized;
-
-import java.util.List;
-
-@Getter
-@Setter
-@Builder
-@EqualsAndHashCode
-@NoArgsConstructor
-@AllArgsConstructor
-@Jacksonized
-@ToString
-public class AuthorDto {
-
-    @Schema(example = "Weise")
-    private String family;
-
-    @Schema(example = "Martin")
-    private String given;
-
-    @JsonProperty("ORCID")
-    @Schema(example = "http://orcid.org/0000-0003-4216-302X")
-    private String orcid;
-
-    @Schema(example = "first")
-    private String sequence;
-
-    private List<AffiliationDto> affiliation;
-
-}
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/doi/DoiDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/doi/DoiDto.java
deleted file mode 100644
index af0cd5bcc64bf8797c81197fb6e9abc0cede6a7f..0000000000000000000000000000000000000000
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/doi/DoiDto.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package at.tuwien.api.doi;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.validation.constraints.NotNull;
-import lombok.*;
-import lombok.extern.jackson.Jacksonized;
-
-import java.util.List;
-
-@Getter
-@Setter
-@Builder
-@EqualsAndHashCode
-@NoArgsConstructor
-@AllArgsConstructor
-@Jacksonized
-@ToString
-public class DoiDto {
-
-    @NotNull
-    @Schema(example = "https://doi.org/10.5334/dsj-2022-004")
-    private String id;
-
-    @NotNull
-    private TimeRepresentationDto indexed;
-
-    private TimeRepresentationDto deposited;
-
-    private TimeRepresentationDto issued;
-
-    private TimeRepresentationDto published;
-
-    @JsonProperty("DOI")
-    @Schema(example = "10.5334/dsj-2022-004")
-    private String doi;
-
-    @NotNull
-    @Schema(example = "dataset")
-    private String type;
-
-    private List<AuthorDto> author;
-
-    @Schema(example = "Crossref")
-    private String source;
-
-    @Schema(example = "DBRepo: A Data Repository System for Research Data in Databases")
-    private String title;
-
-    @Schema(example = "10.1109")
-    private String prefix;
-
-    @Schema(example = "21")
-    private String volume;
-
-    @JsonProperty("is-referenced-by-count")
-    @Schema(example = "0")
-    private Integer isReferencedByCount;
-
-    @JsonProperty("reference-count")
-    @Schema(example = "28")
-    private Integer referenceCount;
-
-    @Schema(example = "IEEE")
-    private String publisher;
-
-    @Schema(example = "322-331")
-    private String page;
-
-    private String member;
-
-    @Schema(example = "2024 IEEE International Conference on Big Data (BigData)")
-    private String event;
-
-    private List<ReferenceDto> reference;
-
-    private Integer score;
-
-    @JsonProperty("URL")
-    private String url;
-
-}
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/doi/LicenseDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/doi/LicenseDto.java
deleted file mode 100644
index 32f5ffcd2aced054dfffd72a44a79b9994a6658b..0000000000000000000000000000000000000000
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/doi/LicenseDto.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package at.tuwien.api.doi;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-import lombok.extern.jackson.Jacksonized;
-
-@Getter
-@Setter
-@Builder
-@EqualsAndHashCode
-@NoArgsConstructor
-@AllArgsConstructor
-@Jacksonized
-@ToString
-public class LicenseDto {
-
-    private TimeRepresentationDto start;
-
-    @JsonProperty("content-version")
-    @Schema(example = "stm-asf")
-    private String contentVersion;
-
-    @JsonProperty("delay-in-days")
-    @Schema(example = "0")
-    private Integer delayInDays;
-
-    @JsonProperty("URL")
-    @Schema(example = "https://doi.org/10.15223/policy-029")
-    private String url;
-
-}
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/doi/LinkDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/doi/LinkDto.java
deleted file mode 100644
index 5f70696091c7cf14abb0c717627f18a1e3eff9de..0000000000000000000000000000000000000000
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/doi/LinkDto.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package at.tuwien.api.doi;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.validation.constraints.NotNull;
-import lombok.*;
-import lombok.extern.jackson.Jacksonized;
-
-@Getter
-@Setter
-@Builder
-@EqualsAndHashCode
-@NoArgsConstructor
-@AllArgsConstructor
-@Jacksonized
-@ToString
-public class LinkDto {
-
-    @JsonProperty("URL")
-    @Schema(example = "http://xplorestaging.ieee.org/ielx8/10824975/10824942/10825401.pdf?arnumber=10825401")
-    private String url;
-
-    @JsonProperty("content-type")
-    @Schema(example = "unspecified")
-    private String contentType;
-
-    @JsonProperty("content-version")
-    @Schema(example = "vor")
-    private String contentVersion;
-
-    @JsonProperty("intended-application")
-    @Schema(example = "similarity-checking")
-    private String intendedApplication;
-
-}
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/doi/ReferenceDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/doi/ReferenceDto.java
deleted file mode 100644
index 9458c0f9192a2f6fa71adad4e910b4e8e7b609ef..0000000000000000000000000000000000000000
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/doi/ReferenceDto.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package at.tuwien.api.doi;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.validation.constraints.NotNull;
-import lombok.*;
-import lombok.extern.jackson.Jacksonized;
-
-import java.util.List;
-
-@Getter
-@Setter
-@Builder
-@EqualsAndHashCode
-@NoArgsConstructor
-@AllArgsConstructor
-@Jacksonized
-@ToString
-public class ReferenceDto {
-
-    @NotNull
-    @Schema(example = "ref1")
-    private String key;
-
-    @JsonProperty("doi-asserted-by")
-    @Schema(example = "publisher")
-    private String doiAssertedBy;
-
-    @JsonProperty("DOI")
-    @Schema(example = "10.1038/sdata.2016.18")
-    private String doi;
-
-    @Schema(example = "2024")
-    private String year;
-
-    @JsonProperty("article-title")
-    @Schema(example = "The Dryad Data Repository: a Singapore Framework metadata Architecture in a DSpace Environment")
-    private String articleTitle;
-
-    @JsonProperty("volume-title")
-    @Schema(example = "Proceedings of the 2008 International Conference on Dublin Core and Metadata Applications")
-    private String volumeTitle;
-
-    @JsonProperty("journal-title")
-    @Schema(example = "Libraries Research Publications")
-    private String journalTitle;
-
-    @Schema(example = "Witt")
-    private String author;
-
-    @JsonProperty("first-page")
-    @Schema(example = "157")
-    private String firstPage;
-
-}
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/doi/ResourceDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/doi/ResourceDto.java
deleted file mode 100644
index a2543c2834def88d4ae0421d92dcc1efd34ddaf7..0000000000000000000000000000000000000000
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/doi/ResourceDto.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package at.tuwien.api.doi;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-import lombok.extern.jackson.Jacksonized;
-
-@Getter
-@Setter
-@Builder
-@EqualsAndHashCode
-@NoArgsConstructor
-@AllArgsConstructor
-@Jacksonized
-@ToString
-public class ResourceDto {
-
-    private ResourceRepresentationDto primary;
-
-}
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/doi/ResourceRepresentationDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/doi/ResourceRepresentationDto.java
deleted file mode 100644
index bf2312a6488a27498b83bd8039064d4c0badd75b..0000000000000000000000000000000000000000
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/doi/ResourceRepresentationDto.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package at.tuwien.api.doi;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import lombok.*;
-import lombok.extern.jackson.Jacksonized;
-
-@Getter
-@Setter
-@Builder
-@EqualsAndHashCode
-@NoArgsConstructor
-@AllArgsConstructor
-@Jacksonized
-@ToString
-public class ResourceRepresentationDto {
-
-    @JsonProperty("URL")
-    private String url;
-
-}
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/doi/TimeRepresentationDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/doi/TimeRepresentationDto.java
deleted file mode 100644
index fe649217e9b6b963138b38702abf39b539ba8d08..0000000000000000000000000000000000000000
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/doi/TimeRepresentationDto.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package at.tuwien.api.doi;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-import lombok.extern.jackson.Jacksonized;
-
-import java.time.Instant;
-import java.util.List;
-
-@Getter
-@Setter
-@Builder
-@EqualsAndHashCode
-@NoArgsConstructor
-@AllArgsConstructor
-@Jacksonized
-@ToString
-public class TimeRepresentationDto {
-
-    @JsonProperty("date-parts")
-    @Schema(example = "[[2025,1,18]]")
-    private List<List<Integer>> dateParts;
-
-    @JsonProperty("date-time")
-    @Schema(example = "2021-03-12T15:26:21Z")
-    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ssX", timezone = "UTC")
-    private Instant dateTime;
-
-    private Long timestamp;
-
-}
diff --git a/dbrepo-metadata-service/lib/.gitkeep b/dbrepo-metadata-service/lib/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/dbrepo-metadata-service/oai/pom.xml b/dbrepo-metadata-service/oai/pom.xml
index d14d0bcf615c86d94b1d9d28e8748a574454e274..89391bf8e210663a621f8bdae36bf78c32b685c4 100644
--- a/dbrepo-metadata-service/oai/pom.xml
+++ b/dbrepo-metadata-service/oai/pom.xml
@@ -4,13 +4,13 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
-        <groupId>at.tuwien</groupId>
-        <artifactId>dbrepo-metadata-service</artifactId>
+        <groupId>at.ac.tuwien.ifs.dbrepo</groupId>
+        <artifactId>metadata-service</artifactId>
         <version>1.8.1</version>
     </parent>
 
-    <artifactId>dbrepo-metadata-service-oai</artifactId>
-    <name>dbrepo-metadata-service-oai</name>
+    <name>oai</name>
+    <artifactId>metadata-service-oai</artifactId>
     <version>1.8.1</version>
 
     <dependencies/>
diff --git a/dbrepo-metadata-service/pom.xml b/dbrepo-metadata-service/pom.xml
index 313d6d0db530caa829e6325cef263d1077b954e8..5697be3b2b9e5f5e88762d2781bda8aea15db9b7 100644
--- a/dbrepo-metadata-service/pom.xml
+++ b/dbrepo-metadata-service/pom.xml
@@ -13,13 +13,13 @@
         <url>https://www.tuwien.ac.at</url>
     </organization>
 
-    <groupId>at.tuwien</groupId>
-    <artifactId>dbrepo-metadata-service</artifactId>
-    <name>dbrepo-metadata-service</name>
-    <version>1.8.1</version>
-
+    <name>metadata-service</name>
     <description>Service that manages the metadata</description>
 
+    <groupId>at.ac.tuwien.ifs.dbrepo</groupId>
+    <artifactId>metadata-service</artifactId>
+    <version>1.8.1</version>
+
     <packaging>pom</packaging>
     <modules>
         <module>oai</module>
@@ -67,14 +67,10 @@
 
     <dependencies>
         <dependency>
-            <groupId>at.ac.tuwien.ifs.dbrepo</groupId>
+            <groupId>${project.groupId}</groupId>
             <artifactId>dbrepo-core</artifactId>
             <version>${project.version}</version>
         </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-test</artifactId>
-        </dependency>
         <!-- Data Source -->
         <dependency>
             <groupId>org.mariadb.jdbc</groupId>
@@ -168,6 +164,13 @@
             <artifactId>amqp-client</artifactId>
             <version>${rabbitmq.version}</version>
         </dependency>
+        <!-- Api -->
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <version>${lombok.version}</version>
+            <scope>provided</scope>
+        </dependency>
         <!-- Testing -->
         <dependency>
             <groupId>org.springframework</groupId>
@@ -181,7 +184,6 @@
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-test</artifactId>
-            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>com.h2database</groupId>
@@ -274,6 +276,19 @@
         </plugins>
     </build>
 
+    <repositories>
+        <repository>
+            <id>dbrepo-maven-repo</id>
+            <url>file:///${project.basedir}/lib</url>
+            <releases>
+                <enabled>true</enabled>
+            </releases>
+            <snapshots>
+                <enabled>true</enabled>
+            </snapshots>
+        </repository>
+    </repositories>
+
     <licenses>
         <license>
             <name>Apache-2.0</name>
diff --git a/dbrepo-metadata-service/report/pom.xml b/dbrepo-metadata-service/report/pom.xml
index 847272f66f1606d6b89feb26444367f1a458514e..10a221ef6c7bfce7327c0e017c5aeb7d2798658e 100644
--- a/dbrepo-metadata-service/report/pom.xml
+++ b/dbrepo-metadata-service/report/pom.xml
@@ -4,25 +4,20 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
-        <artifactId>dbrepo-metadata-service</artifactId>
-        <groupId>at.tuwien</groupId>
+        <groupId>at.ac.tuwien.ifs.dbrepo</groupId>
+        <artifactId>metadata-service</artifactId>
         <version>1.8.1</version>
     </parent>
 
-    <artifactId>dbrepo-metadata-service-report</artifactId>
-    <name>dbrepo-metadata-service-report</name>
+    <name>report</name>
+    <artifactId>metadata-service-report</artifactId>
     <version>1.8.1</version>
 
     <dependencies>
         <dependency>
-            <groupId>at.tuwien</groupId>
-            <artifactId>dbrepo-metadata-service-rest-service</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>at.tuwien</groupId>
-            <artifactId>dbrepo-metadata-service-services</artifactId>
-            <version>${project.version}</version>
+            <groupId>at.ac.tuwien.ifs.dbrepo</groupId>
+            <artifactId>metadata-service-services</artifactId>
+            <version>1.8.1</version>
         </dependency>
     </dependencies>
 
diff --git a/dbrepo-metadata-service/repositories/pom.xml b/dbrepo-metadata-service/repositories/pom.xml
index 4f9850d3d3d84719c8a3f696d1b5af165e7fe6e1..1928e3b33ffa405d60b58c6970604f0a054bfb79 100644
--- a/dbrepo-metadata-service/repositories/pom.xml
+++ b/dbrepo-metadata-service/repositories/pom.xml
@@ -4,27 +4,21 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
-        <artifactId>dbrepo-metadata-service</artifactId>
-        <groupId>at.tuwien</groupId>
+        <groupId>at.ac.tuwien.ifs.dbrepo</groupId>
+        <artifactId>metadata-service</artifactId>
         <version>1.8.1</version>
     </parent>
 
-    <artifactId>dbrepo-metadata-service-repositories</artifactId>
-    <name>dbrepo-metadata-service-repositories</name>
+    <name>repositories</name>
+    <artifactId>metadata-service-repositories</artifactId>
     <version>1.8.1</version>
 
     <dependencies>
         <dependency>
             <groupId>at.ac.tuwien.ifs.dbrepo</groupId>
-            <artifactId>dbrepo-core</artifactId>
-            <version>${project.version}</version>
+            <artifactId>metadata-service-oai</artifactId>
+            <version>1.8.1</version>
         </dependency>
-        <dependency>
-            <groupId>at.tuwien</groupId>
-            <artifactId>dbrepo-metadata-service-oai</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
     </dependencies>
 
 </project>
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/DatabaseRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/DatabaseRepository.java
index 2d61108679fffd08c13660d63e91a5e9a1127050..5f1feb7e2df2a75fdfdb84ef05cd111a8dfe1413 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/DatabaseRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/DatabaseRepository.java
@@ -5,7 +5,6 @@ import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
-import java.util.Optional;
 import java.util.UUID;
 
 @Repository
diff --git a/dbrepo-metadata-service/rest-service/pom.xml b/dbrepo-metadata-service/rest-service/pom.xml
index 0f1abad18e9b440507b45b9328dc2d9b8f669050..bb75d96288c218e1c3dc04cb5c1d2d678e2380a0 100644
--- a/dbrepo-metadata-service/rest-service/pom.xml
+++ b/dbrepo-metadata-service/rest-service/pom.xml
@@ -4,25 +4,20 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
-        <artifactId>dbrepo-metadata-service</artifactId>
-        <groupId>at.tuwien</groupId>
+        <groupId>at.ac.tuwien.ifs.dbrepo</groupId>
+        <artifactId>metadata-service</artifactId>
         <version>1.8.1</version>
     </parent>
 
-    <artifactId>dbrepo-metadata-service-rest-service</artifactId>
-    <name>dbrepo-metadata-service-rest</name>
+    <name>rest-service</name>
+    <artifactId>metadata-service-service</artifactId>
     <version>1.8.1</version>
 
     <dependencies>
         <dependency>
             <groupId>at.ac.tuwien.ifs.dbrepo</groupId>
-            <artifactId>dbrepo-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>at.tuwien</groupId>
-            <artifactId>dbrepo-metadata-service-services</artifactId>
-            <version>${project.version}</version>
+            <artifactId>metadata-service-services</artifactId>
+            <version>1.8.1</version>
         </dependency>
     </dependencies>
 
diff --git a/dbrepo-metadata-service/services/pom.xml b/dbrepo-metadata-service/services/pom.xml
index db32fbe9ccf05163d56472d2a3bdfda25f9571f4..3c0a3e1bccdcf5d06d7e91004182151be83be260 100644
--- a/dbrepo-metadata-service/services/pom.xml
+++ b/dbrepo-metadata-service/services/pom.xml
@@ -4,30 +4,25 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
-        <artifactId>dbrepo-metadata-service</artifactId>
-        <groupId>at.tuwien</groupId>
+        <groupId>at.ac.tuwien.ifs.dbrepo</groupId>
+        <artifactId>metadata-service</artifactId>
         <version>1.8.1</version>
     </parent>
 
-    <artifactId>dbrepo-metadata-service-services</artifactId>
-    <name>dbrepo-metadata-service-services</name>
+    <name>services</name>
+    <artifactId>metadata-service-services</artifactId>
     <version>1.8.1</version>
 
     <dependencies>
         <dependency>
             <groupId>at.ac.tuwien.ifs.dbrepo</groupId>
-            <artifactId>dbrepo-core</artifactId>
-            <version>${project.version}</version>
+            <artifactId>metadata-service-oai</artifactId>
+            <version>1.8.1</version>
         </dependency>
         <dependency>
-            <groupId>at.tuwien</groupId>
-            <artifactId>dbrepo-metadata-service-oai</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>at.tuwien</groupId>
-            <artifactId>dbrepo-metadata-service-repositories</artifactId>
-            <version>${project.version}</version>
+            <groupId>at.ac.tuwien.ifs.dbrepo</groupId>
+            <artifactId>metadata-service-repositories</artifactId>
+            <version>1.8.1</version>
         </dependency>
     </dependencies>
 
diff --git a/dbrepo-search-service/Dockerfile b/dbrepo-search-service/Dockerfile
index 03660245769c484057c002c56ffc60e94370a8ee..1d0862a9e51d82a0f8e8154caea2efec9a51dba0 100644
--- a/dbrepo-search-service/Dockerfile
+++ b/dbrepo-search-service/Dockerfile
@@ -1,4 +1,4 @@
-FROM python:3.11-alpine3.21
+FROM --platform=$BUILDPLATFORM python:3.11-alpine3.21
 LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at"
 
 RUN apk add --no-cache \
diff --git a/dbrepo-search-service/init.Dockerfile b/dbrepo-search-service/init.Dockerfile
index cf4cb94d85e4e8c707e6305278a17a7a3cdbfc8e..2099df48cc53586a0cfa64bae3ea1dd4615c6780 100644
--- a/dbrepo-search-service/init.Dockerfile
+++ b/dbrepo-search-service/init.Dockerfile
@@ -1,4 +1,4 @@
-FROM python:3.11-alpine3.21
+FROM --platform=$BUILDPLATFORM python:3.11-alpine3.21
 LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at"
 
 RUN apk add --no-cache \
diff --git a/dbrepo-storage-service/init/Dockerfile b/dbrepo-storage-service/init/Dockerfile
index d064d048b84444610d3c342b302811dd2044a681..ad0d2ae853b7a0cb9a4aa87c782c939547c3dd4b 100644
--- a/dbrepo-storage-service/init/Dockerfile
+++ b/dbrepo-storage-service/init/Dockerfile
@@ -1,4 +1,4 @@
-FROM docker.io/python:3.11-alpine3.21 AS runtime
+FROM --platform=$BUILDPLATFORM docker.io/python:3.11-alpine3.21 AS runtime
 LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at"
 
 RUN apk --no-cache add \
diff --git a/dbrepo-ui/Dockerfile b/dbrepo-ui/Dockerfile
index 53928c49982c3574861affd83cc79c26c15813ec..966b7dbb3d1a17085732e852bcc64de713655586 100644
--- a/dbrepo-ui/Dockerfile
+++ b/dbrepo-ui/Dockerfile
@@ -1,5 +1,5 @@
 ###### FIRST STAGE ######
-FROM oven/bun:1.1.40-alpine AS build
+FROM --platform=$BUILDPLATFORM oven/bun:1.1.40-alpine AS build
 
 WORKDIR /app
 
@@ -27,7 +27,7 @@ COPY ./nuxt.config.ts ./nuxt.config.ts
 RUN bun run build
 
 ###### SECOND STAGE ######
-FROM node:22.9.0-alpine3.20 AS runtime
+FROM --platform=$BUILDPLATFORM node:22.9.0-alpine3.20 AS runtime
 
 ARG APP_VERSION="latest"
 ARG COMMIT=""
diff --git a/grafana/grafana.ini b/grafana/grafana.ini
deleted file mode 100644
index df8b9eb1b46e93de904d0c69a448a441f646260f..0000000000000000000000000000000000000000
--- a/grafana/grafana.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[server]
-domain = grafana
-root_url = http://grafana/grafana
-serve_from_sub_path = true
-
diff --git a/helm/dbrepo/files/create-event-listener.jar b/helm/dbrepo/files/create-event-listener.jar
index f1c8ff378169a787cc021fa5cb2eafc7795170a0..069d52a2d4e0930349d1cce948e86fca1c5d280a 100644
Binary files a/helm/dbrepo/files/create-event-listener.jar and b/helm/dbrepo/files/create-event-listener.jar differ
diff --git a/lib/java/dbrepo-core/.gitignore b/lib/java/dbrepo-core/.gitignore
index b425f09ad0e75e91fc43f1aee01bb3a918eec8c0..84f38abb66955bad9e1baa3d4e303cba52a57e66 100644
--- a/lib/java/dbrepo-core/.gitignore
+++ b/lib/java/dbrepo-core/.gitignore
@@ -9,6 +9,9 @@ target/
 *.iml
 *.ipr
 
+## generated
+dependency-reduced-pom.xml
+
 ### Eclipse ###
 .apt_generated
 .classpath
diff --git a/lib/java/dbrepo-core/Dockerfile b/lib/java/dbrepo-core/Dockerfile
deleted file mode 100644
index 5ffecc14d47d11d82937d9be192fa158f339f09c..0000000000000000000000000000000000000000
--- a/lib/java/dbrepo-core/Dockerfile
+++ /dev/null
@@ -1,12 +0,0 @@
-###### FIRST STAGE ######
-FROM --platform=$BUILDPLATFORM maven:3-amazoncorretto-17 AS build
-LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at"
-
-COPY ./pom.xml ./
-
-RUN mvn dependency:go-offline
-
-COPY ./src/ ./src/
-
-# Make sure it compiles
-RUN mvn clean install -DskipTests
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/pom.xml b/lib/java/dbrepo-core/pom.xml
index d86419d19dbb22e8db5ef64f7e8b01d262673bcd..c18cf6a51d69b6a804c67ef87b3c29b0a78c9579 100644
--- a/lib/java/dbrepo-core/pom.xml
+++ b/lib/java/dbrepo-core/pom.xml
@@ -35,7 +35,6 @@
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <lombok.version>1.18.36</lombok.version>
         <keycloak.version>26.0.4</keycloak.version>
         <mapstruct.version>1.6.3</mapstruct.version>
         <spring-cloud.version>4.1.4</spring-cloud.version>
@@ -43,10 +42,11 @@
         <springdoc-openapi.version>2.8.5</springdoc-openapi.version>
     </properties>
 
-    <dependencies><dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-validation</artifactId>
-    </dependency>
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-validation</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
@@ -104,7 +104,7 @@
             <groupId>org.projectlombok</groupId>
             <artifactId>lombok</artifactId>
             <version>${lombok.version}</version>
-            <scope>compile</scope>
+            <scope>provided</scope>
         </dependency>
         <!-- Entities -->
         <dependency>
@@ -153,6 +153,20 @@
                     </annotationProcessorPaths>
                 </configuration>
             </plugin>
+            <!-- build shaded jar -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-shade-plugin</artifactId>
+                <version>3.6.0</version>
+                <executions>
+                    <execution>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>shade</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
         </plugins>
     </build>
 
diff --git a/make/build.mk b/make/build.mk
index 311cdecd97ac8e918d50a5fdfd3b44c9749a28fe..ba831dc7c6d56dbd5c8ec9f70a47c0fd31e6a6ee 100644
--- a/make/build.mk
+++ b/make/build.mk
@@ -1,31 +1,26 @@
 ##@ Build
 
 .PHONY: build-images
-build-images: ## Build Docker images.
-	docker build --network=host -t dbrepo-core:build --target build ./lib/java/dbrepo-core
-	docker build --network=host -t dbrepo-data-service:build --target build dbrepo-data-service
-	docker build --network=host -t dbrepo-metadata-service:build --target build dbrepo-metadata-service
-	docker compose build --parallel
+build-images: build-java-lib ## Build Docker images.
+	docker compose build
 
-.PHONY: build-data-service
-build-data-service: ## Build the Data Service.
-	mvn -f ./dbrepo-data-service/pom.xml clean package -DskipTests
-
-.PHONY: build-metadata-service
-build-metadata-service: ## Build the Metadata Service.
-	mvn -f ./dbrepo-metadata-service/pom.xml clean package -DskipTests
+.PHONY: build-java-lib
+build-java-lib: ## Build the Java Library.
+	mvn -f ./lib/java/dbrepo-core/pom.xml -q clean package install -DskipTests
+	mvn deploy:deploy-file -q -Dfile=./lib/java/dbrepo-core/target/dbrepo-core-$(APP_VERSION).jar -DgroupId=at.ac.tuwien.ifs.dbrepo -DartifactId=dbrepo-core -Dversion=$(APP_VERSION) -Dpackaging=jar -Durl=file:./dbrepo-data-service/lib/ -DrepositoryId=maven-repository -DupdateReleaseInfo=true
+	mvn deploy:deploy-file -q -Dfile=./lib/java/dbrepo-core/target/dbrepo-core-$(APP_VERSION).jar -DgroupId=at.ac.tuwien.ifs.dbrepo -DartifactId=dbrepo-core -Dversion=$(APP_VERSION) -Dpackaging=jar -Durl=file:./dbrepo-metadata-service/lib/ -DrepositoryId=maven-repository -DupdateReleaseInfo=true
 
 .PHONY: build-auth-event-listener
 build-auth-event-listener: ## Build the Auth Service Event Listener.
-	mvn -f ./dbrepo-auth-service/listeners/pom.xml clean package -DskipTests
+	mvn -f ./dbrepo-auth-service/listeners/pom.xml -q clean package -DskipTests
 	cp ./dbrepo-auth-service/listeners/target/create-event-listener.jar ./helm/dbrepo/files/create-event-listener.jar
 
 .PHONY: build-ui
 build-ui: ## Build the UI.
 	bun --cwd ./dbrepo-ui build
 
-.PHONY: build-lib
-build-lib: ## Build the Python Library.
+.PHONY: build-python-lib
+build-python-lib: ## Build the Python Library.
 	rm -rf ./dbrepo-analyse-service/venv/ ./dbrepo-analyse-service/Pipfile.lock ./dbrepo-analyse-service/lib/*
 	rm -rf ./dbrepo-search-service/venv/ ./dbrepo-search-service/Pipfile.lock ./dbrepo-search-service/lib/*
 	rm -rf ./dbrepo-dashboard-service/venv/ ./dbrepo-dashboard-service/Pipfile.lock ./dbrepo-dashboard-service/lib/*
diff --git a/make/dev.mk b/make/dev.mk
index d5a8cd513a7760de0fb4d4c5044d36daebf51d53..e865e2d9dd1116ff801a549811c087ff31056019 100644
--- a/make/dev.mk
+++ b/make/dev.mk
@@ -1,12 +1,11 @@
 ##@ Development
 
 .PHONY: start-dev
-start-dev: build-images build-auth-event-listener ## Start the development deployment.
+start-dev: build-java-lib build-auth-event-listener build-images ## Start the development deployment.
 	docker container stop dbrepo-gateway-service || true
 	docker container rm dbrepo-gateway-service || true
 	docker compose up -d
 
-
 .PHONY: stop-dev
 stop-dev: ## Stop the development deployment and remove all data.
 	docker compose down