From 521b49438209ed5dc1257d5991122dbcf4dd32f6 Mon Sep 17 00:00:00 2001
From: Martin Weise <martin.weise@tuwien.ac.at>
Date: Mon, 24 Mar 2025 14:43:03 +0100
Subject: [PATCH] Refactoring test

Signed-off-by: Martin Weise <martin.weise@tuwien.ac.at>
---
 .../at/tuwien/endpoints/AccessEndpoint.java   |  10 +-
 .../at/tuwien/endpoints/DatabaseEndpoint.java |  14 +-
 .../at/tuwien/endpoints/RestEndpoint.java     |   2 +-
 .../at/tuwien/endpoints/SubsetEndpoint.java   |  18 +-
 .../at/tuwien/endpoints/TableEndpoint.java    |  18 +-
 .../at/tuwien/endpoints/UploadEndpoint.java   |   8 +-
 .../at/tuwien/endpoints/ViewEndpoint.java     |  16 +-
 .../tuwien/handlers/ApiExceptionHandler.java  |   4 +-
 .../tuwien/validation/EndpointValidator.java  |  14 +-
 .../java/at/tuwien/config/MariaDbConfig.java  |   6 +-
 .../tuwien/config/MariaDbContainerConfig.java |   6 +-
 .../endpoint/AccessEndpointUnitTest.java      |  18 +-
 .../endpoint/DatabaseEndpointUnitTest.java    |  20 +-
 .../endpoint/SubsetEndpointUnitTest.java      |  20 +-
 .../endpoint/TableEndpointUnitTest.java       |  23 +-
 .../tuwien/endpoint/ViewEndpointUnitTest.java |  16 +-
 .../tuwien/gateway/InterceptorUnitTest.java   |  12 +-
 .../MetadataServiceGatewayUnitTest.java       |  26 +-
 .../handlers/ApiExceptionHandlerTest.java     |  12 +-
 .../DefaultListenerIntegrationTest.java       |  13 +-
 .../listener/DefaultListenerUnitTest.java     |  13 +-
 .../tuwien/mapper/MariaDbMapperUnitTest.java  |   4 +-
 .../tuwien/mvc/ActuatorEndpointMvcTest.java   |   4 +-
 .../at/tuwien/mvc/OpenApiEndpointMvcTest.java |   6 +-
 .../tuwien/mvc/PrometheusEndpointMvcTest.java |  14 +-
 .../at/tuwien/mvc/SubsetEndpointMvcTest.java  |   4 +-
 .../service/AccessServiceIntegrationTest.java |   9 +-
 .../ContainerServiceIntegrationTest.java      |  11 +-
 .../service/CredentialServiceUnitTest.java    |  19 +-
 .../DatabaseServiceIntegrationTest.java       |  43 +-
 .../service/QueueServiceIntegrationTest.java  |  13 +-
 .../StorageServiceIntegrationTest.java        |  15 +-
 .../service/SubsetServiceIntegrationTest.java |  11 +-
 .../service/TableServiceIntegrationTest.java  |  13 +-
 .../service/ViewServiceIntegrationTest.java   |   7 +-
 .../java/at/tuwien/utils/MariaDbUtilTest.java |   2 +-
 .../validation/EndpointValidatorUnitTest.java |   6 +-
 .../java/at/tuwien/auth/AuthTokenFilter.java  |   4 +-
 .../auth/BasicAuthenticationProvider.java     |   2 +-
 .../auth/InternalRequestInterceptor.java      |   2 +-
 .../java/at/tuwien/config/CacheConfig.java    |  16 +-
 .../at/tuwien/gateway/KeycloakGateway.java    |  10 +-
 .../gateway/MetadataServiceGateway.java       |  16 +-
 .../gateway/impl/KeycloakGatewayImpl.java     |   2 +-
 .../impl/MetadataServiceGatewayImpl.java      |  16 +-
 .../at/tuwien/listener/DefaultListener.java   |  12 +-
 .../java/at/tuwien/mapper/DataMapper.java     |  30 +-
 .../java/at/tuwien/mapper/MariaDbMapper.java  |  36 +-
 .../java/at/tuwien/mapper/MetadataMapper.java |  31 +-
 .../java/at/tuwien/service/AccessService.java |   8 +-
 .../java/at/tuwien/service/CacheService.java  |  16 +-
 .../at/tuwien/service/ContainerService.java   |  10 +-
 .../at/tuwien/service/CredentialService.java  |   2 +-
 .../at/tuwien/service/DatabaseService.java    |  12 +-
 .../java/at/tuwien/service/QueueService.java  |   4 +-
 .../at/tuwien/service/StorageService.java     |  10 +-
 .../java/at/tuwien/service/SubsetService.java |   8 +-
 .../java/at/tuwien/service/TableService.java  |   8 +-
 .../java/at/tuwien/service/ViewService.java   |   8 +-
 .../impl/AccessServiceMariaDbImpl.java        |   8 +-
 .../tuwien/service/impl/CacheServiceImpl.java |  16 +-
 .../impl/ContainerServiceMariaDbImpl.java     |  12 +-
 .../service/impl/CredentialServiceImpl.java   |   2 +-
 .../at/tuwien/service/impl/DataConnector.java |   4 +-
 .../impl/DatabaseServiceMariaDbImpl.java      |  14 +-
 .../impl/QueueServiceRabbitMqImpl.java        |   6 +-
 .../service/impl/StorageServiceS3Impl.java    |  10 +-
 .../impl/SubsetServiceMariaDbImpl.java        |  12 +-
 .../service/impl/TableServiceMariaDbImpl.java |  14 +-
 .../service/impl/ViewServiceMariaDbImpl.java  |   8 +-
 .../java/at/tuwien/utils/MariaDbUtil.java     |   2 +-
 .../ifs/dbrepo}/oaipmh/OaiErrorType.java      |   2 +-
 .../oaipmh/OaiListIdentifiersParameters.java  |   2 +-
 .../oaipmh/OaiListRecordsParameters.java      |   2 +-
 .../dbrepo}/oaipmh/OaiRecordParameters.java   |   2 +-
 .../ifs/dbrepo}/oaipmh/RequestParameters.java |   2 +-
 dbrepo-metadata-service/pom.xml               |   2 +-
 dbrepo-metadata-service/repositories/pom.xml  |  26 --
 .../ifs/dbrepo}/mapper/MetadataMapper.java    | 150 +++---
 .../ifs/dbrepo}/mapper/SparqlMapper.java      |   4 +-
 .../repository/BannerMessageRepository.java   |   4 +-
 .../dbrepo}/repository/ConceptRepository.java |   4 +-
 .../repository/ContainerRepository.java       |   4 +-
 .../repository/DatabaseRepository.java        |   4 +-
 .../repository/IdentifierRepository.java      |   4 +-
 .../dbrepo}/repository/ImageRepository.java   |   4 +-
 .../dbrepo}/repository/LicenseRepository.java |   4 +-
 .../repository/OntologyRepository.java        |   4 +-
 .../dbrepo}/repository/TableRepository.java   |   4 +-
 .../dbrepo}/repository/UnitRepository.java    |   4 +-
 .../dbrepo}/repository/UserRepository.java    |   4 +-
 .../dbrepo}/repository/ViewRepository.java    |   4 +-
 .../dbrepo}/utils/EnumToStringConverter.java  |   2 +-
 .../DbrepoMetadataServiceApplication.java     |   4 +-
 .../tuwien/ifs/dbrepo}/config/MvcConfig.java  |   6 +-
 .../ifs/dbrepo}/config/SwaggerConfig.java     |   2 +-
 .../IdentifierStatusTypeDtoConverter.java     |   4 +-
 .../IdentifierTypeDtoConverter.java           |   4 +-
 .../dbrepo}/endpoints/AbstractEndpoint.java   |  14 +-
 .../ifs/dbrepo}/endpoints/AccessEndpoint.java |  26 +-
 .../dbrepo}/endpoints/ConceptEndpoint.java    |   8 +-
 .../dbrepo}/endpoints/ContainerEndpoint.java  |  22 +-
 .../dbrepo}/endpoints/DatabaseEndpoint.java   |  21 +-
 .../dbrepo}/endpoints/IdentifierEndpoint.java |  30 +-
 .../ifs/dbrepo}/endpoints/ImageEndpoint.java  |  24 +-
 .../dbrepo}/endpoints/LicenseEndpoint.java    |   8 +-
 .../dbrepo}/endpoints/MessageEndpoint.java    |  20 +-
 .../dbrepo}/endpoints/MetadataEndpoint.java   |  12 +-
 .../dbrepo}/endpoints/OntologyEndpoint.java   |  22 +-
 .../ifs/dbrepo}/endpoints/TableEndpoint.java  |  38 +-
 .../ifs/dbrepo}/endpoints/UnitEndpoint.java   |   8 +-
 .../ifs/dbrepo}/endpoints/UserEndpoint.java   |  24 +-
 .../ifs/dbrepo}/endpoints/ViewEndpoint.java   |  30 +-
 .../dbrepo}/handlers/ApiExceptionHandler.java |   6 +-
 .../dbrepo}/validation/EndpointValidator.java |  30 +-
 .../dbrepo}/ApplicationIntegrationTest.java   |   2 +-
 .../dbrepo}/config/ObjectMapperConfig.java    |   2 +-
 .../ifs/dbrepo}/config/RabbitConfig.java      |   6 +-
 ...ntifierStatusTypeDtoConverterUnitTest.java |  16 +-
 .../IdentifierTypeDtoConverterUnitTest.java   |  16 +-
 .../endpoints/AbstractEndpointUnitTest.java   |  14 +-
 .../endpoints/AccessEndpointUnitTest.java     |  37 +-
 .../endpoints/ActuatorComponentTest.java      |  14 +-
 .../endpoints/ConceptEndpointUnitTest.java    |  22 +-
 .../endpoints/ContainerEndpointUnitTest.java  |  31 +-
 .../endpoints/DatabaseEndpointUnitTest.java   |  26 +-
 .../endpoints/IdentifierEndpointUnitTest.java |  38 +-
 .../endpoints/ImageEndpointUnitTest.java      |  33 +-
 .../endpoints/LicenseEndpointUnitTest.java    |  16 +-
 .../endpoints/MessageEndpointUnitTest.java    |  26 +-
 .../endpoints/MetadataEndpointUnitTest.java   |  20 +-
 .../endpoints/OntologyEndpointUnitTest.java   |  28 +-
 .../endpoints/TableEndpointUnitTest.java      |  61 +--
 .../endpoints/UnitEndpointUnitTest.java       |  19 +-
 .../endpoints/UserEndpointUnitTest.java       |  32 +-
 .../endpoints/ViewEndpointUnitTest.java       |  34 +-
 .../ifs/dbrepo/entity}/EntitiesUnitTest.java  |   6 +-
 .../gateway/BrokerServiceGatewayUnitTest.java |  15 +-
 .../gateway/CrossrefGatewayUnitTest.java      |  12 +-
 .../DashboardServiceGatewayUnitTest.java      |  15 +-
 .../gateway/DataServiceGatewayUnitTest.java   |  22 +-
 .../KeycloakGatewayIntegrationTest.java       |  17 +-
 .../dbrepo}/gateway/OrcidGatewayUnitTest.java |  17 +-
 .../dbrepo}/gateway/RorGatewayUnitTest.java   |  15 +-
 .../gateway/SearchServiceGatewayUnitTest.java |  12 +-
 .../handlers/ApiExceptionHandlerTest.java     |  16 +-
 .../mapper/MetadataMapperUnitTest.java        |  24 +-
 .../dbrepo}/mvc/ActuatorEndpointMvcTest.java  |   6 +-
 ...nticationPrivilegedIntegrationMvcTest.java |  29 +-
 .../mvc/IdentifierEndpointMvcTest.java        |  11 +-
 .../dbrepo}/mvc/MetadataEndpointMvcTest.java  |  16 +-
 .../dbrepo}/mvc/OpenApiEndpointMvcTest.java   |  10 +-
 .../mvc/PrometheusEndpointMvcTest.java        |  24 +-
 .../service/AccessServiceUnitTest.java        |  28 +-
 .../AuthenticationServiceIntegrationTest.java |  20 +-
 .../service/BrokerServiceIntegrationTest.java |  34 +-
 .../service/ConceptServiceUnitTest.java       |  18 +-
 .../service/ContainerServiceUnitTest.java     |  28 +-
 ...aCiteIdentifierServicePersistenceTest.java |  37 +-
 .../DatabaseServicePersistenceTest.java       |  21 +-
 .../service/DatabaseServiceUnitTest.java      |  34 +-
 .../service/EntityServiceUnitTest.java        |  27 +-
 .../IdentifierServicePersistenceTest.java     |  38 +-
 .../service/ImageServicePersistenceTest.java  |  21 +-
 .../dbrepo}/service/ImageServiceUnitTest.java |  34 +-
 .../service/LicenseServiceUnitTest.java       |  18 +-
 .../service/MessageServiceUnitTest.java       |  25 +-
 .../service/MetadataServiceUnitTest.java      |  38 +-
 .../StorageServiceIntegrationTest.java        |  12 +-
 .../service/TableServicePersistenceTest.java  |  45 +-
 .../dbrepo}/service/TableServiceUnitTest.java |  54 +--
 .../dbrepo}/service/UnitServiceUnitTest.java  |  18 +-
 .../service/UserServiceIntegrationTest.java   |  26 +-
 .../service/UserServicePersistenceTest.java   |  21 +-
 .../dbrepo}/service/UserServiceUnitTest.java  |  26 +-
 .../service/ViewServicePersistenceTest.java   |  28 +-
 .../dbrepo}/service/ViewServiceUnitTest.java  |  28 +-
 .../tuwien/ifs/dbrepo}/utils/AmqpUtils.java   |   6 +-
 .../tuwien/ifs/dbrepo}/utils/H2Utils.java     |   2 +-
 .../ifs/dbrepo}/utils/KeycloakUtils.java      |  10 +-
 .../tuwien/ifs/dbrepo}/utils/XmlUtils.java    |   2 +-
 .../validator/EndpointValidatorUnitTest.java  |  38 +-
 .../ifs/dbrepo}/auth/AuthTokenFilter.java     |   6 +-
 .../auth/BasicAuthenticationProvider.java     |   6 +-
 .../auth/InternalRequestInterceptor.java      |   8 +-
 .../ifs/dbrepo}/config/CacheConfig.java       |   4 +-
 .../ifs/dbrepo}/config/DataCiteConfig.java    |   2 +-
 .../ifs/dbrepo}/config/EndpointConfig.java    |   2 +-
 .../ifs/dbrepo}/config/GatewayConfig.java     |   7 +-
 .../ifs/dbrepo}/config/JacksonConfig.java     |   2 +-
 .../tuwien/ifs/dbrepo}/config/JenaConfig.java |   2 +-
 .../ifs/dbrepo}/config/KeycloakConfig.java    |   2 +-
 .../ifs/dbrepo}/config/MetadataConfig.java    |   2 +-
 .../ifs/dbrepo}/config/MetricsConfig.java     |  12 +-
 .../ifs/dbrepo}/config/RabbitConfig.java      |   2 +-
 .../tuwien/ifs/dbrepo}/config/S3Config.java   |   2 +-
 .../ifs/dbrepo}/config/SecurityConfig.java    |   2 +-
 .../ifs/dbrepo}/config/TemplateConfig.java    |   2 +-
 .../ifs/dbrepo}/config/WebSecurityConfig.java |   8 +-
 .../dbrepo}/gateway/BrokerServiceGateway.java |   8 +-
 .../ifs/dbrepo}/gateway/CrossrefGateway.java  |   6 +-
 .../gateway/DashboardServiceGateway.java      |  16 +-
 .../dbrepo}/gateway/DataServiceGateway.java   |  28 +-
 .../ifs/dbrepo}/gateway/KeycloakGateway.java  |  10 +-
 .../ifs/dbrepo}/gateway/OrcidGateway.java     |   6 +-
 .../ifs/dbrepo}/gateway/RorGateway.java       |   6 +-
 .../dbrepo}/gateway/SearchServiceGateway.java |   8 +-
 .../impl/BrokerServiceGatewayImpl.java        |  13 +-
 .../gateway/impl/CrossrefGatewayImpl.java     |  12 +-
 .../impl/DashboardServiceGatewayImpl.java     |  22 +-
 .../gateway/impl/DataServiceGatewayImpl.java  |  24 +-
 .../gateway/impl/KeycloakGatewayImpl.java     |  16 +-
 .../gateway/impl/OrcidGatewayImpl.java        |  10 +-
 .../dbrepo}/gateway/impl/RorGatewayImpl.java  |  12 +-
 .../impl/SearchServiceGatewayImpl.java        |  18 +-
 .../ifs/dbrepo}/service/AccessService.java    |  12 +-
 .../service/AuthenticationService.java        |   8 +-
 .../dbrepo}/service/BannerMessageService.java |  10 +-
 .../ifs/dbrepo}/service/BrokerService.java    |   6 +-
 .../ifs/dbrepo}/service/ConceptService.java   |   6 +-
 .../ifs/dbrepo}/service/ContainerService.java |  12 +-
 .../dbrepo}/service/CredentialService.java    |   4 +-
 .../ifs/dbrepo}/service/DashboardService.java |  14 +-
 .../ifs/dbrepo}/service/DatabaseService.java  |  16 +-
 .../ifs/dbrepo}/service/EntityService.java    |  18 +-
 .../dbrepo}/service/IdentifierService.java    |  20 +-
 .../ifs/dbrepo}/service/ImageService.java     |  16 +-
 .../ifs/dbrepo}/service/LicenseService.java   |   6 +-
 .../ifs/dbrepo}/service/MetadataService.java  |  12 +-
 .../ifs/dbrepo}/service/OntologyService.java  |  10 +-
 .../ifs/dbrepo}/service/StorageService.java   |   6 +-
 .../ifs/dbrepo}/service/TableService.java     |  16 +-
 .../ifs/dbrepo}/service/UnitService.java      |   6 +-
 .../ifs/dbrepo}/service/UserService.java      |  12 +-
 .../ifs/dbrepo}/service/ViewService.java      |  14 +-
 .../service/impl/AccessServiceImpl.java       |  24 +-
 .../impl/AuthenticationServiceImpl.java       |  12 +-
 .../impl/BannerMessageServiceImpl.java        |  16 +-
 .../impl/BrokerServiceRabbitMqImpl.java       |  18 +-
 .../service/impl/ConceptServiceImpl.java      |  10 +-
 .../service/impl/ContainerServiceImpl.java    |  22 +-
 .../service/impl/CredentialServiceImpl.java   |   8 +-
 .../service/impl/DashboardServiceImpl.java    |  22 +-
 .../impl/DataCiteIdentifierServiceImpl.java   |  42 +-
 .../service/impl/DatabaseServiceImpl.java     |  50 +-
 .../service/impl/EntityServiceImpl.java       |  22 +-
 .../service/impl/IdentifierServiceImpl.java   |  42 +-
 .../service/impl/ImageServiceImpl.java        |  20 +-
 .../service/impl/LicenseServiceImpl.java      |  10 +-
 .../service/impl/MetadataServiceImpl.java     |  36 +-
 .../service/impl/OntologyServiceImpl.java     |  21 +-
 .../service/impl/StorageServiceS3Impl.java    |  10 +-
 .../service/impl/TableServiceImpl.java        |  41 +-
 .../dbrepo}/service/impl/UnitServiceImpl.java |  10 +-
 .../dbrepo}/service/impl/UserServiceImpl.java |  18 +-
 .../dbrepo}/service/impl/ViewServiceImpl.java |  26 +-
 lib/java/dbrepo-core/pom.xml                  |  39 ++
 .../OrcidDisambiguatedSourceTypeDto.java      |   6 -
 .../dbrepo/{ => core}/api/CacheableDto.java   |   2 +-
 .../{ => core}/api/ExportResourceDto.java     |   2 +-
 .../api/amqp/ChannelDetailsDto.java           |   2 +-
 .../{ => core}/api/amqp/ConsumerDto.java      |   2 +-
 .../api/amqp/CreateExchangeDto.java           |   2 +-
 .../{ => core}/api/amqp/CreateUserDto.java    |   2 +-
 .../api/amqp/CreateVirtualHostDto.java        |   2 +-
 .../{ => core}/api/amqp/ExchangeDto.java      |   2 +-
 .../api/amqp/GrantExchangePermissionsDto.java |   2 +-
 .../amqp/GrantVirtualHostPermissionsDto.java  |   2 +-
 .../{ => core}/api/amqp/QueueBriefDto.java    |   2 +-
 .../dbrepo/{ => core}/api/amqp/QueueDto.java  |   2 +-
 .../api/amqp/TopicPermissionDto.java          |   2 +-
 .../{ => core}/api/amqp/UserDetailsDto.java   |   2 +-
 .../api/amqp/VirtualHostPermissionDto.java    |   2 +-
 .../{ => core}/api/auth/CreateUserDto.java    |   2 +-
 .../{ => core}/api/auth/RealmAccessDto.java   |   2 +-
 .../api/container/ContainerActionTypeDto.java |   2 +-
 .../api/container/ContainerBriefDto.java      |   4 +-
 .../api/container/ContainerDto.java           |   6 +-
 .../api/container/CreateContainerDto.java     |   2 +-
 .../api/container/image/DataTypeDto.java      |   2 +-
 .../api/container/image/ImageBriefDto.java    |   2 +-
 .../api/container/image/ImageChangeDto.java   |   2 +-
 .../api/container/image/ImageCreateDto.java   |   2 +-
 .../api/container/image/ImageDto.java         |   2 +-
 .../api/container/image/OperatorDto.java      |   2 +-
 .../{ => core}/api/crossref/CrossrefDto.java  |   4 +-
 .../crossref/form/CrossrefLiteralFormDto.java |   2 +-
 .../api/crossref/label/CrossrefLabelDto.java  |   4 +-
 .../crossref/label/CrossrefPrefLabelDto.java  |   2 +-
 .../api/database/AccessTypeDto.java           |   2 +-
 .../api/database/CreateAccessDto.java         |   2 +-
 .../api/database/CreateDatabaseDto.java       |   2 +-
 .../api/database/CreateViewDto.java           |   4 +-
 .../api/database/DatabaseAccessDto.java       |   4 +-
 .../api/database/DatabaseBriefDto.java        |   6 +-
 .../{ => core}/api/database/DatabaseDto.java  |  15 +-
 .../database/DatabaseModifyDashboardDto.java  |   2 +-
 .../api/database/DatabaseModifyImageDto.java  |   2 +-
 .../database/DatabaseModifyVisibilityDto.java |   2 +-
 .../api/database/DatabaseTransferDto.java     |   2 +-
 .../api/database/LanguageTypeDto.java         |   2 +-
 .../{ => core}/api/database/LicenseDto.java   |   2 +-
 .../{ => core}/api/database/LoadFileDto.java  |   2 +-
 .../{ => core}/api/database/ViewBriefDto.java |   2 +-
 .../api/database/ViewColumnDto.java           |   8 +-
 .../{ => core}/api/database/ViewDto.java      |   8 +-
 .../api/database/ViewUpdateDto.java           |   2 +-
 .../database/internal/CreateDatabaseDto.java  |   2 +-
 .../database/query/ExecuteStatementDto.java   |   2 +-
 .../api/database/query/ExportDto.java         |   2 +-
 .../api/database/query/FilterDto.java         |   2 +-
 .../api/database/query/FilterTypeDto.java     |   2 +-
 .../api/database/query/ImportDto.java         |   2 +-
 .../api/database/query/OrderDto.java          |   2 +-
 .../api/database/query/OrderTypeDto.java      |   2 +-
 .../api/database/query/QueryBriefDto.java     |   6 +-
 .../api/database/query/QueryDto.java          |   7 +-
 .../api/database/query/QueryPersistDto.java   |   2 +-
 .../api/database/query/QueryTypeDto.java      |   2 +-
 .../api/database/query/SaveStatementDto.java  |   2 +-
 .../api/database/query/SubsetDto.java         |   2 +-
 .../api/database/table/CreateTableDto.java    |   6 +-
 .../database/table/HistoryEventTypeDto.java   |   2 +-
 .../api/database/table/SortType.java          |   2 +-
 .../api/database/table/SortTypeDto.java       |   2 +-
 .../api/database/table/TableBriefDto.java     |   2 +-
 .../database/table/TableCreateRawQuery.java   |   2 +-
 .../api/database/table/TableDto.java          |  17 +-
 .../api/database/table/TableHistoryDto.java   |   2 +-
 .../database/table/TableInsertRawQuery.java   |   2 +-
 .../api/database/table/TableStatisticDto.java |   4 +-
 .../api/database/table/TableUpdateDto.java    |   2 +-
 .../api/database/table/TupleDeleteDto.java    |   2 +-
 .../api/database/table/TupleDto.java          |   2 +-
 .../api/database/table/TupleUpdateDto.java    |   2 +-
 .../table/columns/ColumnBriefDto.java         |   2 +-
 .../api/database/table/columns/ColumnDto.java |   6 +-
 .../table/columns/ColumnStatisticDto.java     |   2 +-
 .../database/table/columns/ColumnTypeDto.java |   2 +-
 .../table/columns/CreateTableColumnDto.java   |   2 +-
 .../api/database/table/columns/EnumDto.java   |   2 +-
 .../api/database/table/columns/SetDto.java    |   2 +-
 .../api/database/table/columns/SiUnitDto.java |   2 +-
 .../concepts/ColumnSemanticsUpdateDto.java    |   2 +-
 .../columns/concepts/ConceptBriefDto.java     |   2 +-
 .../table/columns/concepts/ConceptDto.java    |   4 +-
 .../columns/concepts/ConceptSaveDto.java      |   2 +-
 .../table/columns/concepts/UnitBriefDto.java  |   2 +-
 .../table/columns/concepts/UnitDto.java       |   4 +-
 .../table/columns/concepts/UnitSaveDto.java   |   2 +-
 .../table/constraints/ConstraintsDto.java     |   8 +-
 .../CreateTableConstraintsDto.java            |   4 +-
 .../foreign/CreateForeignKeyDto.java          |   2 +-
 .../foreign/ForeignKeyBriefDto.java           |   2 +-
 .../constraints/foreign/ForeignKeyDto.java    |   6 +-
 .../foreign/ForeignKeyReferenceDto.java       |   4 +-
 .../constraints/foreign/ReferenceTypeDto.java |   2 +-
 .../constraints/primary/PrimaryKeyDto.java    |   6 +-
 .../table/constraints/unique/UniqueDto.java   |   6 +-
 .../table/internal/TableCreateDto.java        |   6 +-
 .../{ => core}/api/datacite/DataCiteBody.java |   2 +-
 .../{ => core}/api/datacite/DataCiteData.java |   2 +-
 .../api/datacite/DataCiteError.java           |   2 +-
 .../api/datacite/doi/DataCiteCreateDoi.java   |   2 +-
 .../api/datacite/doi/DataCiteDoi.java         |   2 +-
 .../api/datacite/doi/DataCiteDoiCreator.java  |   2 +-
 .../doi/DataCiteDoiCreatorAffiliation.java    |   2 +-
 .../doi/DataCiteDoiCreatorNameIdentifier.java |   2 +-
 .../api/datacite/doi/DataCiteDoiEvent.java    |   2 +-
 .../doi/DataCiteDoiFundingReference.java      |   2 +-
 ...DataCiteDoiFundingReferenceIdentifier.java |   2 +-
 .../doi/DataCiteDoiRelatedIdentifier.java     |   2 +-
 .../api/datacite/doi/DataCiteDoiRights.java   |   2 +-
 .../api/datacite/doi/DataCiteDoiTitle.java    |   2 +-
 .../api/datacite/doi/DataCiteDoiTypes.java    |   2 +-
 .../api/datacite/doi/DataCiteNameType.java    |   2 +-
 .../{ => core}/api/error/ApiErrorDto.java     |   2 +-
 .../api/file/UploadResponseDto.java           |   2 +-
 .../{ => core}/api/grafana/AccessTypeDto.java |   2 +-
 .../api/grafana/CreateDashboardDto.java       |   2 +-
 .../grafana/CreateDashboardResponseDto.java   |   2 +-
 .../{ => core}/api/grafana/DatasourceDto.java |   2 +-
 .../api/grafana/DatasourceTypeDto.java        |   2 +-
 .../api/grafana/PermissionTypeDto.java        |   2 +-
 .../api/grafana/UpdateDashboardAccessDto.java |   2 +-
 .../AffiliationIdentifierSchemeTypeDto.java   |   2 +-
 .../api/identifier/BibliographyTypeDto.java   |   2 +-
 .../api/identifier/CreateIdentifierDto.java   |   6 +-
 .../api/identifier/CreatorBriefDto.java       |   2 +-
 .../{ => core}/api/identifier/CreatorDto.java |   2 +-
 .../api/identifier/DescriptionTypeDto.java    |   2 +-
 .../api/identifier/IdentifierBriefDto.java    |   2 +-
 .../identifier/IdentifierDescriptionDto.java  |   4 +-
 .../api/identifier/IdentifierDto.java         |   8 +-
 .../api/identifier/IdentifierFunderDto.java   |   2 +-
 .../identifier/IdentifierFunderTypeDto.java   |   2 +-
 .../api/identifier/IdentifierSaveDto.java     |   6 +-
 .../identifier/IdentifierStatusTypeDto.java   |   2 +-
 .../api/identifier/IdentifierTitleDto.java    |   4 +-
 .../api/identifier/IdentifierTypeDto.java     |   2 +-
 .../{ => core}/api/identifier/LinksDto.java   |   2 +-
 .../NameIdentifierSchemeTypeDto.java          |   2 +-
 .../api/identifier/NameTypeDto.java           |   2 +-
 .../api/identifier/RelatedIdentifierDto.java  |   3 +-
 .../api/identifier/RelatedTypeDto.java        |   2 +-
 .../api/identifier/RelationTypeDto.java       |   2 +-
 .../identifier/SaveIdentifierCreatorDto.java  |   2 +-
 .../SaveIdentifierDescriptionDto.java         |   4 +-
 .../identifier/SaveIdentifierFunderDto.java   |   2 +-
 .../identifier/SaveIdentifierTitleDto.java    |   4 +-
 .../identifier/SaveRelatedIdentifierDto.java  |   2 +-
 .../api/identifier/TitleTypeDto.java          |   2 +-
 .../api/identifier/ld/LdCreatorDto.java       |   2 +-
 .../api/identifier/ld/LdDatasetDto.java       |   2 +-
 .../api/keycloak/CredentialDto.java           |   2 +-
 .../api/keycloak/CredentialTypeDto.java       |   2 +-
 .../api/keycloak/ModifyUserDto.java           |   2 +-
 .../api/keycloak/RoleRepresentationDto.java   |   2 +-
 .../{ => core}/api/keycloak/TokenDto.java     |   4 +-
 .../api/keycloak/UpdateCredentialsDto.java    |   2 +-
 .../api/keycloak/UserAttributesDto.java       |   2 +-
 .../api/keycloak/UserCreateAttributesDto.java |   2 +-
 .../api/keycloak/UserCreateDto.java           |   2 +-
 .../api/keycloak/UserIdAttributesDto.java     |   2 +-
 .../dbrepo/{ => core}/api/ldap/UserDto.java   |   2 +-
 .../maintenance/BannerMessageBriefDto.java    |   2 +-
 .../maintenance/BannerMessageCreateDto.java   |   2 +-
 .../api/maintenance/BannerMessageDto.java     |   2 +-
 .../api/maintenance/BannerMessageTypeDto.java |   2 +-
 .../maintenance/BannerMessageUpdateDto.java   |   2 +-
 .../dbrepo/{ => core}/api/orcid/OrcidDto.java |   6 +-
 .../activities/OrcidActivitiesSummaryDto.java |   4 +-
 .../employments/OrcidEmploymentsDto.java      |   4 +-
 .../affiliation/OrcidAffiliationGroupDto.java |   4 +-
 .../group/OrcidEmploymentSummaryDto.java      |   4 +-
 .../group/summary/OrcidSummaryDto.java        |   4 +-
 .../organization/OrcidOrganizationDto.java    |   4 +-
 .../disambiguated/OrcidDisambiguatedDto.java  |   2 +-
 .../OrcidDisambiguatedSourceTypeDto.java      |   6 +
 .../api/orcid/person/OrcidPersonDto.java      |   4 +-
 .../api/orcid/person/name/OrcidNameDto.java   |   2 +-
 .../api/orcid/person/name/OrcidValueDto.java  |   2 +-
 .../ifs/dbrepo/{ => core}/api/ror/RorDto.java |   2 +-
 .../{ => core}/api/semantics/EntityDto.java   |   2 +-
 .../api/semantics/OntologyBriefDto.java       |   2 +-
 .../api/semantics/OntologyCreateDto.java      |   2 +-
 .../{ => core}/api/semantics/OntologyDto.java |   3 +-
 .../api/semantics/OntologyModifyDto.java      |   2 +-
 .../api/semantics/TableColumnEntityDto.java   |   2 +-
 .../user/ExchangeUpdatePermissionsDto.java    |   2 +-
 .../api/user/GrantedAuthorityDto.java         |   2 +-
 .../{ => core}/api/user/RoleTypeDto.java      |   2 +-
 .../api/user/UserAttributesDto.java           |   2 +-
 .../{ => core}/api/user/UserBriefDto.java     |   2 +-
 .../{ => core}/api/user/UserDetailsDto.java   |   2 +-
 .../dbrepo/{ => core}/api/user/UserDto.java   |   4 +-
 .../{ => core}/api/user/UserEmailDto.java     |   2 +-
 .../{ => core}/api/user/UserForgotDto.java    |   2 +-
 .../api/user/UserModifyPasswordDto.java       |   2 +-
 .../{ => core}/api/user/UserPasswordDto.java  |   2 +-
 .../{ => core}/api/user/UserResetDto.java     |   2 +-
 .../{ => core}/api/user/UserRolesDto.java     |   2 +-
 .../{ => core}/api/user/UserThemeSetDto.java  |   2 +-
 .../{ => core}/api/user/UserUpdateDto.java    |   2 +-
 .../api/user/UserUpdatePermissionsDto.java    |   2 +-
 .../user/external/ExternalMetadataDto.java    |   4 +-
 .../api/user/external/ExternalResultType.java |   2 +-
 .../affiliation/ExternalAffiliationDto.java   |   2 +-
 .../user/internal/UpdateUserPasswordDto.java  |   2 +-
 .../entity/container/Container.java           |   6 +-
 .../container/image/ContainerImage.java       |   4 +-
 .../entity/container/image/DataType.java      |   2 +-
 .../entity/container/image/Operator.java      |   2 +-
 .../entity/database/AccessType.java           |   2 +-
 .../{ => core}/entity/database/Database.java  |  10 +-
 .../entity/database/DatabaseAccess.java       |   4 +-
 .../entity/database/DatabaseAccessKey.java    |   2 +-
 .../entity/database/LanguageType.java         |   2 +-
 .../{ => core}/entity/database/License.java   |   2 +-
 .../{ => core}/entity/database/View.java      |   6 +-
 .../entity/database/ViewColumn.java           |   4 +-
 .../entity/database/table/Table.java          |  12 +-
 .../database/table/columns/ColumnEnum.java    |   2 +-
 .../database/table/columns/ColumnSet.java     |   2 +-
 .../database/table/columns/TableColumn.java   |   4 +-
 .../table/columns/TableColumnConcept.java     |   2 +-
 .../table/columns/TableColumnType.java        |   2 +-
 .../table/columns/TableColumnUnit.java        |   2 +-
 .../table/constraints/Constraints.java        |   8 +-
 .../constraints/foreignKey/ForeignKey.java    |   4 +-
 .../foreignKey/ForeignKeyReference.java       |   4 +-
 .../constraints/foreignKey/ReferenceType.java |   2 +-
 .../constraints/primaryKey/PrimaryKey.java    |   6 +-
 .../table/constraints/unique/Unique.java      |   6 +-
 .../AffiliationIdentifierSchemeType.java      |   2 +-
 .../{ => core}/entity/identifier/Creator.java |   2 +-
 .../entity/identifier/DescriptionType.java    |   2 +-
 .../entity/identifier/Identifier.java         |  10 +-
 .../identifier/IdentifierDescription.java     |   4 +-
 .../entity/identifier/IdentifierFunder.java   |   2 +-
 .../identifier/IdentifierFunderType.java      |   2 +-
 .../identifier/IdentifierStatusType.java      |   2 +-
 .../entity/identifier/IdentifierTitle.java    |   4 +-
 .../entity/identifier/IdentifierType.java     |   2 +-
 .../identifier/NameIdentifierSchemeType.java  |   2 +-
 .../entity/identifier/NameType.java           |   2 +-
 .../entity/identifier/RelatedIdentifier.java  |   2 +-
 .../entity/identifier/RelatedType.java        |   2 +-
 .../entity/identifier/RelationType.java       |   2 +-
 .../entity/identifier/TitleType.java          |   2 +-
 .../entity/maintenance/BannerMessage.java     |   2 +-
 .../entity/maintenance/BannerMessageType.java |   2 +-
 .../{ => core}/entity/semantics/Ontology.java |   2 +-
 .../dbrepo/{ => core}/entity/user/User.java   |   4 +-
 .../exception/AccessNotFoundException.java    |   2 +-
 .../exception/AccountNotSetupException.java   |   2 +-
 .../exception/AnalyseServiceException.java    |   2 +-
 .../AuthServiceConnectionException.java       |   2 +-
 .../exception/AuthServiceException.java       |   2 +-
 .../BrokerServiceConnectionException.java     |   2 +-
 .../exception/BrokerServiceException.java     |   2 +-
 .../exception/ConceptNotFoundException.java   |   2 +-
 .../ContainerAlreadyExistsException.java      |   2 +-
 .../exception/ContainerNotFoundException.java |   2 +-
 .../exception/ContainerQuotaException.java    |   2 +-
 .../CredentialsInvalidException.java          |   2 +-
 .../DashboardServiceConnectionException.java  |   2 +-
 .../exception/DashboardServiceException.java  |   2 +-
 .../DataServiceConnectionException.java       |   2 +-
 .../exception/DataServiceException.java       |   2 +-
 .../exception/DatabaseMalformedException.java |   2 +-
 .../exception/DatabaseNotFoundException.java  |   2 +-
 .../DatabaseUnavailableException.java         |   2 +-
 .../exception/DoiNotFoundException.java       |   2 +-
 .../exception/EmailExistsException.java       |   2 +-
 .../exception/ExchangeNotFoundException.java  |   2 +-
 .../exception/ExternalServiceException.java   |   2 +-
 .../exception/FilterBadRequestException.java  |   2 +-
 .../FormatNotAvailableException.java          |   4 +-
 .../IdentifierNotFoundException.java          |   2 +-
 .../IdentifierNotSupportedException.java      |   2 +-
 .../ImageAlreadyExistsException.java          |   2 +-
 .../exception/ImageInvalidException.java      |   2 +-
 .../exception/ImageNotFoundException.java     |   2 +-
 .../exception/LicenseNotFoundException.java   |   2 +-
 .../exception/MalformedException.java         |   2 +-
 .../exception/MessageNotFoundException.java   |   2 +-
 .../MetadataServiceConnectionException.java   |   2 +-
 .../exception/MetadataServiceException.java   |   2 +-
 .../exception/NotAllowedException.java        |   2 +-
 .../exception/OntologyNotFoundException.java  |   2 +-
 .../exception/OrcidNotFoundException.java     |   2 +-
 .../exception/PaginationException.java        |   2 +-
 .../exception/QueryMalformedException.java    |   2 +-
 .../exception/QueryNotFoundException.java     |   2 +-
 .../exception/QueryNotSupportedException.java |   2 +-
 .../exception/QueryStoreCreateException.java  |   2 +-
 .../exception/QueryStoreGCException.java      |   2 +-
 .../exception/QueryStoreInsertException.java  |   2 +-
 .../exception/QueryStorePersistException.java |   2 +-
 .../exception/QueueNotFoundException.java     |   2 +-
 .../exception/RemoteUnavailableException.java |   2 +-
 .../exception/RorNotFoundException.java       |   2 +-
 .../SearchServiceConnectionException.java     |   2 +-
 .../exception/SearchServiceException.java     |   2 +-
 .../SemanticEntityNotFoundException.java      |   2 +-
 .../{ => core}/exception/SortException.java   |   2 +-
 .../exception/StorageNotFoundException.java   |   2 +-
 .../StorageUnavailableException.java          |   2 +-
 .../exception/TableExistsException.java       |   2 +-
 .../exception/TableMalformedException.java    |   2 +-
 .../exception/TableNotFoundException.java     |   2 +-
 .../exception/TableSchemaException.java       |   2 +-
 .../exception/UnitNotFoundException.java      |   2 +-
 .../exception/UriMalformedException.java      |   2 +-
 .../exception/UserExistsException.java        |   2 +-
 .../exception/UserNotFoundException.java      |   2 +-
 .../exception/ViewExistsException.java        |   2 +-
 .../exception/ViewMalformedException.java     |   2 +-
 .../exception/ViewNotFoundException.java      |   2 +-
 .../exception/ViewSchemaException.java        |   2 +-
 .../ifs/dbrepo/{ => core}/test/BaseTest.java  | 304 +++++-------
 .../dbrepo/{ => core}/test/dto/LocaleDto.java |   2 +-
 .../tuwien/ifs/dbrepo/{ => core}/test/pom.xml |   0
 .../{ => core}/test/utils/ArrayUtils.java     |   2 +-
 .../{ => core}/test/utils/EndpointUtils.java  |   4 +-
 .../ifs/dbrepo/test/AbstractUnitTest.java     | 168 -------
 .../src/main/resources/concept-1.json         |   5 +
 .../src/main/resources/concept-2.json         |   6 +
 .../database-1-user-1-read-access.json        |  12 +
 .../database-1-user-2-write-own-access.json   |  12 +
 .../database-1-user-3-write-all-access.json   |  11 +
 .../database-2-user-2-write-all-access.json   |  12 +
 .../database-2-user-3-read-access.json        |  11 +
 .../database-3-user-1-write-all-access.json   |  12 +
 .../database-4-user-1-read-access.json        |   3 +
 .../database-4-user-2-write-own-access.json   |   3 +
 .../database-4-user-3-write-all-access.json   |   3 +
 .../src/main/resources/identifier-1.json      |  69 +++
 .../src/main/resources/identifier-2.json      |  38 ++
 .../src/main/resources/identifier-3.json      |  36 ++
 .../src/main/resources/identifier-4.json      |  33 ++
 .../src/main/resources/identifier-5.json      |  65 +++
 .../src/main/resources/identifier-6.json      |  76 +++
 .../src/main/resources/identifier-7.json      |  42 ++
 .../src/main/resources/ontology-1.json        |   9 +
 .../src/main/resources/ontology-2.json        |   8 +
 .../src/main/resources/ontology-3.json        |   7 +
 .../src/main/resources/ontology-4.json        |   7 +
 .../src/main/resources/ontology-5.json        |   8 +
 .../src/main/resources/query-1.json           |  19 +
 .../src/main/resources/query-2.json           |  20 +
 .../src/main/resources/query-3.json           |  20 +
 .../src/main/resources/query-4.json           |  20 +
 .../src/main/resources/query-5.json           |  20 +
 .../src/main/resources/query-6.json           |  20 +
 .../src/main/resources/query-7.json           |  20 +
 .../src/main/resources/query-8.json           |  20 +
 .../src/main/resources/query-9.json           |  20 +
 .../src/main/resources/table-1.json           | 117 +++++
 .../src/main/resources/table-2.json           | 159 +++++++
 .../src/main/resources/table-3.json           | 440 ++++++++++++++++++
 .../src/main/resources/table-4.json           |  74 +++
 .../src/main/resources/table-5.json           | 241 ++++++++++
 .../src/main/resources/table-6.json           | 106 +++++
 .../src/main/resources/table-7.json           | 168 +++++++
 .../src/main/resources/table-8.json           |  81 ++++
 .../src/main/resources/table-9.json           |  84 ++++
 .../src/main/resources/unit-1.json            |   6 +
 .../src/main/resources/unit-2.json            |   6 +
 .../src/main/resources/user-1.json            |  14 +
 .../src/main/resources/user-2.json            |  14 +
 .../src/main/resources/user-3.json            |  12 +
 .../src/main/resources/user-4.json            |  12 +
 .../src/main/resources/user-5.json            |  12 +
 .../src/main/resources/view-1.json            |  86 ++++
 .../src/main/resources/view-2.json            |  58 +++
 .../src/main/resources/view-3.json            |  58 +++
 .../src/main/resources/view-4.json            | 157 +++++++
 .../src/main/resources/view-5.json            |  50 ++
 640 files changed, 5011 insertions(+), 2942 deletions(-)
 rename dbrepo-metadata-service/oai/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/oaipmh/OaiErrorType.java (96%)
 rename dbrepo-metadata-service/oai/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/oaipmh/OaiListIdentifiersParameters.java (97%)
 rename dbrepo-metadata-service/oai/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/oaipmh/OaiListRecordsParameters.java (97%)
 rename dbrepo-metadata-service/oai/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/oaipmh/OaiRecordParameters.java (93%)
 rename dbrepo-metadata-service/oai/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/oaipmh/RequestParameters.java (90%)
 rename dbrepo-metadata-service/repositories/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/mapper/MetadataMapper.java (86%)
 rename dbrepo-metadata-service/repositories/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/mapper/SparqlMapper.java (97%)
 rename dbrepo-metadata-service/repositories/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/repository/BannerMessageRepository.java (72%)
 rename dbrepo-metadata-service/repositories/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/repository/ConceptRepository.java (71%)
 rename dbrepo-metadata-service/repositories/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/repository/ContainerRepository.java (81%)
 rename dbrepo-metadata-service/repositories/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/repository/DatabaseRepository.java (87%)
 rename dbrepo-metadata-service/repositories/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/repository/IdentifierRepository.java (91%)
 rename dbrepo-metadata-service/repositories/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/repository/ImageRepository.java (77%)
 rename dbrepo-metadata-service/repositories/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/repository/LicenseRepository.java (73%)
 rename dbrepo-metadata-service/repositories/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/repository/OntologyRepository.java (78%)
 rename dbrepo-metadata-service/repositories/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/repository/TableRepository.java (69%)
 rename dbrepo-metadata-service/repositories/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/repository/UnitRepository.java (71%)
 rename dbrepo-metadata-service/repositories/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/repository/UserRepository.java (80%)
 rename dbrepo-metadata-service/repositories/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/repository/ViewRepository.java (71%)
 rename dbrepo-metadata-service/repositories/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/utils/EnumToStringConverter.java (92%)
 rename dbrepo-metadata-service/rest-service/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/DbrepoMetadataServiceApplication.java (87%)
 rename dbrepo-metadata-service/rest-service/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/config/MvcConfig.java (71%)
 rename dbrepo-metadata-service/rest-service/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/config/SwaggerConfig.java (98%)
 rename dbrepo-metadata-service/rest-service/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/converters/IdentifierStatusTypeDtoConverter.java (75%)
 rename dbrepo-metadata-service/rest-service/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/converters/IdentifierTypeDtoConverter.java (75%)
 rename dbrepo-metadata-service/rest-service/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/AbstractEndpoint.java (92%)
 rename dbrepo-metadata-service/rest-service/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/AccessEndpoint.java (95%)
 rename dbrepo-metadata-service/rest-service/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/ConceptEndpoint.java (90%)
 rename dbrepo-metadata-service/rest-service/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/ContainerEndpoint.java (92%)
 rename dbrepo-metadata-service/rest-service/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/DatabaseEndpoint.java (98%)
 rename dbrepo-metadata-service/rest-service/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/IdentifierEndpoint.java (97%)
 rename dbrepo-metadata-service/rest-service/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/ImageEndpoint.java (91%)
 rename dbrepo-metadata-service/rest-service/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/LicenseEndpoint.java (91%)
 rename dbrepo-metadata-service/rest-service/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/MessageEndpoint.java (92%)
 rename dbrepo-metadata-service/rest-service/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/MetadataEndpoint.java (94%)
 rename dbrepo-metadata-service/rest-service/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/OntologyEndpoint.java (94%)
 rename dbrepo-metadata-service/rest-service/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/TableEndpoint.java (96%)
 rename dbrepo-metadata-service/rest-service/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/UnitEndpoint.java (90%)
 rename dbrepo-metadata-service/rest-service/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/UserEndpoint.java (93%)
 rename dbrepo-metadata-service/rest-service/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/ViewEndpoint.java (95%)
 rename dbrepo-metadata-service/rest-service/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/handlers/ApiExceptionHandler.java (99%)
 rename dbrepo-metadata-service/rest-service/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/validation/EndpointValidator.java (94%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/ApplicationIntegrationTest.java (95%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/config/ObjectMapperConfig.java (95%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/config/RabbitConfig.java (91%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/converters/IdentifierStatusTypeDtoConverterUnitTest.java (73%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/converters/IdentifierTypeDtoConverterUnitTest.java (73%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/AbstractEndpointUnitTest.java (80%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/AccessEndpointUnitTest.java (93%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/ActuatorComponentTest.java (84%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/ConceptEndpointUnitTest.java (79%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/ContainerEndpointUnitTest.java (88%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/DatabaseEndpointUnitTest.java (95%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/IdentifierEndpointUnitTest.java (98%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/ImageEndpointUnitTest.java (88%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/LicenseEndpointUnitTest.java (81%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/MessageEndpointUnitTest.java (90%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/MetadataEndpointUnitTest.java (92%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/OntologyEndpointUnitTest.java (93%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/TableEndpointUnitTest.java (95%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/UnitEndpointUnitTest.java (79%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/UserEndpointUnitTest.java (91%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/endpoints/ViewEndpointUnitTest.java (94%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien/entities => ac/tuwien/ifs/dbrepo/entity}/EntitiesUnitTest.java (63%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/gateway/BrokerServiceGatewayUnitTest.java (94%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/gateway/CrossrefGatewayUnitTest.java (81%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/gateway/DashboardServiceGatewayUnitTest.java (95%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/gateway/DataServiceGatewayUnitTest.java (98%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/gateway/KeycloakGatewayIntegrationTest.java (89%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/gateway/OrcidGatewayUnitTest.java (81%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/gateway/RorGatewayUnitTest.java (77%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/gateway/SearchServiceGatewayUnitTest.java (93%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/handlers/ApiExceptionHandlerTest.java (98%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/mapper/MetadataMapperUnitTest.java (92%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/mvc/ActuatorEndpointMvcTest.java (90%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/mvc/AuthenticationPrivilegedIntegrationMvcTest.java (89%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/mvc/IdentifierEndpointMvcTest.java (86%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/mvc/MetadataEndpointMvcTest.java (93%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/mvc/OpenApiEndpointMvcTest.java (95%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/mvc/PrometheusEndpointMvcTest.java (96%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/AccessServiceUnitTest.java (94%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/AuthenticationServiceIntegrationTest.java (82%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/BrokerServiceIntegrationTest.java (88%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/ConceptServiceUnitTest.java (78%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/ContainerServiceUnitTest.java (86%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/DataCiteIdentifierServicePersistenceTest.java (91%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/DatabaseServicePersistenceTest.java (74%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/DatabaseServiceUnitTest.java (93%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/EntityServiceUnitTest.java (85%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/IdentifierServicePersistenceTest.java (93%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/ImageServicePersistenceTest.java (83%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/ImageServiceUnitTest.java (83%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/LicenseServiceUnitTest.java (78%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/MessageServiceUnitTest.java (84%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/MetadataServiceUnitTest.java (88%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/StorageServiceIntegrationTest.java (90%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/TableServicePersistenceTest.java (85%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/TableServiceUnitTest.java (91%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/UnitServiceUnitTest.java (79%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/UserServiceIntegrationTest.java (77%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/UserServicePersistenceTest.java (84%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/UserServiceUnitTest.java (81%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/ViewServicePersistenceTest.java (78%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/ViewServiceUnitTest.java (89%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/utils/AmqpUtils.java (98%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/utils/H2Utils.java (96%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/utils/KeycloakUtils.java (90%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/utils/XmlUtils.java (96%)
 rename dbrepo-metadata-service/rest-service/src/test/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/validator/EndpointValidatorUnitTest.java (95%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/auth/AuthTokenFilter.java (96%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/auth/BasicAuthenticationProvider.java (90%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/auth/InternalRequestInterceptor.java (87%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/config/CacheConfig.java (89%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/config/DataCiteConfig.java (97%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/config/EndpointConfig.java (86%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/config/GatewayConfig.java (94%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/config/JacksonConfig.java (96%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/config/JenaConfig.java (92%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/config/KeycloakConfig.java (96%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/config/MetadataConfig.java (93%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/config/MetricsConfig.java (90%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/config/RabbitConfig.java (93%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/config/S3Config.java (97%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/config/SecurityConfig.java (91%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/config/TemplateConfig.java (96%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/config/WebSecurityConfig.java (95%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/gateway/BrokerServiceGateway.java (85%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/gateway/CrossrefGateway.java (70%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/gateway/DashboardServiceGateway.java (79%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/gateway/DataServiceGateway.java (91%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/gateway/KeycloakGateway.java (65%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/gateway/OrcidGateway.java (69%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/gateway/RorGateway.java (69%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/gateway/SearchServiceGateway.java (60%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/gateway/impl/BrokerServiceGatewayImpl.java (94%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/gateway/impl/CrossrefGatewayImpl.java (81%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/gateway/impl/DashboardServiceGatewayImpl.java (91%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/gateway/impl/DataServiceGatewayImpl.java (96%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/gateway/impl/KeycloakGatewayImpl.java (90%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/gateway/impl/OrcidGatewayImpl.java (80%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/gateway/impl/RorGatewayImpl.java (81%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/gateway/impl/SearchServiceGatewayImpl.java (89%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/AccessService.java (92%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/AuthenticationService.java (65%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/BannerMessageService.java (81%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/BrokerService.java (86%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/ConceptService.java (75%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/ContainerService.java (78%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/CredentialService.java (80%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/DashboardService.java (80%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/DatabaseService.java (95%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/EntityService.java (81%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/IdentifierService.java (93%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/ImageService.java (77%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/LicenseService.java (74%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/MetadataService.java (83%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/OntologyService.java (85%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/StorageService.java (89%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/TableService.java (93%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/UnitService.java (81%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/UserService.java (83%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/ViewService.java (89%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/impl/AccessServiceImpl.java (87%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/impl/AuthenticationServiceImpl.java (62%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/impl/BannerMessageServiceImpl.java (82%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/impl/BrokerServiceRabbitMqImpl.java (88%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/impl/ConceptServiceImpl.java (80%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/impl/ContainerServiceImpl.java (84%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/impl/CredentialServiceImpl.java (85%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/impl/DashboardServiceImpl.java (71%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/impl/DataCiteIdentifierServiceImpl.java (86%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/impl/DatabaseServiceImpl.java (90%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/impl/EntityServiceImpl.java (91%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/impl/IdentifierServiceImpl.java (92%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/impl/ImageServiceImpl.java (85%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/impl/LicenseServiceImpl.java (76%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/impl/MetadataServiceImpl.java (89%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/impl/OntologyServiceImpl.java (83%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/impl/StorageServiceS3Impl.java (88%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/impl/TableServiceImpl.java (92%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/impl/UnitServiceImpl.java (80%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/impl/UserServiceImpl.java (86%)
 rename dbrepo-metadata-service/services/src/main/java/at/{tuwien => ac/tuwien/ifs/dbrepo}/service/impl/ViewServiceImpl.java (87%)
 delete mode 100644 lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedSourceTypeDto.java
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/CacheableDto.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/ExportResourceDto.java (86%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/amqp/ChannelDetailsDto.java (93%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/amqp/ConsumerDto.java (94%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/amqp/CreateExchangeDto.java (92%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/amqp/CreateUserDto.java (89%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/amqp/CreateVirtualHostDto.java (90%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/amqp/ExchangeDto.java (93%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/amqp/GrantExchangePermissionsDto.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/amqp/GrantVirtualHostPermissionsDto.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/amqp/QueueBriefDto.java (90%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/amqp/QueueDto.java (93%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/amqp/TopicPermissionDto.java (93%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/amqp/UserDetailsDto.java (94%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/amqp/VirtualHostPermissionDto.java (93%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/auth/CreateUserDto.java (95%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/auth/RealmAccessDto.java (90%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/container/ContainerActionTypeDto.java (88%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/container/ContainerBriefDto.java (89%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/container/ContainerDto.java (89%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/container/CreateContainerDto.java (96%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/container/image/DataTypeDto.java (97%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/container/image/ImageBriefDto.java (93%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/container/image/ImageChangeDto.java (94%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/container/image/ImageCreateDto.java (96%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/container/image/ImageDto.java (94%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/container/image/OperatorDto.java (93%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/crossref/CrossrefDto.java (74%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/crossref/form/CrossrefLiteralFormDto.java (87%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/crossref/label/CrossrefLabelDto.java (75%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/crossref/label/CrossrefPrefLabelDto.java (85%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/AccessTypeDto.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/CreateAccessDto.java (88%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/CreateDatabaseDto.java (94%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/CreateViewDto.java (87%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/DatabaseAccessDto.java (84%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/DatabaseBriefDto.java (88%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/DatabaseDto.java (86%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/DatabaseModifyDashboardDto.java (85%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/DatabaseModifyImageDto.java (82%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/DatabaseModifyVisibilityDto.java (93%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/DatabaseTransferDto.java (85%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/LanguageTypeDto.java (99%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/LicenseDto.java (94%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/LoadFileDto.java (88%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/ViewBriefDto.java (96%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/ViewColumnDto.java (87%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/ViewDto.java (90%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/ViewUpdateDto.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/internal/CreateDatabaseDto.java (96%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/query/ExecuteStatementDto.java (87%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/query/ExportDto.java (86%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/query/FilterDto.java (93%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/query/FilterTypeDto.java (88%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/query/ImportDto.java (93%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/query/OrderDto.java (90%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/query/OrderTypeDto.java (87%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/query/QueryBriefDto.java (90%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/query/QueryDto.java (89%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/query/QueryPersistDto.java (86%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/query/QueryTypeDto.java (87%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/query/SaveStatementDto.java (87%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/query/SubsetDto.java (92%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/CreateTableDto.java (81%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/HistoryEventTypeDto.java (89%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/SortType.java (85%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/SortTypeDto.java (80%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/TableBriefDto.java (96%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/TableCreateRawQuery.java (88%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/TableDto.java (84%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/TableHistoryDto.java (92%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/TableInsertRawQuery.java (85%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/TableStatisticDto.java (87%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/TableUpdateDto.java (92%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/TupleDeleteDto.java (87%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/TupleDto.java (87%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/TupleUpdateDto.java (89%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/columns/ColumnBriefDto.java (95%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/columns/ColumnDto.java (92%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/columns/ColumnStatisticDto.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/columns/ColumnTypeDto.java (96%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/columns/CreateTableColumnDto.java (95%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/columns/EnumDto.java (88%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/columns/SetDto.java (88%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/columns/SiUnitDto.java (90%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/columns/concepts/ColumnSemanticsUpdateDto.java (83%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/columns/concepts/ConceptBriefDto.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/columns/concepts/ConceptDto.java (80%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/columns/concepts/ConceptSaveDto.java (83%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/columns/concepts/UnitBriefDto.java (90%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/columns/concepts/UnitDto.java (80%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/columns/concepts/UnitSaveDto.java (83%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/constraints/ConstraintsDto.java (64%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/constraints/CreateTableConstraintsDto.java (79%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/constraints/foreign/CreateForeignKeyDto.java (92%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/constraints/foreign/ForeignKeyBriefDto.java (81%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/constraints/foreign/ForeignKeyDto.java (78%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/constraints/foreign/ForeignKeyReferenceDto.java (81%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/constraints/foreign/ReferenceTypeDto.java (93%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/constraints/primary/PrimaryKeyDto.java (68%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/constraints/unique/UniqueDto.java (72%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/database/table/internal/TableCreateDto.java (80%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/datacite/DataCiteBody.java (84%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/datacite/DataCiteData.java (89%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/datacite/DataCiteError.java (84%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/datacite/doi/DataCiteCreateDoi.java (94%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/datacite/doi/DataCiteDoi.java (86%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/datacite/doi/DataCiteDoiCreator.java (92%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/datacite/doi/DataCiteDoiCreatorAffiliation.java (87%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/datacite/doi/DataCiteDoiCreatorNameIdentifier.java (86%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/datacite/doi/DataCiteDoiEvent.java (90%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/datacite/doi/DataCiteDoiFundingReference.java (88%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/datacite/doi/DataCiteDoiFundingReferenceIdentifier.java (85%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/datacite/doi/DataCiteDoiRelatedIdentifier.java (88%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/datacite/doi/DataCiteDoiRights.java (85%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/datacite/doi/DataCiteDoiTitle.java (94%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/datacite/doi/DataCiteDoiTypes.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/datacite/doi/DataCiteNameType.java (88%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/error/ApiErrorDto.java (92%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/file/UploadResponseDto.java (86%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/grafana/AccessTypeDto.java (88%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/grafana/CreateDashboardDto.java (94%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/grafana/CreateDashboardResponseDto.java (89%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/grafana/DatasourceDto.java (96%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/grafana/DatasourceTypeDto.java (90%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/grafana/PermissionTypeDto.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/grafana/UpdateDashboardAccessDto.java (88%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/identifier/AffiliationIdentifierSchemeTypeDto.java (67%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/identifier/BibliographyTypeDto.java (89%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/identifier/CreateIdentifierDto.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/identifier/CreatorBriefDto.java (96%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/identifier/CreatorDto.java (97%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/identifier/DescriptionTypeDto.java (92%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/identifier/IdentifierBriefDto.java (96%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/identifier/IdentifierDescriptionDto.java (86%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/identifier/IdentifierDto.java (92%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/identifier/IdentifierFunderDto.java (95%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/identifier/IdentifierFunderTypeDto.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/identifier/IdentifierSaveDto.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/identifier/IdentifierStatusTypeDto.java (88%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/identifier/IdentifierTitleDto.java (85%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/identifier/IdentifierTypeDto.java (90%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/identifier/LinksDto.java (93%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/identifier/NameIdentifierSchemeTypeDto.java (68%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/identifier/NameTypeDto.java (88%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/identifier/RelatedIdentifierDto.java (87%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/identifier/RelatedTypeDto.java (95%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/identifier/RelationTypeDto.java (98%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/identifier/SaveIdentifierCreatorDto.java (96%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/identifier/SaveIdentifierDescriptionDto.java (87%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/identifier/SaveIdentifierFunderDto.java (95%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/identifier/SaveIdentifierTitleDto.java (86%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/identifier/SaveRelatedIdentifierDto.java (92%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/identifier/TitleTypeDto.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/identifier/ld/LdCreatorDto.java (89%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/identifier/ld/LdDatasetDto.java (94%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/keycloak/CredentialDto.java (89%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/keycloak/CredentialTypeDto.java (87%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/keycloak/ModifyUserDto.java (90%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/keycloak/RoleRepresentationDto.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/keycloak/TokenDto.java (92%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/keycloak/UpdateCredentialsDto.java (86%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/keycloak/UserAttributesDto.java (93%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/keycloak/UserCreateAttributesDto.java (85%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/keycloak/UserCreateDto.java (93%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/keycloak/UserIdAttributesDto.java (90%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/ldap/UserDto.java (89%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/maintenance/BannerMessageBriefDto.java (92%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/maintenance/BannerMessageCreateDto.java (95%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/maintenance/BannerMessageDto.java (96%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/maintenance/BannerMessageTypeDto.java (89%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/maintenance/BannerMessageUpdateDto.java (95%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/orcid/OrcidDto.java (66%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/orcid/activities/OrcidActivitiesSummaryDto.java (65%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/orcid/activities/employments/OrcidEmploymentsDto.java (66%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/orcid/activities/employments/affiliation/OrcidAffiliationGroupDto.java (57%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/orcid/activities/employments/affiliation/group/OrcidEmploymentSummaryDto.java (63%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/orcid/activities/employments/affiliation/group/summary/OrcidSummaryDto.java (69%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/orcid/activities/employments/affiliation/group/summary/organization/OrcidOrganizationDto.java (60%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedDto.java (78%)
 create mode 100644 lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedSourceTypeDto.java
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/orcid/person/OrcidPersonDto.java (64%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/orcid/person/name/OrcidNameDto.java (87%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/orcid/person/name/OrcidValueDto.java (79%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/ror/RorDto.java (85%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/semantics/EntityDto.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/semantics/OntologyBriefDto.java (94%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/semantics/OntologyCreateDto.java (92%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/semantics/OntologyDto.java (92%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/semantics/OntologyModifyDto.java (93%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/semantics/TableColumnEntityDto.java (95%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/user/ExchangeUpdatePermissionsDto.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/user/GrantedAuthorityDto.java (87%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/user/RoleTypeDto.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/user/UserAttributesDto.java (94%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/user/UserBriefDto.java (95%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/user/UserDetailsDto.java (95%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/user/UserDto.java (92%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/user/UserEmailDto.java (90%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/user/UserForgotDto.java (90%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/user/UserModifyPasswordDto.java (90%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/user/UserPasswordDto.java (86%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/user/UserResetDto.java (87%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/user/UserRolesDto.java (87%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/user/UserThemeSetDto.java (88%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/user/UserUpdateDto.java (93%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/user/UserUpdatePermissionsDto.java (89%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/user/external/ExternalMetadataDto.java (78%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/user/external/ExternalResultType.java (88%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/user/external/affiliation/ExternalAffiliationDto.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/api/user/internal/UpdateUserPasswordDto.java (85%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/container/Container.java (92%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/container/image/ContainerImage.java (95%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/container/image/DataType.java (97%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/container/image/Operator.java (94%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/database/AccessType.java (70%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/database/Database.java (94%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/database/DatabaseAccess.java (94%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/database/DatabaseAccessKey.java (80%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/database/LanguageType.java (98%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/database/License.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/database/View.java (96%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/database/ViewColumn.java (93%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/database/table/Table.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/database/table/columns/ColumnEnum.java (93%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/database/table/columns/ColumnSet.java (93%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/database/table/columns/TableColumn.java (97%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/database/table/columns/TableColumnConcept.java (96%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/database/table/columns/TableColumnType.java (87%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/database/table/columns/TableColumnUnit.java (96%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/database/table/constraints/Constraints.java (71%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/database/table/constraints/foreignKey/ForeignKey.java (92%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/database/table/constraints/foreignKey/ForeignKeyReference.java (90%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/database/table/constraints/foreignKey/ReferenceType.java (67%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/database/table/constraints/primaryKey/PrimaryKey.java (85%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/database/table/constraints/unique/Unique.java (87%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/identifier/AffiliationIdentifierSchemeType.java (66%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/identifier/Creator.java (98%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/identifier/DescriptionType.java (88%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/identifier/Identifier.java (95%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/identifier/IdentifierDescription.java (94%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/identifier/IdentifierFunder.java (96%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/identifier/IdentifierFunderType.java (64%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/identifier/IdentifierStatusType.java (62%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/identifier/IdentifierTitle.java (94%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/identifier/IdentifierType.java (66%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/identifier/NameIdentifierSchemeType.java (66%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/identifier/NameType.java (61%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/identifier/RelatedIdentifier.java (97%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/identifier/RelatedType.java (90%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/identifier/RelationType.java (96%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/identifier/TitleType.java (86%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/maintenance/BannerMessage.java (96%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/maintenance/BannerMessageType.java (69%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/semantics/Ontology.java (97%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/entity/user/User.java (93%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/AccessNotFoundException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/AccountNotSetupException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/AnalyseServiceException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/AuthServiceConnectionException.java (92%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/AuthServiceException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/BrokerServiceConnectionException.java (92%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/BrokerServiceException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/ConceptNotFoundException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/ContainerAlreadyExistsException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/ContainerNotFoundException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/ContainerQuotaException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/CredentialsInvalidException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/DashboardServiceConnectionException.java (92%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/DashboardServiceException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/DataServiceConnectionException.java (92%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/DataServiceException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/DatabaseMalformedException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/DatabaseNotFoundException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/DatabaseUnavailableException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/DoiNotFoundException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/EmailExistsException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/ExchangeNotFoundException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/ExternalServiceException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/FilterBadRequestException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/FormatNotAvailableException.java (88%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/IdentifierNotFoundException.java (92%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/IdentifierNotSupportedException.java (92%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/ImageAlreadyExistsException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/ImageInvalidException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/ImageNotFoundException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/LicenseNotFoundException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/MalformedException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/MessageNotFoundException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/MetadataServiceConnectionException.java (92%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/MetadataServiceException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/NotAllowedException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/OntologyNotFoundException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/OrcidNotFoundException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/PaginationException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/QueryMalformedException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/QueryNotFoundException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/QueryNotSupportedException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/QueryStoreCreateException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/QueryStoreGCException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/QueryStoreInsertException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/QueryStorePersistException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/QueueNotFoundException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/RemoteUnavailableException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/RorNotFoundException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/SearchServiceConnectionException.java (92%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/SearchServiceException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/SemanticEntityNotFoundException.java (92%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/SortException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/StorageNotFoundException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/StorageUnavailableException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/TableExistsException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/TableMalformedException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/TableNotFoundException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/TableSchemaException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/UnitNotFoundException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/UriMalformedException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/UserExistsException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/UserNotFoundException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/ViewExistsException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/ViewMalformedException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/ViewNotFoundException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/exception/ViewSchemaException.java (91%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/test/BaseTest.java (97%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/test/dto/LocaleDto.java (86%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/test/pom.xml (100%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/test/utils/ArrayUtils.java (87%)
 rename lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/{ => core}/test/utils/EndpointUtils.java (94%)
 delete mode 100644 lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/AbstractUnitTest.java
 create mode 100644 lib/java/dbrepo-core/src/main/resources/concept-1.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/concept-2.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/database-1-user-1-read-access.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/database-1-user-2-write-own-access.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/database-1-user-3-write-all-access.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/database-2-user-2-write-all-access.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/database-2-user-3-read-access.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/database-3-user-1-write-all-access.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/database-4-user-1-read-access.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/database-4-user-2-write-own-access.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/database-4-user-3-write-all-access.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/identifier-1.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/identifier-2.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/identifier-3.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/identifier-4.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/identifier-5.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/identifier-6.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/identifier-7.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/ontology-1.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/ontology-2.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/ontology-3.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/ontology-4.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/ontology-5.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/query-1.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/query-2.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/query-3.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/query-4.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/query-5.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/query-6.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/query-7.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/query-8.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/query-9.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/table-1.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/table-2.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/table-3.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/table-4.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/table-5.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/table-6.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/table-7.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/table-8.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/table-9.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/unit-1.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/unit-2.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/user-1.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/user-2.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/user-3.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/user-4.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/user-5.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/view-1.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/view-2.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/view-3.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/view-4.json
 create mode 100644 lib/java/dbrepo-core/src/main/resources/view-5.json

diff --git a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java
index 79e6491982..91f3e4410b 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java
@@ -1,10 +1,10 @@
 package at.tuwien.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.CreateAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.CreateAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.tuwien.service.AccessService;
 import at.tuwien.service.CacheService;
 import io.swagger.v3.oas.annotations.Operation;
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java
index c8bf60199d..bf6bbc4879 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java
@@ -1,12 +1,12 @@
 package at.tuwien.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.internal.CreateDatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.internal.UpdateUserPasswordDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.internal.CreateDatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.internal.UpdateUserPasswordDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.tuwien.mapper.MetadataMapper;
 import at.tuwien.service.AccessService;
 import at.tuwien.service.CacheService;
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/RestEndpoint.java b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/RestEndpoint.java
index e67e3acb43..a9edad9674 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/RestEndpoint.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/RestEndpoint.java
@@ -1,6 +1,6 @@
 package at.tuwien.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDetailsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDetailsDto;
 import org.apache.spark.sql.Dataset;
 import org.apache.spark.sql.Row;
 import org.springframework.security.core.Authentication;
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/SubsetEndpoint.java b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/SubsetEndpoint.java
index 7132328868..fcc9d3cdec 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/SubsetEndpoint.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/SubsetEndpoint.java
@@ -1,14 +1,14 @@
 package at.tuwien.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.ExportResourceDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryPersistDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.SubsetDto;
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.ExportResourceDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryPersistDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.SubsetDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.tuwien.gateway.MetadataServiceGateway;
 import at.tuwien.mapper.MariaDbMapper;
 import at.tuwien.service.CacheService;
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java
index cc290c4407..e801ce2a45 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java
@@ -1,14 +1,14 @@
 package at.tuwien.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.ExportResourceDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.ImportDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.internal.TableCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.ExportResourceDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.ImportDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal.TableCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.tuwien.gateway.MetadataServiceGateway;
 import at.tuwien.mapper.MariaDbMapper;
 import at.tuwien.service.*;
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/UploadEndpoint.java b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/UploadEndpoint.java
index 810145343c..41982ebc36 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/UploadEndpoint.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/UploadEndpoint.java
@@ -1,9 +1,9 @@
 package at.tuwien.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.api.file.UploadResponseDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.file.UploadResponseDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.tuwien.service.StorageService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.Content;
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/ViewEndpoint.java b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/ViewEndpoint.java
index d7bb2ce116..245ca0ca26 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/ViewEndpoint.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/ViewEndpoint.java
@@ -1,13 +1,13 @@
 package at.tuwien.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.ExportResourceDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.CreateViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableStatisticDto;
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.ExportResourceDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.CreateViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableStatisticDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.tuwien.mapper.MariaDbMapper;
 import at.tuwien.service.*;
 import at.tuwien.validation.EndpointValidator;
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/handlers/ApiExceptionHandler.java b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/handlers/ApiExceptionHandler.java
index ada082153e..8485d507c5 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/handlers/ApiExceptionHandler.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/handlers/ApiExceptionHandler.java
@@ -1,7 +1,7 @@
 package at.tuwien.handlers;
 
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import io.swagger.v3.oas.annotations.Hidden;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.http.HttpHeaders;
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/validation/EndpointValidator.java b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/validation/EndpointValidator.java
index 6f5124850a..5f8b39704b 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/validation/EndpointValidator.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/validation/EndpointValidator.java
@@ -1,13 +1,13 @@
 package at.tuwien.validation;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.FilterDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.FilterTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.SubsetDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.FilterDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.FilterTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.SubsetDto;
 import at.tuwien.endpoints.RestEndpoint;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.tuwien.service.CacheService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/config/MariaDbConfig.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/config/MariaDbConfig.java
index 97fb83f404..f0b3bb8784 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/config/MariaDbConfig.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/config/MariaDbConfig.java
@@ -1,8 +1,8 @@
 package at.tuwien.config;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryDto;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.core.io.ClassPathResource;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/config/MariaDbContainerConfig.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/config/MariaDbContainerConfig.java
index b331dcea39..a1ad7e3171 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/config/MariaDbContainerConfig.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/config/MariaDbContainerConfig.java
@@ -1,7 +1,7 @@
 package at.tuwien.config;
 
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.testcontainers.containers.MariaDBContainer;
@@ -11,7 +11,7 @@ import org.testcontainers.images.PullPolicy;
  * This class configures the MariaDB container for the integration tests.
  */
 @Configuration
-public class MariaDbContainerConfig extends AbstractUnitTest {
+public class MariaDbContainerConfig extends BaseTest {
 
     public static CustomMariaDBContainer getContainer() {
         return CustomMariaDBContainer.getInstance();
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/AccessEndpointUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/AccessEndpointUnitTest.java
index 26671988b0..36579a1954 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/AccessEndpointUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/AccessEndpointUnitTest.java
@@ -1,15 +1,14 @@
 package at.tuwien.endpoint;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import at.tuwien.endpoints.AccessEndpoint;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
 import at.tuwien.service.AccessService;
 import at.tuwien.service.CacheService;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -28,7 +27,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class AccessEndpointUnitTest extends AbstractUnitTest {
+public class AccessEndpointUnitTest extends BaseTest {
 
     @Autowired
     private AccessEndpoint accessEndpoint;
@@ -39,11 +38,6 @@ public class AccessEndpointUnitTest extends AbstractUnitTest {
     @MockBean
     private AccessService accessService;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithMockUser(username = USER_LOCAL_ADMIN_USERNAME, authorities = {"system"})
     public void create_succeeds() throws UserNotFoundException, NotAllowedException, DatabaseUnavailableException,
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/DatabaseEndpointUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/DatabaseEndpointUnitTest.java
index 35e46938e7..d36fd29a64 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/DatabaseEndpointUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/DatabaseEndpointUnitTest.java
@@ -1,17 +1,16 @@
 package at.tuwien.endpoint;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import at.tuwien.endpoints.DatabaseEndpoint;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
 import at.tuwien.service.AccessService;
-import at.tuwien.service.ContainerService;
 import at.tuwien.service.CacheService;
+import at.tuwien.service.ContainerService;
 import at.tuwien.service.DatabaseService;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -33,7 +32,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class DatabaseEndpointUnitTest extends AbstractUnitTest {
+public class DatabaseEndpointUnitTest extends BaseTest {
 
     @Autowired
     private DatabaseEndpoint databaseEndpoint;
@@ -50,11 +49,6 @@ public class DatabaseEndpointUnitTest extends AbstractUnitTest {
     @MockBean
     private CacheService credentialService;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithMockUser(username = USER_LOCAL_ADMIN_USERNAME, authorities = {"system"})
     public void create_succeeds() throws DatabaseUnavailableException, RemoteUnavailableException,
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/SubsetEndpointUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/SubsetEndpointUnitTest.java
index 90396d44e0..7c21fa5ebf 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/SubsetEndpointUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/SubsetEndpointUnitTest.java
@@ -1,11 +1,11 @@
 package at.tuwien.endpoint;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryPersistDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.SubsetDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryPersistDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.SubsetDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import at.tuwien.endpoints.SubsetEndpoint;
 import at.tuwien.gateway.MetadataServiceGateway;
 import at.tuwien.service.CacheService;
@@ -17,7 +17,6 @@ import lombok.extern.log4j.Log4j2;
 import org.apache.spark.sql.Dataset;
 import org.apache.spark.sql.Row;
 import org.apache.spark.sql.SparkSession;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -42,7 +41,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class SubsetEndpointUnitTest extends AbstractUnitTest {
+public class SubsetEndpointUnitTest extends BaseTest {
 
     @Autowired
     private SubsetEndpoint subsetEndpoint;
@@ -68,11 +67,6 @@ public class SubsetEndpointUnitTest extends AbstractUnitTest {
     @MockBean
     private MetadataServiceGateway metadataServiceGateway;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithAnonymousUser
     public void list_publicDataPrivateSchemaAnonymous_succeeds() throws QueryNotFoundException,
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointUnitTest.java
index 1bde5acb68..280b28bbc8 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointUnitTest.java
@@ -1,24 +1,23 @@
 package at.tuwien.endpoint;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.ImportDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.internal.TableCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.ImportDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal.TableCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import at.tuwien.endpoints.TableEndpoint;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
 import at.tuwien.gateway.MetadataServiceGateway;
 import at.tuwien.service.CacheService;
 import at.tuwien.service.DatabaseService;
 import at.tuwien.service.SubsetService;
 import at.tuwien.service.TableService;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
 import jakarta.servlet.http.HttpServletRequest;
 import lombok.extern.log4j.Log4j2;
 import org.apache.spark.sql.Dataset;
 import org.apache.spark.sql.Row;
 import org.apache.spark.sql.SparkSession;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.junit.jupiter.params.ParameterizedTest;
@@ -27,7 +26,6 @@ import org.junit.jupiter.params.provider.MethodSource;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.mock.mockito.MockBean;
-import org.springframework.core.io.InputStreamResource;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.security.access.AccessDeniedException;
@@ -47,7 +45,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class TableEndpointUnitTest extends AbstractUnitTest {
+public class TableEndpointUnitTest extends BaseTest {
 
     @Autowired
     private TableEndpoint tableEndpoint;
@@ -89,11 +87,6 @@ public class TableEndpointUnitTest extends AbstractUnitTest {
         );
     }
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithMockUser(username = USER_LOCAL_ADMIN_USERNAME, authorities = {"system"})
     public void create_succeeds() throws DatabaseUnavailableException, TableMalformedException, ViewNotFoundException,
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/ViewEndpointUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/ViewEndpointUnitTest.java
index 0abcea2588..dfed71fbbb 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/ViewEndpointUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/ViewEndpointUnitTest.java
@@ -1,20 +1,19 @@
 package at.tuwien.endpoint;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import at.tuwien.endpoints.ViewEndpoint;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
 import at.tuwien.service.CacheService;
 import at.tuwien.service.DatabaseService;
 import at.tuwien.service.SubsetService;
 import at.tuwien.service.ViewService;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
 import jakarta.servlet.http.HttpServletRequest;
 import lombok.extern.log4j.Log4j2;
 import org.apache.spark.sql.Dataset;
 import org.apache.spark.sql.Row;
 import org.apache.spark.sql.SparkSession;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -37,7 +36,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class ViewEndpointUnitTest extends AbstractUnitTest {
+public class ViewEndpointUnitTest extends BaseTest {
 
     @MockBean
     private ViewService viewService;
@@ -60,11 +59,6 @@ public class ViewEndpointUnitTest extends AbstractUnitTest {
     @Autowired
     private SparkSession sparkSession;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithMockUser(username = USER_LOCAL_ADMIN_USERNAME, authorities = {"system"})
     public void create_succeeds() throws DatabaseNotFoundException, RemoteUnavailableException, ViewMalformedException,
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/gateway/InterceptorUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/gateway/InterceptorUnitTest.java
index 7cf7103ce6..c41b8c326c 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/gateway/InterceptorUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/gateway/InterceptorUnitTest.java
@@ -1,9 +1,8 @@
 package at.tuwien.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Qualifier;
@@ -21,17 +20,12 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class InterceptorUnitTest extends AbstractUnitTest {
+public class InterceptorUnitTest extends BaseTest {
 
     @MockBean
     @Qualifier("keycloakRestTemplate")
     private RestTemplate restTemplate;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void intercept_succeeds() {
 
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/gateway/MetadataServiceGatewayUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/gateway/MetadataServiceGatewayUnitTest.java
index 54d7a5b557..40025d894e 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/gateway/MetadataServiceGatewayUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/gateway/MetadataServiceGatewayUnitTest.java
@@ -1,16 +1,15 @@
 package at.tuwien.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,7 +33,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class MetadataServiceGatewayUnitTest extends AbstractUnitTest {
+public class MetadataServiceGatewayUnitTest extends BaseTest {
 
     @MockBean
     @Qualifier("internalRestTemplate")
@@ -43,11 +42,6 @@ public class MetadataServiceGatewayUnitTest extends AbstractUnitTest {
     @Autowired
     private MetadataServiceGateway metadataServiceGateway;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void getTableById_succeeds() throws TableNotFoundException, RemoteUnavailableException,
             MetadataServiceException {
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/handlers/ApiExceptionHandlerTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/handlers/ApiExceptionHandlerTest.java
index 4f867e8d4b..063234a012 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/handlers/ApiExceptionHandlerTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/handlers/ApiExceptionHandlerTest.java
@@ -1,8 +1,8 @@
 package at.tuwien.handlers;
 
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
@@ -21,15 +21,15 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.Optional;
 
-import static at.ac.tuwien.ifs.dbrepo.test.utils.EndpointUtils.getErrorCodes;
-import static at.ac.tuwien.ifs.dbrepo.test.utils.EndpointUtils.getExceptions;
+import static at.ac.tuwien.ifs.dbrepo.core.test.utils.EndpointUtils.getErrorCodes;
+import static at.ac.tuwien.ifs.dbrepo.core.test.utils.EndpointUtils.getExceptions;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 @Log4j2
 @ExtendWith(SpringExtension.class)
 @SpringBootTest
-public class ApiExceptionHandlerTest extends AbstractUnitTest {
+public class ApiExceptionHandlerTest extends BaseTest {
 
     @Autowired
     private ApiExceptionHandler apiExceptionHandler;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/listener/DefaultListenerIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/listener/DefaultListenerIntegrationTest.java
index 280d2a6d6f..a0c97cf08e 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/listener/DefaultListenerIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/listener/DefaultListenerIntegrationTest.java
@@ -1,13 +1,13 @@
 package at.tuwien.listener;
 
+import at.ac.tuwien.ifs.dbrepo.core.exception.DatabaseNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MetadataServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.RemoteUnavailableException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.TableNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import at.tuwien.config.MariaDbConfig;
 import at.tuwien.config.MariaDbContainerConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.DatabaseNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.MetadataServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.RemoteUnavailableException;
-import at.ac.tuwien.ifs.dbrepo.exception.TableNotFoundException;
 import at.tuwien.service.CacheService;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Disabled;
@@ -40,7 +40,7 @@ import static org.mockito.Mockito.when;
 @Testcontainers
 @ExtendWith(SpringExtension.class)
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
-public class DefaultListenerIntegrationTest extends AbstractUnitTest {
+public class DefaultListenerIntegrationTest extends BaseTest {
 
     @MockBean
     private CacheService credentialService;
@@ -56,7 +56,6 @@ public class DefaultListenerIntegrationTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() throws SQLException {
-        genesis();
         /* database */
         MariaDbConfig.dropAllDatabases(CONTAINER_1_PRIVILEGED_DTO);
         MariaDbConfig.createInitDatabase(DATABASE_1_PRIVILEGED_DTO);
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/listener/DefaultListenerUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/listener/DefaultListenerUnitTest.java
index 6beffa4759..a53be7024f 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/listener/DefaultListenerUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/listener/DefaultListenerUnitTest.java
@@ -1,13 +1,13 @@
 package at.tuwien.listener;
 
+import at.ac.tuwien.ifs.dbrepo.core.exception.DatabaseNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MetadataServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.RemoteUnavailableException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.TableNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import at.tuwien.config.MariaDbConfig;
 import at.tuwien.config.MariaDbContainerConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.DatabaseNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.MetadataServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.RemoteUnavailableException;
-import at.ac.tuwien.ifs.dbrepo.exception.TableNotFoundException;
 import at.tuwien.service.CacheService;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -36,7 +36,7 @@ import static org.mockito.Mockito.when;
 @SpringBootTest
 @ExtendWith({SpringExtension.class, OutputCaptureExtension.class})
 @Testcontainers
-public class DefaultListenerUnitTest extends AbstractUnitTest {
+public class DefaultListenerUnitTest extends BaseTest {
 
     @MockBean
     private CacheService credentialService;
@@ -52,7 +52,6 @@ public class DefaultListenerUnitTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() throws SQLException {
-        genesis();
         /* metadata database */
         MariaDbConfig.dropAllDatabases(CONTAINER_1_PRIVILEGED_DTO);
         MariaDbConfig.createInitDatabase(DATABASE_1_PRIVILEGED_DTO);
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mapper/MariaDbMapperUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mapper/MariaDbMapperUnitTest.java
index 37dc14f3ec..ffd7a9cdcc 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mapper/MariaDbMapperUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mapper/MariaDbMapperUnitTest.java
@@ -1,6 +1,6 @@
 package at.tuwien.mapper;
 
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.junit.jupiter.params.ParameterizedTest;
@@ -17,7 +17,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class MariaDbMapperUnitTest extends AbstractUnitTest {
+public class MariaDbMapperUnitTest extends BaseTest {
 
     @Autowired
     private MariaDbMapper mariaDbMapper;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/ActuatorEndpointMvcTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/ActuatorEndpointMvcTest.java
index 2781f51c82..50f371a9a8 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/ActuatorEndpointMvcTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/ActuatorEndpointMvcTest.java
@@ -1,6 +1,6 @@
 package at.tuwien.mvc;
 
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -20,7 +20,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
 @AutoConfigureMockMvc
 @SpringBootTest
 @AutoConfigureObservability
-public class ActuatorEndpointMvcTest extends AbstractUnitTest {
+public class ActuatorEndpointMvcTest extends BaseTest {
 
     @Autowired
     private MockMvc mockMvc;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/OpenApiEndpointMvcTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/OpenApiEndpointMvcTest.java
index 1d77947dcc..248983b2c0 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/OpenApiEndpointMvcTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/OpenApiEndpointMvcTest.java
@@ -1,8 +1,8 @@
 package at.tuwien.mvc;
 
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
 import at.tuwien.endpoints.*;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.Content;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
@@ -30,7 +30,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
 @ExtendWith(SpringExtension.class)
 @AutoConfigureMockMvc
 @SpringBootTest
-public class OpenApiEndpointMvcTest extends AbstractUnitTest {
+public class OpenApiEndpointMvcTest extends BaseTest {
 
     @Autowired
     private MockMvc mockMvc;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/PrometheusEndpointMvcTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/PrometheusEndpointMvcTest.java
index f47d205cd7..164aa99c06 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/PrometheusEndpointMvcTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/PrometheusEndpointMvcTest.java
@@ -1,16 +1,16 @@
 package at.tuwien.mvc;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.query.ImportDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryPersistDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TupleDeleteDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TupleDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TupleUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.ImportDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryPersistDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TupleDeleteDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TupleDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TupleUpdateDto;
 import at.tuwien.config.MetricsConfig;
 import at.tuwien.endpoints.SubsetEndpoint;
 import at.tuwien.endpoints.TableEndpoint;
 import at.tuwien.endpoints.ViewEndpoint;
 import at.tuwien.listener.DefaultListener;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import io.micrometer.observation.tck.TestObservationRegistry;
 import jakarta.servlet.http.HttpServletRequest;
 import lombok.extern.log4j.Log4j2;
@@ -42,7 +42,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
 @SpringBootTest
 @Import(MetricsConfig.class)
 @AutoConfigureObservability
-public class PrometheusEndpointMvcTest extends AbstractUnitTest {
+public class PrometheusEndpointMvcTest extends BaseTest {
 
     @Autowired
     private MockMvc mockMvc;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/SubsetEndpointMvcTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/SubsetEndpointMvcTest.java
index 158bed7ef0..1371d58bb3 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/SubsetEndpointMvcTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/SubsetEndpointMvcTest.java
@@ -2,7 +2,7 @@ package at.tuwien.mvc;
 
 import at.tuwien.gateway.MetadataServiceGateway;
 import at.tuwien.service.SubsetService;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -25,7 +25,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
 @AutoConfigureMockMvc
 @SpringBootTest
 @AutoConfigureObservability
-public class SubsetEndpointMvcTest extends AbstractUnitTest {
+public class SubsetEndpointMvcTest extends BaseTest {
 
     @MockBean
     private MetadataServiceGateway metadataServiceGateway;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/AccessServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/AccessServiceIntegrationTest.java
index e1f0354d1b..a1c273f8d0 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/AccessServiceIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/AccessServiceIntegrationTest.java
@@ -1,10 +1,10 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
 import at.tuwien.config.MariaDbConfig;
 import at.tuwien.config.MariaDbContainerConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.DatabaseMalformedException;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DatabaseMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -26,7 +26,7 @@ import static org.junit.jupiter.api.Assertions.*;
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
 @Testcontainers
-public class AccessServiceIntegrationTest extends AbstractUnitTest {
+public class AccessServiceIntegrationTest extends BaseTest {
 
     @Autowired
     private AccessService accessService;
@@ -42,7 +42,6 @@ public class AccessServiceIntegrationTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() throws SQLException {
-        genesis();
         /* metadata database */
         MariaDbConfig.dropDatabase(CONTAINER_1_PRIVILEGED_DTO, DATABASE_1_INTERNALNAME);
         MariaDbConfig.createInitDatabase(DATABASE_1_PRIVILEGED_DTO);
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java
index eddeef45e0..2967bfce46 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java
@@ -1,11 +1,11 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
 import at.tuwien.config.MariaDbConfig;
 import at.tuwien.config.MariaDbContainerConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.DatabaseMalformedException;
-import at.ac.tuwien.ifs.dbrepo.exception.QueryStoreCreateException;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DatabaseMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.QueryStoreCreateException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
@@ -28,7 +28,7 @@ import static org.junit.jupiter.api.Assertions.*;
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
 @Testcontainers
-public class ContainerServiceIntegrationTest extends AbstractUnitTest {
+public class ContainerServiceIntegrationTest extends BaseTest {
 
     @Autowired
     private ContainerService containerService;
@@ -43,7 +43,6 @@ public class ContainerServiceIntegrationTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() throws SQLException, InterruptedException {
-        genesis();
         /* metadata database */
         MariaDbConfig.dropDatabase(CONTAINER_1_PRIVILEGED_DTO, DATABASE_1_INTERNALNAME);
         MariaDbConfig.createDatabase(CONTAINER_1_PRIVILEGED_DTO, DATABASE_1_INTERNALNAME);
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/CredentialServiceUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/CredentialServiceUnitTest.java
index b1bdc7f6bc..994d011360 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/CredentialServiceUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/CredentialServiceUnitTest.java
@@ -1,15 +1,15 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.tuwien.gateway.MetadataServiceGateway;
 import at.tuwien.service.impl.CacheServiceImpl;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -27,7 +27,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class CredentialServiceUnitTest extends AbstractUnitTest {
+public class CredentialServiceUnitTest extends BaseTest {
 
     @Autowired
     private CacheServiceImpl credentialService;
@@ -37,7 +37,6 @@ public class CredentialServiceUnitTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() throws SQLException {
-        genesis();
         /* cache */
         credentialService.invalidateAll();
     }
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceIntegrationTest.java
index 8726fa86a3..d907064afc 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceIntegrationTest.java
@@ -1,25 +1,25 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.ConstraintsDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.CreateTableConstraintsDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.CreateForeignKeyDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.ForeignKeyDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.ForeignKeyReferenceDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.ReferenceTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.primary.PrimaryKeyDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.unique.UniqueDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.internal.TableCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.internal.UpdateUserPasswordDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.ConstraintsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.CreateTableConstraintsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.CreateForeignKeyDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.ForeignKeyDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.ForeignKeyReferenceDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.ReferenceTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.primary.PrimaryKeyDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.unique.UniqueDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal.TableCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.internal.UpdateUserPasswordDto;
 import at.tuwien.config.MariaDbConfig;
 import at.tuwien.config.MariaDbContainerConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
@@ -45,7 +45,7 @@ import static org.junit.jupiter.api.Assertions.*;
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
 @Testcontainers
-public class DatabaseServiceIntegrationTest extends AbstractUnitTest {
+public class DatabaseServiceIntegrationTest extends BaseTest {
 
     @Autowired
     private DatabaseService databaseService;
@@ -60,7 +60,6 @@ public class DatabaseServiceIntegrationTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() throws SQLException, InterruptedException {
-        genesis();
         /* metadata database */
         MariaDbConfig.dropDatabase(CONTAINER_1_PRIVILEGED_DTO, DATABASE_1_INTERNALNAME);
         MariaDbConfig.createInitDatabase(DATABASE_1_PRIVILEGED_DTO);
@@ -616,7 +615,7 @@ public class DatabaseServiceIntegrationTest extends AbstractUnitTest {
 
     @Test
     public void createTable_malformed_fails() {
-        final at.ac.tuwien.ifs.dbrepo.api.database.table.internal.TableCreateDto request = TableCreateDto.builder()
+        final at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal.TableCreateDto request = TableCreateDto.builder()
                 .name("missing_foreign_key")
                 .columns(List.of())
                 .constraints(CreateTableConstraintsDto.builder()
@@ -637,7 +636,7 @@ public class DatabaseServiceIntegrationTest extends AbstractUnitTest {
     @Test
     public void createTable_compositePrimaryKey_fails() throws TableNotFoundException, TableMalformedException, SQLException,
             TableExistsException {
-        final at.ac.tuwien.ifs.dbrepo.api.database.table.internal.TableCreateDto request = TableCreateDto.builder()
+        final at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal.TableCreateDto request = TableCreateDto.builder()
                 .name("composite_primary_key")
                 .columns(List.of(CreateTableColumnDto.builder()
                                 .name("name")
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/QueueServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/QueueServiceIntegrationTest.java
index be89571ced..e722cebe99 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/QueueServiceIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/QueueServiceIntegrationTest.java
@@ -2,13 +2,13 @@ package at.tuwien.service;
 
 import at.tuwien.config.MariaDbConfig;
 import at.tuwien.config.MariaDbContainerConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.DatabaseNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.MetadataServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.RemoteUnavailableException;
-import at.ac.tuwien.ifs.dbrepo.exception.TableNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DatabaseNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MetadataServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.RemoteUnavailableException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.TableNotFoundException;
 import at.tuwien.gateway.MetadataServiceGateway;
 import at.tuwien.service.impl.QueueServiceRabbitMqImpl;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
@@ -32,7 +32,7 @@ import static org.mockito.Mockito.when;
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
 @Testcontainers
-public class QueueServiceIntegrationTest extends AbstractUnitTest {
+public class QueueServiceIntegrationTest extends BaseTest {
 
     @Autowired
     private QueueServiceRabbitMqImpl queueService;
@@ -50,7 +50,6 @@ public class QueueServiceIntegrationTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() throws SQLException {
-        genesis();
         /* metadata database */
         MariaDbConfig.dropDatabase(CONTAINER_1_PRIVILEGED_DTO, DATABASE_1_INTERNALNAME);
         MariaDbConfig.createInitDatabase(DATABASE_1_PRIVILEGED_DTO);
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/StorageServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/StorageServiceIntegrationTest.java
index f3cfb9c8b9..dd563deb70 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/StorageServiceIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/StorageServiceIntegrationTest.java
@@ -1,12 +1,12 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.ExportResourceDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.ExportResourceDto;
 import at.tuwien.config.S3Config;
-import at.ac.tuwien.ifs.dbrepo.exception.MalformedException;
-import at.ac.tuwien.ifs.dbrepo.exception.StorageNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.StorageUnavailableException;
-import at.ac.tuwien.ifs.dbrepo.exception.TableMalformedException;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.StorageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.StorageUnavailableException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.TableMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.io.FileUtils;
 import org.apache.spark.sql.Dataset;
@@ -48,7 +48,7 @@ import static org.junit.jupiter.api.Assertions.*;
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
 @Testcontainers
-public class StorageServiceIntegrationTest extends AbstractUnitTest {
+public class StorageServiceIntegrationTest extends BaseTest {
 
     @Autowired
     private StorageService storageService;
@@ -84,7 +84,6 @@ public class StorageServiceIntegrationTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() throws SQLException {
-        genesis();
         /* s3 */
         if (s3Client.listBuckets().buckets().stream().noneMatch(b -> b.name().equals(s3Config.getS3Bucket()))) {
             s3Client.createBucket(CreateBucketRequest.builder()
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/SubsetServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/SubsetServiceIntegrationTest.java
index 222dec4e84..aad256fd11 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/SubsetServiceIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/SubsetServiceIntegrationTest.java
@@ -1,12 +1,12 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.query.*;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierBriefDto;
 import at.tuwien.config.MariaDbConfig;
 import at.tuwien.config.MariaDbContainerConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.tuwien.gateway.MetadataServiceGateway;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.apache.spark.sql.Dataset;
 import org.apache.spark.sql.Row;
@@ -39,7 +39,7 @@ import static org.mockito.Mockito.when;
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
 @Testcontainers
-public class SubsetServiceIntegrationTest extends AbstractUnitTest {
+public class SubsetServiceIntegrationTest extends BaseTest {
 
     @Autowired
     private SubsetService subsetService;
@@ -60,7 +60,6 @@ public class SubsetServiceIntegrationTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() throws SQLException {
-        genesis();
         /* metadata database */
         MariaDbConfig.dropDatabase(CONTAINER_1_PRIVILEGED_DTO, DATABASE_1_INTERNALNAME);
         MariaDbConfig.createInitDatabase(DATABASE_1_PRIVILEGED_DTO);
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationTest.java
index 6172f89569..a52cdf9bcb 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationTest.java
@@ -1,13 +1,13 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.query.ImportDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnStatisticDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.ImportDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnStatisticDto;
 import at.tuwien.config.MariaDbConfig;
 import at.tuwien.config.MariaDbContainerConfig;
 import at.tuwien.config.S3Config;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import com.google.common.io.Files;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeAll;
@@ -45,7 +45,7 @@ import static org.junit.jupiter.api.Assertions.*;
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
 @Testcontainers
-public class TableServiceIntegrationTest extends AbstractUnitTest {
+public class TableServiceIntegrationTest extends BaseTest {
 
     @Autowired
     private TableService tableService;
@@ -74,7 +74,6 @@ public class TableServiceIntegrationTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() throws SQLException {
-        genesis();
         /* metadata database */
         MariaDbConfig.dropDatabase(CONTAINER_1_PRIVILEGED_DTO, DATABASE_1_INTERNALNAME);
         MariaDbConfig.dropDatabase(CONTAINER_1_PRIVILEGED_DTO, DATABASE_2_INTERNALNAME);
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/ViewServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/ViewServiceIntegrationTest.java
index b21def2123..75f5d43a9b 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/ViewServiceIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/ViewServiceIntegrationTest.java
@@ -2,8 +2,8 @@ package at.tuwien.service;
 
 import at.tuwien.config.MariaDbConfig;
 import at.tuwien.config.MariaDbContainerConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.ViewMalformedException;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ViewMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -21,7 +21,7 @@ import java.sql.SQLException;
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
 @Testcontainers
-public class ViewServiceIntegrationTest extends AbstractUnitTest {
+public class ViewServiceIntegrationTest extends BaseTest {
 
     @Autowired
     private ViewService viewService;
@@ -31,7 +31,6 @@ public class ViewServiceIntegrationTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() throws SQLException {
-        genesis();
         /* metadata database */
         MariaDbConfig.dropDatabase(CONTAINER_1_PRIVILEGED_DTO, DATABASE_1_INTERNALNAME);
         MariaDbConfig.createInitDatabase(DATABASE_1_PRIVILEGED_DTO);
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/utils/MariaDbUtilTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/utils/MariaDbUtilTest.java
index dbcf11224b..6a7a08cf26 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/utils/MariaDbUtilTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/utils/MariaDbUtilTest.java
@@ -1,6 +1,6 @@
 package at.tuwien.utils;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnTypeDto;
 import org.junit.jupiter.api.Test;
 import org.springframework.amqp.core.Message;
 import org.springframework.amqp.core.MessageProperties;
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/validation/EndpointValidatorUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/validation/EndpointValidatorUnitTest.java
index 03df61b447..0f865a3929 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/validation/EndpointValidatorUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/validation/EndpointValidatorUnitTest.java
@@ -1,7 +1,7 @@
 package at.tuwien.validation;
 
-import at.ac.tuwien.ifs.dbrepo.exception.PaginationException;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.exception.PaginationException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -18,7 +18,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
 @AutoConfigureMockMvc
 @SpringBootTest
 @AutoConfigureObservability
-public class EndpointValidatorUnitTest extends AbstractUnitTest {
+public class EndpointValidatorUnitTest extends BaseTest {
 
     @Autowired
     private EndpointValidator endpointValidator;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/auth/AuthTokenFilter.java b/dbrepo-data-service/services/src/main/java/at/tuwien/auth/AuthTokenFilter.java
index cdfd1d647e..81590fbe4d 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/auth/AuthTokenFilter.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/auth/AuthTokenFilter.java
@@ -1,7 +1,7 @@
 package at.tuwien.auth;
 
-import at.ac.tuwien.ifs.dbrepo.api.auth.RealmAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDetailsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.auth.RealmAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDetailsDto;
 import com.auth0.jwt.JWT;
 import com.auth0.jwt.JWTVerifier;
 import com.auth0.jwt.algorithms.Algorithm;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/auth/BasicAuthenticationProvider.java b/dbrepo-data-service/services/src/main/java/at/tuwien/auth/BasicAuthenticationProvider.java
index 66089b00b4..047469e772 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/auth/BasicAuthenticationProvider.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/auth/BasicAuthenticationProvider.java
@@ -1,6 +1,6 @@
 package at.tuwien.auth;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
 import at.tuwien.service.CredentialService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/auth/InternalRequestInterceptor.java b/dbrepo-data-service/services/src/main/java/at/tuwien/auth/InternalRequestInterceptor.java
index ae4eedc7c7..e5549a35b1 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/auth/InternalRequestInterceptor.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/auth/InternalRequestInterceptor.java
@@ -1,6 +1,6 @@
 package at.tuwien.auth;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
 import at.tuwien.config.GatewayConfig;
 import at.tuwien.service.CredentialService;
 import lombok.extern.log4j.Log4j2;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/config/CacheConfig.java b/dbrepo-data-service/services/src/main/java/at/tuwien/config/CacheConfig.java
index 757d4b7f6b..2466f40a2b 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/config/CacheConfig.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/config/CacheConfig.java
@@ -1,13 +1,13 @@
 package at.tuwien.config;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableStatisticDto;
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableStatisticDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
 import com.github.benmanes.caffeine.cache.Cache;
 import com.github.benmanes.caffeine.cache.Caffeine;
 import org.springframework.beans.factory.annotation.Value;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/KeycloakGateway.java b/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/KeycloakGateway.java
index 4c404b9d66..5b23d7c367 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/KeycloakGateway.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/KeycloakGateway.java
@@ -1,10 +1,10 @@
 package at.tuwien.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
-import at.ac.tuwien.ifs.dbrepo.exception.AccountNotSetupException;
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceConnectionException;
-import at.ac.tuwien.ifs.dbrepo.exception.CredentialsInvalidException;
-import at.ac.tuwien.ifs.dbrepo.exception.NotAllowedException;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AccountNotSetupException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceConnectionException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.CredentialsInvalidException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.NotAllowedException;
 import org.springframework.security.authentication.BadCredentialsException;
 
 public interface KeycloakGateway {
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/MetadataServiceGateway.java b/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/MetadataServiceGateway.java
index ecb4f9b937..7d5571da9a 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/MetadataServiceGateway.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/MetadataServiceGateway.java
@@ -1,13 +1,13 @@
 package at.tuwien.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import jakarta.validation.constraints.NotNull;
 
 import java.util.List;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/impl/KeycloakGatewayImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/impl/KeycloakGatewayImpl.java
index a44034cced..d0f874cb9c 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/impl/KeycloakGatewayImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/impl/KeycloakGatewayImpl.java
@@ -1,6 +1,6 @@
 package at.tuwien.gateway.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
 import at.tuwien.config.KeycloakConfig;
 import at.tuwien.gateway.KeycloakGateway;
 import at.tuwien.mapper.MetadataMapper;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/impl/MetadataServiceGatewayImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/impl/MetadataServiceGatewayImpl.java
index 2922d00f05..959ad34e5d 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/impl/MetadataServiceGatewayImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/impl/MetadataServiceGatewayImpl.java
@@ -1,14 +1,14 @@
 package at.tuwien.gateway.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
 import at.tuwien.config.GatewayConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.tuwien.gateway.MetadataServiceGateway;
 import at.tuwien.mapper.MetadataMapper;
 import jakarta.validation.constraints.NotNull;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/listener/DefaultListener.java b/dbrepo-data-service/services/src/main/java/at/tuwien/listener/DefaultListener.java
index 799a5d3c79..aad70d3f37 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/listener/DefaultListener.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/listener/DefaultListener.java
@@ -1,11 +1,11 @@
 package at.tuwien.listener;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.exception.DatabaseNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.MetadataServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.RemoteUnavailableException;
-import at.ac.tuwien.ifs.dbrepo.exception.TableNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DatabaseNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MetadataServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.RemoteUnavailableException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.TableNotFoundException;
 import at.tuwien.service.CacheService;
 import at.tuwien.service.QueueService;
 import com.fasterxml.jackson.core.type.TypeReference;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/DataMapper.java b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/DataMapper.java
index 9088073b0c..904d867643 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/DataMapper.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/DataMapper.java
@@ -1,20 +1,20 @@
 package at.tuwien.mapper;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.ConstraintsDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.ForeignKeyBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.ForeignKeyDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.ForeignKeyReferenceDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.ReferenceTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.primary.PrimaryKeyDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.unique.UniqueDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
-import at.ac.tuwien.ifs.dbrepo.exception.TableNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.ConstraintsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.ForeignKeyBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.ForeignKeyDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.ForeignKeyReferenceDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.ReferenceTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.primary.PrimaryKeyDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.unique.UniqueDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.TableNotFoundException;
 import org.apache.hadoop.shaded.com.google.common.hash.Hashing;
 import org.apache.hadoop.shaded.org.apache.commons.io.FileUtils;
 import org.jetbrains.annotations.NotNull;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MariaDbMapper.java b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MariaDbMapper.java
index 2bb7eeb084..4861a7a1d7 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MariaDbMapper.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MariaDbMapper.java
@@ -1,22 +1,22 @@
 package at.tuwien.mapper;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.image.OperatorDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.FilterDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.FilterTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.OrderDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.SubsetDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TupleDeleteDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TupleDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TupleUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.CreateTableColumnDto;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.QueryMalformedException;
-import at.ac.tuwien.ifs.dbrepo.exception.TableMalformedException;
-import at.ac.tuwien.ifs.dbrepo.exception.TableNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.OperatorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.FilterDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.FilterTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.OrderDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.SubsetDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TupleDeleteDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TupleDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TupleUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.CreateTableColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.QueryMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.TableMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.TableNotFoundException;
 import at.tuwien.utils.MariaDbUtil;
 import org.jooq.Record;
 import org.jooq.*;
@@ -317,7 +317,7 @@ public interface MariaDbMapper {
     }
 
     default String tableCreateDtoToCreateTableRawQuery(String databaseName,
-                                                       at.ac.tuwien.ifs.dbrepo.api.database.table.internal.TableCreateDto data) {
+                                                       at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal.TableCreateDto data) {
         final StringBuilder stringBuilder = new StringBuilder("CREATE TABLE `")
                 .append(databaseName)
                 .append("`.`")
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MetadataMapper.java b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MetadataMapper.java
index 68d83d97c3..ff979bd088 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MetadataMapper.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MetadataMapper.java
@@ -1,21 +1,20 @@
 package at.tuwien.mapper;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.internal.CreateDatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierDto;
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.internal.CreateDatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
 import org.keycloak.representations.AccessTokenResponse;
 import org.mapstruct.Mapper;
 import org.mapstruct.Mapping;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/AccessService.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/AccessService.java
index 1abee15a64..71899fc081 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/AccessService.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/AccessService.java
@@ -1,9 +1,9 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
-import at.ac.tuwien.ifs.dbrepo.exception.DatabaseMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DatabaseMalformedException;
 
 import java.sql.SQLException;
 
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/CacheService.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/CacheService.java
index 5f5de380ba..9424af16c2 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/CacheService.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/CacheService.java
@@ -1,13 +1,13 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableStatisticDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableStatisticDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 
 import java.sql.SQLException;
 import java.util.UUID;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/ContainerService.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/ContainerService.java
index 68f953ce9a..f788a06eeb 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/ContainerService.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/ContainerService.java
@@ -1,10 +1,10 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.internal.CreateDatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.exception.DatabaseMalformedException;
-import at.ac.tuwien.ifs.dbrepo.exception.QueryStoreCreateException;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.internal.CreateDatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DatabaseMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.QueryStoreCreateException;
 
 import java.sql.SQLException;
 
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/CredentialService.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/CredentialService.java
index 469db41a02..bb9765c810 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/CredentialService.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/CredentialService.java
@@ -1,6 +1,6 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
 
 public interface CredentialService {
 
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/DatabaseService.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/DatabaseService.java
index 31bfc1dbbe..a12c8e0d4d 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/DatabaseService.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/DatabaseService.java
@@ -1,11 +1,11 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.internal.TableCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.internal.UpdateUserPasswordDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal.TableCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.internal.UpdateUserPasswordDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 
 import java.sql.SQLException;
 import java.util.List;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/QueueService.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/QueueService.java
index bfbe27066f..e35f4029bb 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/QueueService.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/QueueService.java
@@ -1,7 +1,7 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
 
 import java.sql.SQLException;
 import java.util.Map;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/StorageService.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/StorageService.java
index 062d008257..65896d53e3 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/StorageService.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/StorageService.java
@@ -1,10 +1,10 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.ExportResourceDto;
-import at.ac.tuwien.ifs.dbrepo.exception.MalformedException;
-import at.ac.tuwien.ifs.dbrepo.exception.StorageNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.StorageUnavailableException;
-import at.ac.tuwien.ifs.dbrepo.exception.TableMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.api.ExportResourceDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.StorageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.StorageUnavailableException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.TableMalformedException;
 import org.apache.spark.sql.Dataset;
 import org.apache.spark.sql.Row;
 
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/SubsetService.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/SubsetService.java
index 9e15373ee3..30f6c2604f 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/SubsetService.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/SubsetService.java
@@ -1,9 +1,9 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.SubsetDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.SubsetDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import org.apache.spark.sql.Dataset;
 import org.apache.spark.sql.Row;
 
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/TableService.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/TableService.java
index 9d6e1b98fb..7ecc58bef8 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/TableService.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/TableService.java
@@ -1,9 +1,9 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.ImportDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.*;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.ImportDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.*;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 
 import java.sql.SQLException;
 import java.time.Instant;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/ViewService.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/ViewService.java
index d0a885c7e1..7fb1f0bdf8 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/ViewService.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/ViewService.java
@@ -1,9 +1,9 @@
 package at.tuwien.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.exception.QueryMalformedException;
-import at.ac.tuwien.ifs.dbrepo.exception.ViewMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.QueryMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ViewMalformedException;
 
 import java.sql.SQLException;
 import java.time.Instant;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/AccessServiceMariaDbImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/AccessServiceMariaDbImpl.java
index d7b303499d..fee072d633 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/AccessServiceMariaDbImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/AccessServiceMariaDbImpl.java
@@ -1,9 +1,9 @@
 package at.tuwien.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
-import at.ac.tuwien.ifs.dbrepo.exception.DatabaseMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DatabaseMalformedException;
 import at.tuwien.mapper.MariaDbMapper;
 import at.tuwien.service.AccessService;
 import com.mchange.v2.c3p0.ComboPooledDataSource;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/CacheServiceImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/CacheServiceImpl.java
index 67fd442e77..65646d1ad4 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/CacheServiceImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/CacheServiceImpl.java
@@ -1,13 +1,13 @@
 package at.tuwien.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableStatisticDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableStatisticDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.tuwien.gateway.MetadataServiceGateway;
 import at.tuwien.service.CacheService;
 import at.tuwien.service.TableService;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceMariaDbImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceMariaDbImpl.java
index 1fff245fd4..ff14b7329d 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceMariaDbImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceMariaDbImpl.java
@@ -1,12 +1,12 @@
 package at.tuwien.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.internal.CreateDatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.internal.CreateDatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
 import at.tuwien.config.RabbitConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.DatabaseMalformedException;
-import at.ac.tuwien.ifs.dbrepo.exception.QueryStoreCreateException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DatabaseMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.QueryStoreCreateException;
 import at.tuwien.mapper.MariaDbMapper;
 import at.tuwien.service.ContainerService;
 import com.mchange.v2.c3p0.ComboPooledDataSource;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/CredentialServiceImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/CredentialServiceImpl.java
index 8e24497cb8..cbe1912b3a 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/CredentialServiceImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/CredentialServiceImpl.java
@@ -1,6 +1,6 @@
 package at.tuwien.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
 import at.tuwien.gateway.KeycloakGateway;
 import at.tuwien.service.CredentialService;
 import com.github.benmanes.caffeine.cache.Cache;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/DataConnector.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/DataConnector.java
index a29e471f0f..366afd92a3 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/DataConnector.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/DataConnector.java
@@ -1,7 +1,7 @@
 package at.tuwien.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
 import com.mchange.v2.c3p0.ComboPooledDataSource;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.stereotype.Service;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceMariaDbImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceMariaDbImpl.java
index 55dc137c96..c6a0d61595 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceMariaDbImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceMariaDbImpl.java
@@ -1,12 +1,12 @@
 package at.tuwien.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.unique.UniqueDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.internal.TableCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.internal.UpdateUserPasswordDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.unique.UniqueDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal.TableCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.internal.UpdateUserPasswordDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.tuwien.mapper.DataMapper;
 import at.tuwien.mapper.MariaDbMapper;
 import at.tuwien.mapper.MetadataMapper;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/QueueServiceRabbitMqImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/QueueServiceRabbitMqImpl.java
index 80cf993767..541f68e951 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/QueueServiceRabbitMqImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/QueueServiceRabbitMqImpl.java
@@ -1,8 +1,8 @@
 package at.tuwien.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnDto;
 import at.tuwien.mapper.DataMapper;
 import at.tuwien.mapper.MetadataMapper;
 import at.tuwien.service.QueueService;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/StorageServiceS3Impl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/StorageServiceS3Impl.java
index db3ff4fd26..76bfb60c4d 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/StorageServiceS3Impl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/StorageServiceS3Impl.java
@@ -1,11 +1,11 @@
 package at.tuwien.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.ExportResourceDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.ExportResourceDto;
 import at.tuwien.config.S3Config;
-import at.ac.tuwien.ifs.dbrepo.exception.MalformedException;
-import at.ac.tuwien.ifs.dbrepo.exception.StorageNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.StorageUnavailableException;
-import at.ac.tuwien.ifs.dbrepo.exception.TableMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.StorageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.StorageUnavailableException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.TableMalformedException;
 import at.tuwien.service.StorageService;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.lang3.RandomStringUtils;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/SubsetServiceMariaDbImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/SubsetServiceMariaDbImpl.java
index 8b3a486bff..7ace8e4a05 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/SubsetServiceMariaDbImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/SubsetServiceMariaDbImpl.java
@@ -1,11 +1,11 @@
 package at.tuwien.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.SubsetDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierTypeDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.SubsetDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.tuwien.gateway.MetadataServiceGateway;
 import at.tuwien.mapper.DataMapper;
 import at.tuwien.mapper.MariaDbMapper;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/TableServiceMariaDbImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/TableServiceMariaDbImpl.java
index 75dd74dfa7..8e6e6acab3 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/TableServiceMariaDbImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/TableServiceMariaDbImpl.java
@@ -1,12 +1,12 @@
 package at.tuwien.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.ImportDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnStatisticDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnTypeDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.ImportDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnStatisticDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import at.tuwien.mapper.DataMapper;
 import at.tuwien.mapper.MariaDbMapper;
 import at.tuwien.service.DatabaseService;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/ViewServiceMariaDbImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/ViewServiceMariaDbImpl.java
index 652f1c6d6c..0ef62bb025 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/ViewServiceMariaDbImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/ViewServiceMariaDbImpl.java
@@ -1,9 +1,9 @@
 package at.tuwien.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.exception.QueryMalformedException;
-import at.ac.tuwien.ifs.dbrepo.exception.ViewMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.QueryMalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ViewMalformedException;
 import at.tuwien.mapper.MariaDbMapper;
 import at.tuwien.service.ViewService;
 import com.mchange.v2.c3p0.ComboPooledDataSource;
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/utils/MariaDbUtil.java b/dbrepo-data-service/services/src/main/java/at/tuwien/utils/MariaDbUtil.java
index 1ec5b98968..6d831d8d11 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/utils/MariaDbUtil.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/utils/MariaDbUtil.java
@@ -1,6 +1,6 @@
 package at.tuwien.utils;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnTypeDto;
 
 import java.util.List;
 
diff --git a/dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/OaiErrorType.java b/dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/OaiErrorType.java
similarity index 96%
rename from dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/OaiErrorType.java
rename to dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/OaiErrorType.java
index a15acb2dda..e2a13d7762 100644
--- a/dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/OaiErrorType.java
+++ b/dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/OaiErrorType.java
@@ -1,4 +1,4 @@
-package at.tuwien.oaipmh;
+package at.ac.tuwien.ifs.dbrepo.oaipmh;
 
 import lombok.Getter;
 
diff --git a/dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/OaiListIdentifiersParameters.java b/dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/OaiListIdentifiersParameters.java
similarity index 97%
rename from dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/OaiListIdentifiersParameters.java
rename to dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/OaiListIdentifiersParameters.java
index 721175ed17..d55f1b994f 100644
--- a/dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/OaiListIdentifiersParameters.java
+++ b/dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/OaiListIdentifiersParameters.java
@@ -1,4 +1,4 @@
-package at.tuwien.oaipmh;
+package at.ac.tuwien.ifs.dbrepo.oaipmh;
 
 import lombok.*;
 import org.apache.commons.lang3.StringUtils;
diff --git a/dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/OaiListRecordsParameters.java b/dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/OaiListRecordsParameters.java
similarity index 97%
rename from dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/OaiListRecordsParameters.java
rename to dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/OaiListRecordsParameters.java
index a18f0b0aec..b7eb9ce37e 100644
--- a/dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/OaiListRecordsParameters.java
+++ b/dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/OaiListRecordsParameters.java
@@ -1,4 +1,4 @@
-package at.tuwien.oaipmh;
+package at.ac.tuwien.ifs.dbrepo.oaipmh;
 
 import lombok.*;
 import org.apache.commons.lang3.StringUtils;
diff --git a/dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/OaiRecordParameters.java b/dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/OaiRecordParameters.java
similarity index 93%
rename from dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/OaiRecordParameters.java
rename to dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/OaiRecordParameters.java
index da0433c0b6..3b24e111dd 100644
--- a/dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/OaiRecordParameters.java
+++ b/dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/OaiRecordParameters.java
@@ -1,4 +1,4 @@
-package at.tuwien.oaipmh;
+package at.ac.tuwien.ifs.dbrepo.oaipmh;
 
 import lombok.*;
 
diff --git a/dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/RequestParameters.java b/dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/RequestParameters.java
similarity index 90%
rename from dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/RequestParameters.java
rename to dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/RequestParameters.java
index 3f3d9f1a04..1af3449b1e 100644
--- a/dbrepo-metadata-service/oai/src/main/java/at/tuwien/oaipmh/RequestParameters.java
+++ b/dbrepo-metadata-service/oai/src/main/java/at/ac/tuwien/ifs/dbrepo/oaipmh/RequestParameters.java
@@ -1,4 +1,4 @@
-package at.tuwien.oaipmh;
+package at.ac.tuwien.ifs.dbrepo.oaipmh;
 
 import org.apache.commons.lang3.StringUtils;
 
diff --git a/dbrepo-metadata-service/pom.xml b/dbrepo-metadata-service/pom.xml
index 7e140e4bd4..3dacfc7e94 100644
--- a/dbrepo-metadata-service/pom.xml
+++ b/dbrepo-metadata-service/pom.xml
@@ -40,7 +40,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <mapstruct.version>1.5.5.Final</mapstruct.version>
+        <mapstruct.version>1.6.3</mapstruct.version>
         <rabbitmq.version>5.20.0</rabbitmq.version>
         <commons-io.version>2.17.0</commons-io.version>
         <commons-validator.version>1.8.0</commons-validator.version>
diff --git a/dbrepo-metadata-service/repositories/pom.xml b/dbrepo-metadata-service/repositories/pom.xml
index f7759c5757..3bc1da72f5 100644
--- a/dbrepo-metadata-service/repositories/pom.xml
+++ b/dbrepo-metadata-service/repositories/pom.xml
@@ -27,30 +27,4 @@
 
     </dependencies>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <source>${java.version}</source>
-                    <target>${java.version}</target>
-                    <annotationProcessorPaths>
-                        <path>
-                            <groupId>org.projectlombok</groupId>
-                            <artifactId>lombok</artifactId>
-                            <version>${lombok.version}</version>
-                        </path>
-                        <!-- keep this order https://stackoverflow.com/questions/47676369/mapstruct-and-lombok-not-working-together#answer-65021876 -->
-                        <path>
-                            <groupId>org.mapstruct</groupId>
-                            <artifactId>mapstruct-processor</artifactId>
-                            <version>${mapstruct.version}</version>
-                        </path>
-                    </annotationProcessorPaths>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
 </project>
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/MetadataMapper.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/mapper/MetadataMapper.java
similarity index 86%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/MetadataMapper.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/mapper/MetadataMapper.java
index 87dfb2765e..324868bed1 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/MetadataMapper.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/mapper/MetadataMapper.java
@@ -1,78 +1,78 @@
-package at.tuwien.mapper;
-
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.CreateContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.DataTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageDto;
-import at.ac.tuwien.ifs.dbrepo.api.crossref.CrossrefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.CreateTableColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.ConceptDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.ConceptSaveDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.UnitDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.UnitSaveDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.ConstraintsDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.CreateTableConstraintsDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.ForeignKeyBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.ForeignKeyDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.ForeignKeyReferenceDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.ReferenceTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.primary.PrimaryKeyDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.unique.UniqueDto;
-import at.ac.tuwien.ifs.dbrepo.api.datacite.doi.*;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.CreateDashboardDto;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.PermissionTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.*;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.ld.LdCreatorDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.ld.LdDatasetDto;
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.UserCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.OrcidDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.OrcidAffiliationGroupDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group.OrcidEmploymentSummaryDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group.summary.organization.disambiguated.OrcidDisambiguatedDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group.summary.organization.disambiguated.OrcidDisambiguatedSourceTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.ror.RorDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.EntityDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.OntologyBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.OntologyCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.OntologyDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.external.ExternalMetadataDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.external.ExternalResultType;
-import at.ac.tuwien.ifs.dbrepo.api.user.external.affiliation.ExternalAffiliationDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
-import at.ac.tuwien.ifs.dbrepo.entity.container.image.ContainerImage;
-import at.ac.tuwien.ifs.dbrepo.entity.container.image.DataType;
-import at.ac.tuwien.ifs.dbrepo.entity.database.*;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumn;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnConcept;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnUnit;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.Constraints;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.foreignKey.ForeignKey;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.foreignKey.ForeignKeyReference;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.foreignKey.ReferenceType;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.primaryKey.PrimaryKey;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.unique.Unique;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.*;
-import at.ac.tuwien.ifs.dbrepo.entity.maintenance.BannerMessage;
-import at.ac.tuwien.ifs.dbrepo.entity.maintenance.BannerMessageType;
-import at.ac.tuwien.ifs.dbrepo.entity.semantics.Ontology;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
+package at.ac.tuwien.ifs.dbrepo.mapper;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.CreateContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.DataTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.crossref.CrossrefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.CreateTableColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.ConceptDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.ConceptSaveDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.UnitDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.UnitSaveDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.ConstraintsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.CreateTableConstraintsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.ForeignKeyBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.ForeignKeyDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.ForeignKeyReferenceDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.ReferenceTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.primary.PrimaryKeyDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.unique.UniqueDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.CreateDashboardDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.PermissionTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.ld.LdCreatorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.ld.LdDatasetDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.UserCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.OrcidDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.OrcidAffiliationGroupDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group.OrcidEmploymentSummaryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group.summary.organization.disambiguated.OrcidDisambiguatedDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group.summary.organization.disambiguated.OrcidDisambiguatedSourceTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.ror.RorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.EntityDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.OntologyBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.OntologyCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.OntologyDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.external.ExternalMetadataDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.external.ExternalResultType;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.external.affiliation.ExternalAffiliationDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.Container;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.image.ContainerImage;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.image.DataType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.*;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumn;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnConcept;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnUnit;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.Constraints;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.foreignKey.ForeignKey;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.foreignKey.ForeignKeyReference;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.foreignKey.ReferenceType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.primaryKey.PrimaryKey;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.unique.Unique;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.*;
+import at.ac.tuwien.ifs.dbrepo.core.entity.maintenance.BannerMessage;
+import at.ac.tuwien.ifs.dbrepo.core.entity.maintenance.BannerMessageType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.semantics.Ontology;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
 import org.keycloak.representations.AccessTokenResponse;
 import org.keycloak.representations.idm.UserRepresentation;
 import org.mapstruct.*;
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/SparqlMapper.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/mapper/SparqlMapper.java
similarity index 97%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/SparqlMapper.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/mapper/SparqlMapper.java
index a38ce9ce2d..2ca00f05db 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/SparqlMapper.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/mapper/SparqlMapper.java
@@ -1,6 +1,6 @@
-package at.tuwien.mapper;
+package at.ac.tuwien.ifs.dbrepo.mapper;
 
-import at.ac.tuwien.ifs.dbrepo.entity.semantics.Ontology;
+import at.ac.tuwien.ifs.dbrepo.core.entity.semantics.Ontology;
 import org.mapstruct.Mapper;
 
 import java.util.List;
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/BannerMessageRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/BannerMessageRepository.java
similarity index 72%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/BannerMessageRepository.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/BannerMessageRepository.java
index 692d367a1b..655b530bb6 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/BannerMessageRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/BannerMessageRepository.java
@@ -1,6 +1,6 @@
-package at.tuwien.repository;
+package at.ac.tuwien.ifs.dbrepo.repository;
 
-import at.ac.tuwien.ifs.dbrepo.entity.maintenance.BannerMessage;
+import at.ac.tuwien.ifs.dbrepo.core.entity.maintenance.BannerMessage;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ConceptRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/ConceptRepository.java
similarity index 71%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ConceptRepository.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/ConceptRepository.java
index bbbe6bb743..546243b1ac 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ConceptRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/ConceptRepository.java
@@ -1,6 +1,6 @@
-package at.tuwien.repository;
+package at.ac.tuwien.ifs.dbrepo.repository;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnConcept;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnConcept;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ContainerRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/ContainerRepository.java
similarity index 81%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ContainerRepository.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/ContainerRepository.java
index 3c19437149..9d258ed781 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ContainerRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/ContainerRepository.java
@@ -1,6 +1,6 @@
-package at.tuwien.repository;
+package at.ac.tuwien.ifs.dbrepo.repository;
 
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.Container;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/DatabaseRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/DatabaseRepository.java
similarity index 87%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/DatabaseRepository.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/DatabaseRepository.java
index 38415a7464..2d61108679 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/DatabaseRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/DatabaseRepository.java
@@ -1,6 +1,6 @@
-package at.tuwien.repository;
+package at.ac.tuwien.ifs.dbrepo.repository;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/IdentifierRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/IdentifierRepository.java
similarity index 91%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/IdentifierRepository.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/IdentifierRepository.java
index 19143ee222..4011a8d168 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/IdentifierRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/IdentifierRepository.java
@@ -1,6 +1,6 @@
-package at.tuwien.repository;
+package at.ac.tuwien.ifs.dbrepo.repository;
 
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.Identifier;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Identifier;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ImageRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/ImageRepository.java
similarity index 77%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ImageRepository.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/ImageRepository.java
index 137eb8f398..55af367a63 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ImageRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/ImageRepository.java
@@ -1,6 +1,6 @@
-package at.tuwien.repository;
+package at.ac.tuwien.ifs.dbrepo.repository;
 
-import at.ac.tuwien.ifs.dbrepo.entity.container.image.ContainerImage;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.image.ContainerImage;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/LicenseRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/LicenseRepository.java
similarity index 73%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/LicenseRepository.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/LicenseRepository.java
index 8630253d73..e04b1ffb7e 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/LicenseRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/LicenseRepository.java
@@ -1,6 +1,6 @@
-package at.tuwien.repository;
+package at.ac.tuwien.ifs.dbrepo.repository;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.License;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.License;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/OntologyRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/OntologyRepository.java
similarity index 78%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/OntologyRepository.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/OntologyRepository.java
index 9849fd819d..35460fc050 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/OntologyRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/OntologyRepository.java
@@ -1,6 +1,6 @@
-package at.tuwien.repository;
+package at.ac.tuwien.ifs.dbrepo.repository;
 
-import at.ac.tuwien.ifs.dbrepo.entity.semantics.Ontology;
+import at.ac.tuwien.ifs.dbrepo.core.entity.semantics.Ontology;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/TableRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/TableRepository.java
similarity index 69%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/TableRepository.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/TableRepository.java
index 0ccacc8b94..e6d3670101 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/TableRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/TableRepository.java
@@ -1,6 +1,6 @@
-package at.tuwien.repository;
+package at.ac.tuwien.ifs.dbrepo.repository;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/UnitRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/UnitRepository.java
similarity index 71%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/UnitRepository.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/UnitRepository.java
index ebdea2bc03..ed4c6c778c 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/UnitRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/UnitRepository.java
@@ -1,6 +1,6 @@
-package at.tuwien.repository;
+package at.ac.tuwien.ifs.dbrepo.repository;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnUnit;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnUnit;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/UserRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/UserRepository.java
similarity index 80%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/UserRepository.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/UserRepository.java
index c679096285..f270810ac1 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/UserRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/UserRepository.java
@@ -1,6 +1,6 @@
-package at.tuwien.repository;
+package at.ac.tuwien.ifs.dbrepo.repository;
 
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ViewRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/ViewRepository.java
similarity index 71%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ViewRepository.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/ViewRepository.java
index 1efc118bf7..d35ed6e337 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ViewRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/ViewRepository.java
@@ -1,6 +1,6 @@
-package at.tuwien.repository;
+package at.ac.tuwien.ifs.dbrepo.repository;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.View;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.View;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/utils/EnumToStringConverter.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/utils/EnumToStringConverter.java
similarity index 92%
rename from dbrepo-metadata-service/repositories/src/main/java/at/tuwien/utils/EnumToStringConverter.java
rename to dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/utils/EnumToStringConverter.java
index 2e53ae6cdc..158d5be808 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/utils/EnumToStringConverter.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/utils/EnumToStringConverter.java
@@ -1,4 +1,4 @@
-package at.tuwien.utils;
+package at.ac.tuwien.ifs.dbrepo.utils;
 
 import org.mapstruct.TargetType;
 
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/DbrepoMetadataServiceApplication.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/DbrepoMetadataServiceApplication.java
similarity index 87%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/DbrepoMetadataServiceApplication.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/DbrepoMetadataServiceApplication.java
index 21a98f9781..266ebd57b4 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/DbrepoMetadataServiceApplication.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/DbrepoMetadataServiceApplication.java
@@ -1,4 +1,4 @@
-package at.tuwien;
+package at.ac.tuwien.ifs.dbrepo;
 
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -9,7 +9,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
 
 @EnableJpaAuditing
 @EnableTransactionManagement
-@EntityScan(basePackages = {"at.ac.tuwien.ifs.dbrepo.entity"})
+@EntityScan(basePackages = {"at.ac.tuwien.ifs.dbrepo.core.entity"})
 @EnableJpaRepositories(basePackages = {"at.tuwien.repository"})
 @SpringBootApplication
 public class DbrepoMetadataServiceApplication {
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/config/MvcConfig.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/config/MvcConfig.java
similarity index 71%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/config/MvcConfig.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/config/MvcConfig.java
index 6bdb809731..70ed7ea611 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/config/MvcConfig.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/config/MvcConfig.java
@@ -1,7 +1,7 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
-import at.tuwien.converters.IdentifierStatusTypeDtoConverter;
-import at.tuwien.converters.IdentifierTypeDtoConverter;
+import at.ac.tuwien.ifs.dbrepo.converters.IdentifierStatusTypeDtoConverter;
+import at.ac.tuwien.ifs.dbrepo.converters.IdentifierTypeDtoConverter;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.format.FormatterRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/config/SwaggerConfig.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/config/SwaggerConfig.java
similarity index 98%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/config/SwaggerConfig.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/config/SwaggerConfig.java
index 7830213b8e..21881faa1f 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/config/SwaggerConfig.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/config/SwaggerConfig.java
@@ -1,4 +1,4 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import io.swagger.v3.oas.models.ExternalDocumentation;
 import io.swagger.v3.oas.models.OpenAPI;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/converters/IdentifierStatusTypeDtoConverter.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/converters/IdentifierStatusTypeDtoConverter.java
similarity index 75%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/converters/IdentifierStatusTypeDtoConverter.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/converters/IdentifierStatusTypeDtoConverter.java
index 26e36a9b7e..cb59169cfd 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/converters/IdentifierStatusTypeDtoConverter.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/converters/IdentifierStatusTypeDtoConverter.java
@@ -1,6 +1,6 @@
-package at.tuwien.converters;
+package at.ac.tuwien.ifs.dbrepo.converters;
 
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierStatusTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierStatusTypeDto;
 import org.springframework.core.convert.converter.Converter;
 import org.springframework.stereotype.Component;
 
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/converters/IdentifierTypeDtoConverter.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/converters/IdentifierTypeDtoConverter.java
similarity index 75%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/converters/IdentifierTypeDtoConverter.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/converters/IdentifierTypeDtoConverter.java
index dd8ff85cc7..6c0fc163bd 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/converters/IdentifierTypeDtoConverter.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/converters/IdentifierTypeDtoConverter.java
@@ -1,6 +1,6 @@
-package at.tuwien.converters;
+package at.ac.tuwien.ifs.dbrepo.converters;
 
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierTypeDto;
 import org.springframework.core.convert.converter.Converter;
 import org.springframework.stereotype.Component;
 
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/AbstractEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/AbstractEndpoint.java
similarity index 92%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/AbstractEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/AbstractEndpoint.java
index ddbc125a32..b6f5f65cf9 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/AbstractEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/AbstractEndpoint.java
@@ -1,11 +1,11 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDetailsDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
-import at.ac.tuwien.ifs.dbrepo.entity.database.View;
-import at.ac.tuwien.ifs.dbrepo.exception.NotAllowedException;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDetailsDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.View;
+import at.ac.tuwien.ifs.dbrepo.core.exception.NotAllowedException;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.security.core.Authentication;
 
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/AccessEndpoint.java
similarity index 95%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/AccessEndpoint.java
index e1f5b8cc10..b8deb55db0 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/AccessEndpoint.java
@@ -1,17 +1,17 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.CreateAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.AccessService;
-import at.tuwien.service.DashboardService;
-import at.tuwien.service.DatabaseService;
-import at.tuwien.service.UserService;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.CreateAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.AccessService;
+import at.ac.tuwien.ifs.dbrepo.service.DashboardService;
+import at.ac.tuwien.ifs.dbrepo.service.DatabaseService;
+import at.ac.tuwien.ifs.dbrepo.service.UserService;
 import io.micrometer.observation.annotation.Observed;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.Content;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ConceptEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/ConceptEndpoint.java
similarity index 90%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ConceptEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/ConceptEndpoint.java
index e9a26fca60..a25f267df8 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ConceptEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/ConceptEndpoint.java
@@ -1,8 +1,8 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.ConceptDto;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.ConceptService;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.ConceptDto;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.ConceptService;
 import io.micrometer.observation.annotation.Observed;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.ArraySchema;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ContainerEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/ContainerEndpoint.java
similarity index 92%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ContainerEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/ContainerEndpoint.java
index 3a5dd5281d..ab5301c87e 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ContainerEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/ContainerEndpoint.java
@@ -1,15 +1,15 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.CreateContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
-import at.ac.tuwien.ifs.dbrepo.exception.ContainerAlreadyExistsException;
-import at.ac.tuwien.ifs.dbrepo.exception.ContainerNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageNotFoundException;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.ContainerService;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.CreateContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.Container;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ContainerAlreadyExistsException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ContainerNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.ContainerService;
 import io.micrometer.observation.annotation.Observed;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.ArraySchema;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/DatabaseEndpoint.java
similarity index 98%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/DatabaseEndpoint.java
index 4c14860c3b..242422496a 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/DatabaseEndpoint.java
@@ -1,15 +1,14 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseModifyDashboardDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.*;
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.CreateDashboardResponseDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.CreateDashboardResponseDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.Container;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.*;
 import io.micrometer.observation.annotation.Observed;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.headers.Header;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/IdentifierEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/IdentifierEndpoint.java
similarity index 97%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/IdentifierEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/IdentifierEndpoint.java
index 14629943d4..d6a4c7a7d5 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/IdentifierEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/IdentifierEndpoint.java
@@ -1,19 +1,19 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.*;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.ld.LdDatasetDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.external.ExternalMetadataDto;
-import at.tuwien.config.EndpointConfig;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.Identifier;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.IdentifierStatusType;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.*;
-import at.tuwien.validation.EndpointValidator;
+import at.ac.tuwien.ifs.dbrepo.config.EndpointConfig;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.ld.LdDatasetDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.external.ExternalMetadataDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Identifier;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.IdentifierStatusType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.*;
+import at.ac.tuwien.ifs.dbrepo.validation.EndpointValidator;
 import io.micrometer.observation.annotation.Observed;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.ArraySchema;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ImageEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/ImageEndpoint.java
similarity index 91%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ImageEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/ImageEndpoint.java
index f72404e730..8d51d99bd1 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ImageEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/ImageEndpoint.java
@@ -1,16 +1,16 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageChangeDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageDto;
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.image.ContainerImage;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageAlreadyExistsException;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageInvalidException;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageNotFoundException;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.ImageService;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageChangeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.image.ContainerImage;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageAlreadyExistsException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageInvalidException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.ImageService;
 import io.micrometer.observation.annotation.Observed;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.ArraySchema;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/LicenseEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/LicenseEndpoint.java
similarity index 91%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/LicenseEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/LicenseEndpoint.java
index 9e59eda922..125a030aca 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/LicenseEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/LicenseEndpoint.java
@@ -1,8 +1,8 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.LicenseDto;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.LicenseService;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.LicenseDto;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.LicenseService;
 import io.micrometer.observation.annotation.Observed;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.ArraySchema;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/MessageEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/MessageEndpoint.java
similarity index 92%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/MessageEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/MessageEndpoint.java
index e3fca284a1..6fed77bd5c 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/MessageEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/MessageEndpoint.java
@@ -1,14 +1,14 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.maintenance.BannerMessage;
-import at.ac.tuwien.ifs.dbrepo.exception.MessageNotFoundException;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.BannerMessageService;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.maintenance.BannerMessage;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MessageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.BannerMessageService;
 import io.micrometer.observation.annotation.Observed;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.ArraySchema;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/MetadataEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/MetadataEndpoint.java
similarity index 94%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/MetadataEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/MetadataEndpoint.java
index acdb205598..4916ed8612 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/MetadataEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/MetadataEndpoint.java
@@ -1,10 +1,10 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.exception.IdentifierNotFoundException;
-import at.tuwien.oaipmh.OaiErrorType;
-import at.tuwien.oaipmh.OaiListIdentifiersParameters;
-import at.tuwien.oaipmh.OaiRecordParameters;
-import at.tuwien.service.MetadataService;
+import at.ac.tuwien.ifs.dbrepo.core.exception.IdentifierNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiErrorType;
+import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiListIdentifiersParameters;
+import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiRecordParameters;
+import at.ac.tuwien.ifs.dbrepo.service.MetadataService;
 import io.micrometer.observation.annotation.Observed;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/OntologyEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/OntologyEndpoint.java
similarity index 94%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/OntologyEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/OntologyEndpoint.java
index a1f6c3c169..8e2b5381df 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/OntologyEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/OntologyEndpoint.java
@@ -1,15 +1,15 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.*;
-import at.ac.tuwien.ifs.dbrepo.entity.semantics.Ontology;
-import at.ac.tuwien.ifs.dbrepo.exception.FilterBadRequestException;
-import at.ac.tuwien.ifs.dbrepo.exception.MalformedException;
-import at.ac.tuwien.ifs.dbrepo.exception.OntologyNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.UriMalformedException;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.EntityService;
-import at.tuwien.service.OntologyService;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.*;
+import at.ac.tuwien.ifs.dbrepo.core.entity.semantics.Ontology;
+import at.ac.tuwien.ifs.dbrepo.core.exception.FilterBadRequestException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.OntologyNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UriMalformedException;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.EntityService;
+import at.ac.tuwien.ifs.dbrepo.service.OntologyService;
 import io.micrometer.observation.annotation.Observed;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.ArraySchema;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/TableEndpoint.java
similarity index 96%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/TableEndpoint.java
index 7c9147fcb8..880bf62fb7 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/TableEndpoint.java
@@ -1,21 +1,21 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.CreateTableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.ColumnSemanticsUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.EntityDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.TableColumnEntityDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.*;
-import at.tuwien.validation.EndpointValidator;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.CreateTableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.ColumnSemanticsUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.EntityDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.TableColumnEntityDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.*;
+import at.ac.tuwien.ifs.dbrepo.validation.EndpointValidator;
 import io.micrometer.observation.annotation.Observed;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.ArraySchema;
@@ -49,7 +49,6 @@ public class TableEndpoint extends AbstractEndpoint {
     private final UserService userService;
     private final TableService tableService;
     private final EntityService entityService;
-    private final AccessService accessService;
     private final MetadataMapper metadataMapper;
     private final DatabaseService databaseService;
     private final DashboardService dashboardService;
@@ -57,12 +56,11 @@ public class TableEndpoint extends AbstractEndpoint {
 
     @Autowired
     public TableEndpoint(UserService userService, TableService tableService, EntityService entityService,
-                         AccessService accessService, MetadataMapper metadataMapper, DatabaseService databaseService,
+                         MetadataMapper metadataMapper, DatabaseService databaseService,
                          DashboardService dashboardService, EndpointValidator endpointValidator) {
         this.userService = userService;
         this.tableService = tableService;
         this.entityService = entityService;
-        this.accessService = accessService;
         this.metadataMapper = metadataMapper;
         this.databaseService = databaseService;
         this.dashboardService = dashboardService;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/UnitEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/UnitEndpoint.java
similarity index 90%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/UnitEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/UnitEndpoint.java
index 6793e9c970..90b9cacf47 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/UnitEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/UnitEndpoint.java
@@ -1,8 +1,8 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.UnitDto;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.UnitService;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.UnitDto;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.UnitService;
 import io.micrometer.observation.annotation.Observed;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.ArraySchema;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/UserEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/UserEndpoint.java
similarity index 93%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/UserEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/UserEndpoint.java
index 8d322830d1..4bf7f2d976 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/UserEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/UserEndpoint.java
@@ -1,16 +1,16 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.auth.CreateUserDto;
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.NotAllowedException;
-import at.ac.tuwien.ifs.dbrepo.exception.UserNotFoundException;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.UserService;
+import at.ac.tuwien.ifs.dbrepo.core.api.auth.CreateUserDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.NotAllowedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UserNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.UserService;
 import io.micrometer.observation.annotation.Observed;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.ArraySchema;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ViewEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/ViewEndpoint.java
similarity index 95%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ViewEndpoint.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/ViewEndpoint.java
index 1b4d91b892..bc5033821e 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ViewEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/endpoints/ViewEndpoint.java
@@ -1,19 +1,19 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.CreateViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
-import at.ac.tuwien.ifs.dbrepo.entity.database.View;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.DashboardService;
-import at.tuwien.service.DatabaseService;
-import at.tuwien.service.UserService;
-import at.tuwien.service.ViewService;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.CreateViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.View;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.DashboardService;
+import at.ac.tuwien.ifs.dbrepo.service.DatabaseService;
+import at.ac.tuwien.ifs.dbrepo.service.UserService;
+import at.ac.tuwien.ifs.dbrepo.service.ViewService;
 import io.micrometer.observation.annotation.Observed;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.ArraySchema;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/handlers/ApiExceptionHandler.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/handlers/ApiExceptionHandler.java
similarity index 99%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/handlers/ApiExceptionHandler.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/handlers/ApiExceptionHandler.java
index 82711a4b48..0d4a617001 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/handlers/ApiExceptionHandler.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/handlers/ApiExceptionHandler.java
@@ -1,7 +1,7 @@
-package at.tuwien.handlers;
+package at.ac.tuwien.ifs.dbrepo.handlers;
 
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import com.auth0.jwt.exceptions.TokenExpiredException;
 import io.swagger.v3.oas.annotations.Hidden;
 import jakarta.ws.rs.NotAuthorizedException;
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/validation/EndpointValidator.java b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/validation/EndpointValidator.java
similarity index 94%
rename from dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/validation/EndpointValidator.java
rename to dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/validation/EndpointValidator.java
index 5a9e59138c..8068a8d734 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/validation/EndpointValidator.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/ac/tuwien/ifs/dbrepo/validation/EndpointValidator.java
@@ -1,19 +1,19 @@
-package at.tuwien.validation;
+package at.ac.tuwien.ifs.dbrepo.validation;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.CreateTableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.SortType;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.CreateTableColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierSaveDto;
-import at.tuwien.endpoints.AbstractEndpoint;
-import at.ac.tuwien.ifs.dbrepo.entity.database.AccessType;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.service.AccessService;
-import at.tuwien.service.UserService;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.CreateTableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.SortType;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.CreateTableColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierSaveDto;
+import at.ac.tuwien.ifs.dbrepo.endpoints.AbstractEndpoint;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.AccessType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.service.AccessService;
+import at.ac.tuwien.ifs.dbrepo.service.UserService;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.validator.GenericValidator;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/ApplicationIntegrationTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/ApplicationIntegrationTest.java
similarity index 95%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/ApplicationIntegrationTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/ApplicationIntegrationTest.java
index 33c7bc76c5..49b18a76c5 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/ApplicationIntegrationTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/ApplicationIntegrationTest.java
@@ -1,4 +1,4 @@
-package at.tuwien;
+package at.ac.tuwien.ifs.dbrepo;
 
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/config/ObjectMapperConfig.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/ObjectMapperConfig.java
similarity index 95%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/config/ObjectMapperConfig.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/ObjectMapperConfig.java
index 6cbf682c8d..508540f52a 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/config/ObjectMapperConfig.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/ObjectMapperConfig.java
@@ -1,4 +1,4 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.SerializationFeature;
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/config/RabbitConfig.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/RabbitConfig.java
similarity index 91%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/config/RabbitConfig.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/RabbitConfig.java
index 059d4beeb6..3dddb8cf33 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/config/RabbitConfig.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/RabbitConfig.java
@@ -1,6 +1,6 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
-import at.ac.tuwien.ifs.dbrepo.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.Getter;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Value;
@@ -11,6 +11,8 @@ import org.springframework.http.client.support.BasicAuthenticationInterceptor;
 import org.springframework.web.client.RestTemplate;
 import org.springframework.web.util.DefaultUriBuilderFactory;
 
+import java.io.IOException;
+
 @Getter
 @Log4j2
 @Configuration
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/converters/IdentifierStatusTypeDtoConverterUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/converters/IdentifierStatusTypeDtoConverterUnitTest.java
similarity index 73%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/converters/IdentifierStatusTypeDtoConverterUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/converters/IdentifierStatusTypeDtoConverterUnitTest.java
index 20ca4650a5..20f1f615eb 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/converters/IdentifierStatusTypeDtoConverterUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/converters/IdentifierStatusTypeDtoConverterUnitTest.java
@@ -1,28 +1,24 @@
-package at.tuwien.converters;
+package at.ac.tuwien.ifs.dbrepo.converters;
 
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierStatusTypeDto;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierStatusTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 
+import java.io.IOException;
+
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 
 @Log4j2
 @SpringBootTest
-public class IdentifierStatusTypeDtoConverterUnitTest extends AbstractUnitTest {
+public class IdentifierStatusTypeDtoConverterUnitTest extends BaseTest {
 
     @Autowired
     private IdentifierStatusTypeDtoConverter identifierStatusTypeDtoConverter;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void identifierStatusTypeDtoConverter_succeeds() {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/converters/IdentifierTypeDtoConverterUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/converters/IdentifierTypeDtoConverterUnitTest.java
similarity index 73%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/converters/IdentifierTypeDtoConverterUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/converters/IdentifierTypeDtoConverterUnitTest.java
index 72d14ea47b..1d73cc3445 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/converters/IdentifierTypeDtoConverterUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/converters/IdentifierTypeDtoConverterUnitTest.java
@@ -1,28 +1,24 @@
-package at.tuwien.converters;
+package at.ac.tuwien.ifs.dbrepo.converters;
 
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierTypeDto;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 
+import java.io.IOException;
+
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 
 @Log4j2
 @SpringBootTest
-public class IdentifierTypeDtoConverterUnitTest extends AbstractUnitTest {
+public class IdentifierTypeDtoConverterUnitTest extends BaseTest {
 
     @Autowired
     private IdentifierTypeDtoConverter identifierTypeDtoConverter;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void IdentifierTypeDtoConverter_succeeds() {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/AbstractEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/AbstractEndpointUnitTest.java
similarity index 80%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/AbstractEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/AbstractEndpointUnitTest.java
index 467e58d375..db1c899c4d 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/AbstractEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/AbstractEndpointUnitTest.java
@@ -1,9 +1,8 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDetailsDto;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDetailsDto;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -18,16 +17,11 @@ import static org.junit.jupiter.api.Assertions.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class AbstractEndpointUnitTest extends AbstractUnitTest {
+public class AbstractEndpointUnitTest extends BaseTest {
 
     @Autowired
     private AccessEndpoint accessEndpoint;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void hasRole_noPrincipal_fails() {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/AccessEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/AccessEndpointUnitTest.java
similarity index 93%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/AccessEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/AccessEndpointUnitTest.java
index 4097363081..357aa6daa5 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/AccessEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/AccessEndpointUnitTest.java
@@ -1,19 +1,18 @@
-package at.tuwien.endpoints;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseAccessDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.AccessService;
-import at.tuwien.service.DashboardService;
-import at.tuwien.service.DatabaseService;
-import at.tuwien.service.UserService;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.AccessService;
+import at.ac.tuwien.ifs.dbrepo.service.DashboardService;
+import at.ac.tuwien.ifs.dbrepo.service.DatabaseService;
+import at.ac.tuwien.ifs.dbrepo.service.UserService;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,6 +26,7 @@ import org.springframework.security.test.context.support.WithAnonymousUser;
 import org.springframework.security.test.context.support.WithMockUser;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 
+import java.io.IOException;
 import java.security.Principal;
 import java.util.List;
 import java.util.UUID;
@@ -38,7 +38,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class AccessEndpointUnitTest extends AbstractUnitTest {
+public class AccessEndpointUnitTest extends BaseTest {
 
     @MockBean
     private AccessService accessService;
@@ -58,11 +58,6 @@ public class AccessEndpointUnitTest extends AbstractUnitTest {
     @Autowired
     private MetadataMapper metadataMapper;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithAnonymousUser
     public void create_anonymous_fails() {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ActuatorComponentTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ActuatorComponentTest.java
similarity index 84%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ActuatorComponentTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ActuatorComponentTest.java
index b1d0cfdfd1..f86a8c4e8b 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ActuatorComponentTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ActuatorComponentTest.java
@@ -1,8 +1,7 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -11,6 +10,8 @@ import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 import org.springframework.test.web.servlet.MockMvc;
 
+import java.io.IOException;
+
 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
 import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
 import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
@@ -20,16 +21,11 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
 @ExtendWith(SpringExtension.class)
 @AutoConfigureMockMvc
 @SpringBootTest
-public class ActuatorComponentTest extends AbstractUnitTest {
+public class ActuatorComponentTest extends BaseTest {
 
     @Autowired
     private MockMvc mockMvc;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void actuatorInfo_succeeds() throws Exception {
         this.mockMvc.perform(get("/actuator/info"))
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ConceptEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ConceptEndpointUnitTest.java
similarity index 79%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ConceptEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ConceptEndpointUnitTest.java
index 2bc5f0f91b..dc3fa63cd6 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ConceptEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ConceptEndpointUnitTest.java
@@ -1,10 +1,9 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.ConceptDto;
-import at.tuwien.service.ConceptService;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.ConceptDto;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.service.ConceptService;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -16,15 +15,17 @@ import org.springframework.security.test.context.support.WithAnonymousUser;
 import org.springframework.security.test.context.support.WithMockUser;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 
+import java.io.IOException;
 import java.util.List;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.mockito.Mockito.when;
 
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class ConceptEndpointUnitTest extends AbstractUnitTest {
+public class ConceptEndpointUnitTest extends BaseTest {
 
     @MockBean
     private ConceptService conceptService;
@@ -32,11 +33,6 @@ public class ConceptEndpointUnitTest extends AbstractUnitTest {
     @Autowired
     private ConceptEndpoint conceptEndpoint;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithAnonymousUser
     public void findAllConcepts_anonymous_succeeds() {
@@ -70,5 +66,5 @@ public class ConceptEndpointUnitTest extends AbstractUnitTest {
         assertNotNull(body);
         assertEquals(2, body.size());
     }
-   
+
 }
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ContainerEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ContainerEndpointUnitTest.java
similarity index 88%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ContainerEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ContainerEndpointUnitTest.java
index 07cbc1c99e..93849d1aea 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ContainerEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ContainerEndpointUnitTest.java
@@ -1,16 +1,15 @@
-package at.tuwien.endpoints;
-
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.CreateContainerDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
-import at.ac.tuwien.ifs.dbrepo.exception.ContainerAlreadyExistsException;
-import at.ac.tuwien.ifs.dbrepo.exception.ContainerNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageNotFoundException;
-import at.tuwien.service.impl.ContainerServiceImpl;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.CreateContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.Container;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ContainerAlreadyExistsException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ContainerNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.service.impl.ContainerServiceImpl;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,6 +22,7 @@ import org.springframework.security.test.context.support.WithAnonymousUser;
 import org.springframework.security.test.context.support.WithMockUser;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 
+import java.io.IOException;
 import java.security.Principal;
 import java.util.List;
 import java.util.UUID;
@@ -34,7 +34,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @ExtendWith(SpringExtension.class)
 @SpringBootTest
-public class ContainerEndpointUnitTest extends AbstractUnitTest {
+public class ContainerEndpointUnitTest extends BaseTest {
 
     @MockBean
     private ContainerServiceImpl containerService;
@@ -42,11 +42,6 @@ public class ContainerEndpointUnitTest extends AbstractUnitTest {
     @Autowired
     private ContainerEndpoint containerEndpoint;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithAnonymousUser
     public void findById_anonymous_succeeds() throws ContainerNotFoundException {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/DatabaseEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/DatabaseEndpointUnitTest.java
similarity index 95%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/DatabaseEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/DatabaseEndpointUnitTest.java
index a3a6f983c7..bf6bd79352 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/DatabaseEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/DatabaseEndpointUnitTest.java
@@ -1,14 +1,13 @@
-package at.tuwien.endpoints;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.*;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.service.*;
-import at.tuwien.service.impl.DatabaseServiceImpl;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.*;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.service.*;
+import at.ac.tuwien.ifs.dbrepo.service.impl.DatabaseServiceImpl;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,7 +33,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class DatabaseEndpointUnitTest extends AbstractUnitTest {
+public class DatabaseEndpointUnitTest extends BaseTest {
 
     @MockBean
     private BrokerService messageQueueService;
@@ -60,11 +59,6 @@ public class DatabaseEndpointUnitTest extends AbstractUnitTest {
     @Autowired
     private DatabaseEndpoint databaseEndpoint;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithAnonymousUser
     public void create_anonymous_fails() {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/IdentifierEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/IdentifierEndpointUnitTest.java
similarity index 98%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/IdentifierEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/IdentifierEndpointUnitTest.java
index 6af9ca1ffe..00cd00277a 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/IdentifierEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/IdentifierEndpointUnitTest.java
@@ -1,22 +1,20 @@
-package at.tuwien.endpoints;
-
-import at.ac.tuwien.ifs.dbrepo.api.identifier.*;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.ld.LdDatasetDto;
-import at.tuwien.config.EndpointConfig;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.Identifier;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.IdentifierType;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.DataServiceGateway;
-import at.tuwien.service.*;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.ld.LdDatasetDto;
+import at.ac.tuwien.ifs.dbrepo.config.EndpointConfig;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Identifier;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.IdentifierType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.DataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.service.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.junit.jupiter.params.ParameterizedTest;
@@ -37,7 +35,6 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
 
 import java.io.File;
 import java.io.IOException;
-import java.io.InputStream;
 import java.nio.charset.StandardCharsets;
 import java.security.Principal;
 import java.util.List;
@@ -50,7 +47,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @ExtendWith(SpringExtension.class)
 @SpringBootTest
-public class IdentifierEndpointUnitTest extends AbstractUnitTest {
+public class IdentifierEndpointUnitTest extends BaseTest {
 
     @MockBean
     private IdentifierService identifierService;
@@ -186,11 +183,6 @@ public class IdentifierEndpointUnitTest extends AbstractUnitTest {
         );
     }
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithAnonymousUser
     public void findAll_empty_succeeds() {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ImageEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ImageEndpointUnitTest.java
similarity index 88%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ImageEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ImageEndpointUnitTest.java
index a2f32fcf76..3a8edc222b 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ImageEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ImageEndpointUnitTest.java
@@ -1,17 +1,16 @@
-package at.tuwien.endpoints;
-
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageChangeDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.image.ContainerImage;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageAlreadyExistsException;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageInvalidException;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageNotFoundException;
-import at.tuwien.service.impl.ImageServiceImpl;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageChangeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.image.ContainerImage;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageAlreadyExistsException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageInvalidException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.service.impl.ImageServiceImpl;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,6 +22,7 @@ import org.springframework.security.test.context.support.WithAnonymousUser;
 import org.springframework.security.test.context.support.WithMockUser;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 
+import java.io.IOException;
 import java.security.Principal;
 import java.util.List;
 import java.util.UUID;
@@ -33,7 +33,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @ExtendWith(SpringExtension.class)
 @SpringBootTest
-public class ImageEndpointUnitTest extends AbstractUnitTest {
+public class ImageEndpointUnitTest extends BaseTest {
 
     @MockBean
     private ImageServiceImpl imageService;
@@ -41,11 +41,6 @@ public class ImageEndpointUnitTest extends AbstractUnitTest {
     @Autowired
     private ImageEndpoint imageEndpoint;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithAnonymousUser
     public void findAll_anonymous_succeeds() {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/LicenseEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/LicenseEndpointUnitTest.java
similarity index 81%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/LicenseEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/LicenseEndpointUnitTest.java
index 066b215cd5..765d16dc83 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/LicenseEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/LicenseEndpointUnitTest.java
@@ -1,10 +1,9 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.api.database.LicenseDto;
-import at.tuwien.repository.LicenseRepository;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.LicenseDto;
+import at.ac.tuwien.ifs.dbrepo.repository.LicenseRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,7 +22,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class LicenseEndpointUnitTest extends AbstractUnitTest {
+public class LicenseEndpointUnitTest extends BaseTest {
 
     @MockBean
     private LicenseRepository licenseRepository;
@@ -31,11 +30,6 @@ public class LicenseEndpointUnitTest extends AbstractUnitTest {
     @Autowired
     private LicenseEndpoint licenseEndpoint;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void list_succeeds() {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MessageEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/MessageEndpointUnitTest.java
similarity index 90%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MessageEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/MessageEndpointUnitTest.java
index 023beb37d2..e3ce1f25f9 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MessageEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/MessageEndpointUnitTest.java
@@ -1,14 +1,13 @@
-package at.tuwien.endpoints;
-
-import at.ac.tuwien.ifs.dbrepo.exception.MessageNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.maintenance.BannerMessage;
-import at.tuwien.service.BannerMessageService;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.maintenance.BannerMessage;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MessageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.service.BannerMessageService;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -29,7 +28,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class MessageEndpointUnitTest extends AbstractUnitTest {
+public class MessageEndpointUnitTest extends BaseTest {
 
     @MockBean
     private BannerMessageService bannerMessageService;
@@ -37,11 +36,6 @@ public class MessageEndpointUnitTest extends AbstractUnitTest {
     @Autowired
     private MessageEndpoint messageEndpoint;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithAnonymousUser
     public void list_anonymous_succeeds() {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MetadataEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/MetadataEndpointUnitTest.java
similarity index 92%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MetadataEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/MetadataEndpointUnitTest.java
index 5395917273..012ca1f1c0 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MetadataEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/MetadataEndpointUnitTest.java
@@ -1,12 +1,11 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.tuwien.oaipmh.OaiListIdentifiersParameters;
-import at.tuwien.oaipmh.OaiRecordParameters;
-import at.tuwien.repository.IdentifierRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.tuwien.utils.XmlUtils;
+import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiListIdentifiersParameters;
+import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiRecordParameters;
+import at.ac.tuwien.ifs.dbrepo.repository.IdentifierRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.utils.XmlUtils;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,7 +26,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class MetadataEndpointUnitTest extends AbstractUnitTest {
+public class MetadataEndpointUnitTest extends BaseTest {
 
     @MockBean
     private IdentifierRepository identifierRepository;
@@ -35,11 +34,6 @@ public class MetadataEndpointUnitTest extends AbstractUnitTest {
     @Autowired
     private MetadataEndpoint metadataEndpoint;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithAnonymousUser
     public void identify_succeeds() {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/OntologyEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/OntologyEndpointUnitTest.java
similarity index 93%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/OntologyEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/OntologyEndpointUnitTest.java
index 1860fe90dc..5cce9f9550 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/OntologyEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/OntologyEndpointUnitTest.java
@@ -1,18 +1,17 @@
-package at.tuwien.endpoints;
-
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.*;
-import at.ac.tuwien.ifs.dbrepo.entity.semantics.Ontology;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.service.EntityService;
-import at.tuwien.service.OntologyService;
-import at.tuwien.service.UserService;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.*;
+import at.ac.tuwien.ifs.dbrepo.core.entity.semantics.Ontology;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.service.EntityService;
+import at.ac.tuwien.ifs.dbrepo.service.OntologyService;
+import at.ac.tuwien.ifs.dbrepo.service.UserService;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.apache.jena.sys.JenaSystem;
 import org.hibernate.HibernateException;
 import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,7 +33,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class OntologyEndpointUnitTest extends AbstractUnitTest {
+public class OntologyEndpointUnitTest extends BaseTest {
 
     @MockBean
     private OntologyService ontologyService;
@@ -53,11 +52,6 @@ public class OntologyEndpointUnitTest extends AbstractUnitTest {
         JenaSystem.init();
     }
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithAnonymousUser
     public void findAll_anonymous_succeeds() {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/TableEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/TableEndpointUnitTest.java
similarity index 95%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/TableEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/TableEndpointUnitTest.java
index f60428786c..97dd2f16e9 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/TableEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/TableEndpointUnitTest.java
@@ -1,29 +1,28 @@
-package at.tuwien.endpoints;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.table.CreateTableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.CreateTableColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.ColumnSemanticsUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.CreateTableConstraintsDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.EntityDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.TableColumnEntityDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumn;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.service.*;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.tuwien.validation.EndpointValidator;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.CreateTableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.CreateTableColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.ColumnSemanticsUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.CreateTableConstraintsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.EntityDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.TableColumnEntityDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumn;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.service.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.validation.EndpointValidator;
 import lombok.extern.log4j.Log4j2;
 import org.apache.jena.sys.JenaSystem;
 import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.junit.jupiter.params.ParameterizedTest;
@@ -49,7 +48,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class TableEndpointUnitTest extends AbstractUnitTest {
+public class TableEndpointUnitTest extends BaseTest {
 
     @MockBean
     private DatabaseService databaseService;
@@ -57,21 +56,12 @@ public class TableEndpointUnitTest extends AbstractUnitTest {
     @MockBean
     private AccessService accessService;
 
-    @MockBean
-    private UnitService unitService;
-
-    @MockBean
-    private ConceptService conceptService;
-
     @MockBean
     private TableService tableService;
 
     @MockBean
     private UserService userService;
 
-    @MockBean
-    private DashboardService dashboardService;
-
     @MockBean
     private EntityService entityService;
 
@@ -104,11 +94,6 @@ public class TableEndpointUnitTest extends AbstractUnitTest {
         JenaSystem.init();
     }
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithAnonymousUser
     public void list_publicDataPrivateSchemaAnonymous_fails() {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/UnitEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/UnitEndpointUnitTest.java
similarity index 79%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/UnitEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/UnitEndpointUnitTest.java
index b9d2e39a61..de54e96b7d 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/UnitEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/UnitEndpointUnitTest.java
@@ -1,10 +1,9 @@
-package at.tuwien.endpoints;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
 
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.UnitDto;
-import at.tuwien.service.UnitService;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.UnitDto;
+import at.ac.tuwien.ifs.dbrepo.service.UnitService;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -18,13 +17,14 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
 
 import java.util.List;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.mockito.Mockito.when;
 
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class UnitEndpointUnitTest extends AbstractUnitTest {
+public class UnitEndpointUnitTest extends BaseTest {
 
     @MockBean
     private UnitService unitService;
@@ -32,11 +32,6 @@ public class UnitEndpointUnitTest extends AbstractUnitTest {
     @Autowired
     private UnitEndpoint unitEndpoint;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithAnonymousUser
     public void findAllUnits_anonymous_succeeds() {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/UserEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/UserEndpointUnitTest.java
similarity index 91%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/UserEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/UserEndpointUnitTest.java
index 39cad67016..05ab6e5d3a 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/UserEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/UserEndpointUnitTest.java
@@ -1,17 +1,16 @@
-package at.tuwien.endpoints;
-
-import at.ac.tuwien.ifs.dbrepo.api.auth.CreateUserDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.NotAllowedException;
-import at.ac.tuwien.ifs.dbrepo.exception.UserNotFoundException;
-import at.tuwien.service.UserService;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.auth.CreateUserDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.NotAllowedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UserNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.service.UserService;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -37,7 +36,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class UserEndpointUnitTest extends AbstractUnitTest {
+public class UserEndpointUnitTest extends BaseTest {
 
     @MockBean
     private UserService userService;
@@ -45,11 +44,6 @@ public class UserEndpointUnitTest extends AbstractUnitTest {
     @Autowired
     private UserEndpoint userEndpoint;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithAnonymousUser
     public void findAll_anonymous_succeeds() throws UserNotFoundException {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ViewEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ViewEndpointUnitTest.java
similarity index 94%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ViewEndpointUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ViewEndpointUnitTest.java
index 374b642b80..2673ea3068 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ViewEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/ViewEndpointUnitTest.java
@@ -1,18 +1,17 @@
-package at.tuwien.endpoints;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.CreateViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
-import at.ac.tuwien.ifs.dbrepo.entity.database.View;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.service.*;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.endpoints;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.CreateViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.View;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.service.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -35,7 +34,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class ViewEndpointUnitTest extends AbstractUnitTest {
+public class ViewEndpointUnitTest extends BaseTest {
 
     @MockBean
     private DatabaseService databaseService;
@@ -55,11 +54,6 @@ public class ViewEndpointUnitTest extends AbstractUnitTest {
     @Autowired
     private ViewEndpoint viewEndpoint;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @WithAnonymousUser
     public void findAll_publicAnonymous_succeeds() throws UserNotFoundException, AccessNotFoundException,
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/entities/EntitiesUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/entity/EntitiesUnitTest.java
similarity index 63%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/entities/EntitiesUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/entity/EntitiesUnitTest.java
index 0f3ddc336c..32f5b79f66 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/entities/EntitiesUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/entity/EntitiesUnitTest.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.entity;
+package at.ac.tuwien.ifs.dbrepo.core.entity;
 
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
 
@@ -9,7 +9,7 @@ import java.util.UUID;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 @Log4j2
-public class EntitiesUnitTest extends AbstractUnitTest {
+public class EntitiesUnitTest extends BaseTest {
 
     @Test
     public void uuidVersion_succeeds() {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/BrokerServiceGatewayUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/BrokerServiceGatewayUnitTest.java
similarity index 94%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/BrokerServiceGatewayUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/BrokerServiceGatewayUnitTest.java
index 16e8ba123c..e8d2b01923 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/BrokerServiceGatewayUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/BrokerServiceGatewayUnitTest.java
@@ -1,8 +1,9 @@
-package at.tuwien.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.api.amqp.GrantExchangePermissionsDto;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.amqp.GrantExchangePermissionsDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.BrokerServiceConnectionException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.BrokerServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -25,7 +26,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class BrokerServiceGatewayUnitTest extends AbstractUnitTest {
+public class BrokerServiceGatewayUnitTest extends BaseTest {
 
     @MockBean
     @Qualifier("brokerRestTemplate")
@@ -36,8 +37,8 @@ public class BrokerServiceGatewayUnitTest extends AbstractUnitTest {
 
     private final GrantExchangePermissionsDto WRITE_ALL_PERMISSIONS = GrantExchangePermissionsDto.builder()
             .exchange("dbrepo")
-            .read("^(dbrepo\\.1\\..*)$") /* WRITE_ALL */
-            .write("^(dbrepo\\.1\\..*)$")
+            .read("^(dbrepo\\." + DATABASE_1_ID + "\\..*)$") /* WRITE_ALL */
+            .write("^(dbrepo\\." + DATABASE_1_ID + "\\..*)$")
             .build();
 
     @Test
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/CrossrefGatewayUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/CrossrefGatewayUnitTest.java
similarity index 81%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/CrossrefGatewayUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/CrossrefGatewayUnitTest.java
index 94ac4f62a7..bbf0e45307 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/CrossrefGatewayUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/CrossrefGatewayUnitTest.java
@@ -1,13 +1,12 @@
-package at.tuwien.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.api.crossref.CrossrefDto;
-import at.ac.tuwien.ifs.dbrepo.exception.DoiNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.api.crossref.CrossrefDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DoiNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.http.HttpEntity;
@@ -16,7 +15,6 @@ import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 import org.springframework.web.client.HttpServerErrorException;
-import org.springframework.web.client.ResourceAccessException;
 import org.springframework.web.client.RestTemplate;
 
 import static org.junit.jupiter.api.Assertions.assertThrows;
@@ -25,7 +23,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class CrossrefGatewayUnitTest extends AbstractUnitTest {
+public class CrossrefGatewayUnitTest extends BaseTest {
 
     @MockBean
     private RestTemplate restTemplate;
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/DashboardServiceGatewayUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/DashboardServiceGatewayUnitTest.java
similarity index 95%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/DashboardServiceGatewayUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/DashboardServiceGatewayUnitTest.java
index 55f42008b7..c1a60d0115 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/DashboardServiceGatewayUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/DashboardServiceGatewayUnitTest.java
@@ -1,10 +1,10 @@
-package at.tuwien.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.api.grafana.CreateDashboardResponseDto;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.PermissionTypeDto;
-import at.ac.tuwien.ifs.dbrepo.exception.DashboardServiceConnectionException;
-import at.ac.tuwien.ifs.dbrepo.exception.DashboardServiceException;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.CreateDashboardResponseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.PermissionTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DashboardServiceConnectionException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DashboardServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -21,7 +21,6 @@ import org.springframework.web.client.HttpClientErrorException;
 import org.springframework.web.client.HttpServerErrorException;
 import org.springframework.web.client.RestTemplate;
 
-import static at.ac.tuwien.ifs.dbrepo.test.BaseTest.DATABASE_2_CREATE_DASHBOARD_DTO;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.mockito.ArgumentMatchers.*;
@@ -31,7 +30,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class DashboardServiceGatewayUnitTest extends AbstractUnitTest {
+public class DashboardServiceGatewayUnitTest extends BaseTest {
 
     @MockBean
     @Qualifier("dashboardServiceRestTemplate")
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/DataServiceGatewayUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/DataServiceGatewayUnitTest.java
similarity index 98%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/DataServiceGatewayUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/DataServiceGatewayUnitTest.java
index 8acb7530bf..14df28608a 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/DataServiceGatewayUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/DataServiceGatewayUnitTest.java
@@ -1,13 +1,13 @@
-package at.tuwien.gateway;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableStatisticDto;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+package at.ac.tuwien.ifs.dbrepo.gateway;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableStatisticDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -32,7 +32,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class DataServiceGatewayUnitTest extends AbstractUnitTest {
+public class DataServiceGatewayUnitTest extends BaseTest {
 
     @MockBean
     @Qualifier("dataServiceRestTemplate")
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/KeycloakGatewayIntegrationTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/KeycloakGatewayIntegrationTest.java
similarity index 89%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/KeycloakGatewayIntegrationTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/KeycloakGatewayIntegrationTest.java
index 7fee23320e..40d8eab970 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/KeycloakGatewayIntegrationTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/KeycloakGatewayIntegrationTest.java
@@ -1,10 +1,10 @@
-package at.tuwien.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.UserNotFoundException;
-import at.tuwien.gateway.impl.KeycloakGatewayImpl;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.tuwien.utils.KeycloakUtils;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UserNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.gateway.impl.KeycloakGatewayImpl;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.utils.KeycloakUtils;
 import dasniko.testcontainers.keycloak.KeycloakContainer;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
@@ -20,15 +20,13 @@ import org.testcontainers.images.PullPolicy;
 import org.testcontainers.junit.jupiter.Container;
 import org.testcontainers.junit.jupiter.Testcontainers;
 
-import java.util.UUID;
-
 import static org.junit.jupiter.api.Assertions.*;
 
 @Log4j2
 @SpringBootTest
 @Testcontainers
 @ExtendWith(SpringExtension.class)
-public class KeycloakGatewayIntegrationTest extends AbstractUnitTest {
+public class KeycloakGatewayIntegrationTest extends BaseTest {
 
     @Autowired
     private KeycloakGatewayImpl keycloakGateway;
@@ -38,7 +36,6 @@ public class KeycloakGatewayIntegrationTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() {
-        genesis();
         /* auth service */
         keycloakUtils.deleteUser(USER_1_USERNAME);
     }
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/OrcidGatewayUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/OrcidGatewayUnitTest.java
similarity index 81%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/OrcidGatewayUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/OrcidGatewayUnitTest.java
index 63d8d5e936..31d8baeab5 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/OrcidGatewayUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/OrcidGatewayUnitTest.java
@@ -1,13 +1,12 @@
-package at.tuwien.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.OrcidDto;
-import at.ac.tuwien.ifs.dbrepo.exception.OrcidNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.OrcidDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.OrcidNotFoundException;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.http.HttpEntity;
@@ -16,16 +15,17 @@ import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 import org.springframework.web.client.HttpServerErrorException;
-import org.springframework.web.client.ResourceAccessException;
 import org.springframework.web.client.RestTemplate;
 
+import java.io.IOException;
+
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.mockito.Mockito.*;
 
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class OrcidGatewayUnitTest extends AbstractUnitTest {
+public class OrcidGatewayUnitTest extends BaseTest {
 
     @MockBean
     private RestTemplate restTemplate;
@@ -33,6 +33,9 @@ public class OrcidGatewayUnitTest extends AbstractUnitTest {
     @Autowired
     private OrcidGateway orcidGateway;
 
+    public OrcidGatewayUnitTest() throws IOException {
+    }
+
     @Test
     public void findByUrl_succeeds() throws OrcidNotFoundException {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/RorGatewayUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/RorGatewayUnitTest.java
similarity index 77%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/RorGatewayUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/RorGatewayUnitTest.java
index 259b132f48..b8b100c413 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/RorGatewayUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/RorGatewayUnitTest.java
@@ -1,15 +1,18 @@
-package at.tuwien.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.api.ror.RorDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.ror.RorDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.RorNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.mock.mockito.MockBean;
-import org.springframework.http.*;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 import org.springframework.web.client.HttpServerErrorException;
 import org.springframework.web.client.RestTemplate;
@@ -20,7 +23,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class RorGatewayUnitTest extends AbstractUnitTest {
+public class RorGatewayUnitTest extends BaseTest {
 
     @MockBean
     private RestTemplate restTemplate;
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/SearchServiceGatewayUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/SearchServiceGatewayUnitTest.java
similarity index 93%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/SearchServiceGatewayUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/SearchServiceGatewayUnitTest.java
index 63a9dc407a..3ff4a3a508 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/SearchServiceGatewayUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/gateway/SearchServiceGatewayUnitTest.java
@@ -1,8 +1,10 @@
-package at.tuwien.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseBriefDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DatabaseNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.SearchServiceConnectionException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.SearchServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -25,7 +27,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class SearchServiceGatewayUnitTest extends AbstractUnitTest {
+public class SearchServiceGatewayUnitTest extends BaseTest {
 
     @MockBean
     @Qualifier("searchServiceRestTemplate")
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/handlers/ApiExceptionHandlerTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/handlers/ApiExceptionHandlerTest.java
similarity index 98%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/handlers/ApiExceptionHandlerTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/handlers/ApiExceptionHandlerTest.java
index c458f0ee19..7ab54f089c 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/handlers/ApiExceptionHandlerTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/handlers/ApiExceptionHandlerTest.java
@@ -1,8 +1,8 @@
-package at.tuwien.handlers;
+package at.ac.tuwien.ifs.dbrepo.handlers;
 
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import com.auth0.jwt.exceptions.TokenExpiredException;
 import jakarta.ws.rs.NotAuthorizedException;
 import lombok.extern.log4j.Log4j2;
@@ -23,14 +23,14 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.Optional;
 
-import static at.ac.tuwien.ifs.dbrepo.test.utils.EndpointUtils.getErrorCodes;
-import static at.ac.tuwien.ifs.dbrepo.test.utils.EndpointUtils.getExceptions;
+import static at.ac.tuwien.ifs.dbrepo.core.test.utils.EndpointUtils.getErrorCodes;
+import static at.ac.tuwien.ifs.dbrepo.core.test.utils.EndpointUtils.getExceptions;
 import static org.junit.jupiter.api.Assertions.*;
 
 @Log4j2
 @ExtendWith(SpringExtension.class)
 @SpringBootTest
-public class ApiExceptionHandlerTest extends AbstractUnitTest {
+public class ApiExceptionHandlerTest extends BaseTest {
 
     @Autowired
     private ApiExceptionHandler apiExceptionHandler;
@@ -49,7 +49,7 @@ public class ApiExceptionHandlerTest extends AbstractUnitTest {
             final Method method = optional.get();
             /* exception */
             Assertions.assertNotNull(exception.getDeclaredAnnotation(ResponseStatus.class).code());
-            Assertions.assertNotEquals(exception.getDeclaredAnnotation(ResponseStatus.class).code(), HttpStatus.INTERNAL_SERVER_ERROR);
+            Assertions.assertNotEquals(HttpStatus.INTERNAL_SERVER_ERROR, exception.getDeclaredAnnotation(ResponseStatus.class).code());
             Assertions.assertNotNull(exception.getDeclaredAnnotation(ResponseStatus.class).reason(), "Exception " + exception.getName() + " does not provide a reason code");
             assertTrue(errorCodes.contains(exception.getDeclaredAnnotation(ResponseStatus.class).reason()), "Exception code " + exception.getDeclaredAnnotation(ResponseStatus.class).reason() + " does have a reason code mapped in localized ui error messages");
             /* handler method */
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mapper/MetadataMapperUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mapper/MetadataMapperUnitTest.java
similarity index 92%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mapper/MetadataMapperUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mapper/MetadataMapperUnitTest.java
index 768a06c6dc..ef1ce49f09 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mapper/MetadataMapperUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mapper/MetadataMapperUnitTest.java
@@ -1,14 +1,11 @@
-package at.tuwien.mapper;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.View;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.Identifier;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.IdentifierType;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.mapper;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Identifier;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.IdentifierType;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.Arguments;
@@ -26,7 +23,7 @@ import static org.junit.jupiter.api.Assertions.*;
 
 @Log4j2
 @SpringBootTest
-public class MetadataMapperUnitTest extends AbstractUnitTest {
+public class MetadataMapperUnitTest extends BaseTest {
 
     private final DateTimeFormatter mariaDbFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss[.SSS]")
             .withZone(ZoneId.of("UTC"));
@@ -34,11 +31,6 @@ public class MetadataMapperUnitTest extends AbstractUnitTest {
     @Autowired
     private MetadataMapper metadataMapper;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void mapMariaDbInstant_succeeds() {
         final String timestamp = "2023-01-08 08:49:29";
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/ActuatorEndpointMvcTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/ActuatorEndpointMvcTest.java
similarity index 90%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/ActuatorEndpointMvcTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/ActuatorEndpointMvcTest.java
index 2781f51c82..7d8c74437a 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/ActuatorEndpointMvcTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/ActuatorEndpointMvcTest.java
@@ -1,6 +1,6 @@
-package at.tuwien.mvc;
+package at.ac.tuwien.ifs.dbrepo.mvc;
 
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -20,7 +20,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
 @AutoConfigureMockMvc
 @SpringBootTest
 @AutoConfigureObservability
-public class ActuatorEndpointMvcTest extends AbstractUnitTest {
+public class ActuatorEndpointMvcTest extends BaseTest {
 
     @Autowired
     private MockMvc mockMvc;
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/AuthenticationPrivilegedIntegrationMvcTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/AuthenticationPrivilegedIntegrationMvcTest.java
similarity index 89%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/AuthenticationPrivilegedIntegrationMvcTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/AuthenticationPrivilegedIntegrationMvcTest.java
index b83232cd0d..eb75887adf 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/AuthenticationPrivilegedIntegrationMvcTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/AuthenticationPrivilegedIntegrationMvcTest.java
@@ -1,16 +1,16 @@
-package at.tuwien.mvc;
-
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceConnectionException;
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.CredentialsInvalidException;
-import at.tuwien.gateway.KeycloakGateway;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.repository.LicenseRepository;
-import at.tuwien.repository.UserRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.tuwien.utils.KeycloakUtils;
+package at.ac.tuwien.ifs.dbrepo.mvc;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceConnectionException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.CredentialsInvalidException;
+import at.ac.tuwien.ifs.dbrepo.gateway.KeycloakGateway;
+import at.ac.tuwien.ifs.dbrepo.repository.ContainerRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.LicenseRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.UserRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.utils.KeycloakUtils;
 import dasniko.testcontainers.keycloak.KeycloakContainer;
 import jakarta.transaction.Transactional;
 import lombok.extern.log4j.Log4j2;
@@ -41,7 +41,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
 @AutoConfigureMockMvc
 @Testcontainers
 @SpringBootTest
-public class AuthenticationPrivilegedIntegrationMvcTest extends AbstractUnitTest {
+public class AuthenticationPrivilegedIntegrationMvcTest extends BaseTest {
 
     @Autowired
     private MockMvc mockMvc;
@@ -79,7 +79,6 @@ public class AuthenticationPrivilegedIntegrationMvcTest extends AbstractUnitTest
 
     @BeforeEach
     public void beforeEach() throws AuthServiceException, AuthServiceConnectionException, CredentialsInvalidException {
-        genesis();
         /* metadata database */
         licenseRepository.save(LICENSE_1);
         userRepository.saveAll(List.of(USER_1, USER_2, USER_3, USER_4, USER_LOCAL));
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/IdentifierEndpointMvcTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/IdentifierEndpointMvcTest.java
similarity index 86%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/IdentifierEndpointMvcTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/IdentifierEndpointMvcTest.java
index fdbedbea6c..b0cdca73e2 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/IdentifierEndpointMvcTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/IdentifierEndpointMvcTest.java
@@ -1,7 +1,7 @@
-package at.tuwien.mvc;
+package at.ac.tuwien.ifs.dbrepo.mvc;
 
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.tuwien.gateway.OrcidGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.OrcidGateway;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import com.mchange.io.FileUtils;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
@@ -16,7 +16,8 @@ import org.springframework.test.web.servlet.MockMvc;
 
 import java.io.File;
 
-import static org.mockito.Mockito.*;
+import static org.mockito.Mockito.anyString;
+import static org.mockito.Mockito.when;
 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
 import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
 import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
@@ -26,7 +27,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
 @ExtendWith(SpringExtension.class)
 @AutoConfigureMockMvc
 @SpringBootTest
-public class IdentifierEndpointMvcTest extends AbstractUnitTest {
+public class IdentifierEndpointMvcTest extends BaseTest {
 
     @MockBean
     private OrcidGateway orcidGateway;
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/MetadataEndpointMvcTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/MetadataEndpointMvcTest.java
similarity index 93%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/MetadataEndpointMvcTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/MetadataEndpointMvcTest.java
index 25dae0b211..870251323e 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/MetadataEndpointMvcTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/MetadataEndpointMvcTest.java
@@ -1,10 +1,9 @@
-package at.tuwien.mvc;
+package at.ac.tuwien.ifs.dbrepo.mvc;
 
-import at.tuwien.repository.IdentifierRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.tuwien.config.MetadataConfig;
+import at.ac.tuwien.ifs.dbrepo.config.MetadataConfig;
+import at.ac.tuwien.ifs.dbrepo.repository.IdentifierRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -28,7 +27,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
 @AutoConfigureMockMvc
 @SpringBootTest
-public class MetadataEndpointMvcTest extends AbstractUnitTest {
+public class MetadataEndpointMvcTest extends BaseTest {
 
     @MockBean
     private IdentifierRepository identifierRepository;
@@ -39,11 +38,6 @@ public class MetadataEndpointMvcTest extends AbstractUnitTest {
     @Autowired
     private MockMvc mockMvc;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void identify_succeeds() throws Exception {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/OpenApiEndpointMvcTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/OpenApiEndpointMvcTest.java
similarity index 95%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/OpenApiEndpointMvcTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/OpenApiEndpointMvcTest.java
index e990c8b84d..7883d56552 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/OpenApiEndpointMvcTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/OpenApiEndpointMvcTest.java
@@ -1,8 +1,8 @@
-package at.tuwien.mvc;
+package at.ac.tuwien.ifs.dbrepo.mvc;
 
-import at.ac.tuwien.ifs.dbrepo.api.error.ApiErrorDto;
-import at.tuwien.endpoints.*;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.api.error.ApiErrorDto;
+import at.ac.tuwien.ifs.dbrepo.endpoints.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.Content;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
@@ -30,7 +30,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
 @ExtendWith(SpringExtension.class)
 @AutoConfigureMockMvc
 @SpringBootTest
-public class OpenApiEndpointMvcTest extends AbstractUnitTest {
+public class OpenApiEndpointMvcTest extends BaseTest {
 
     @Autowired
     private MockMvc mockMvc;
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/PrometheusEndpointMvcTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/PrometheusEndpointMvcTest.java
similarity index 96%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/PrometheusEndpointMvcTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/PrometheusEndpointMvcTest.java
index d9f09c4b2e..198a6c6270 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/PrometheusEndpointMvcTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/mvc/PrometheusEndpointMvcTest.java
@@ -1,14 +1,14 @@
-package at.tuwien.mvc;
-
-import at.ac.tuwien.ifs.dbrepo.api.container.CreateContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseModifyImageDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseModifyVisibilityDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseTransferDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.ColumnSemanticsUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierTypeDto;
-import at.tuwien.config.MetricsConfig;
-import at.tuwien.endpoints.*;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.mvc;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.container.CreateContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseModifyImageDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseModifyVisibilityDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseTransferDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.ColumnSemanticsUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierTypeDto;
+import at.ac.tuwien.ifs.dbrepo.config.MetricsConfig;
+import at.ac.tuwien.ifs.dbrepo.endpoints.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import io.micrometer.observation.tck.TestObservationRegistry;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.Test;
@@ -38,7 +38,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
 @SpringBootTest
 @Import(MetricsConfig.class)
 @AutoConfigureObservability
-public class PrometheusEndpointMvcTest extends AbstractUnitTest {
+public class PrometheusEndpointMvcTest extends BaseTest {
 
     @Autowired
     private MockMvc mockMvc;
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/AccessServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/AccessServiceUnitTest.java
similarity index 94%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/AccessServiceUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/AccessServiceUnitTest.java
index e9e8092b3e..17a7cb32f8 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/AccessServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/AccessServiceUnitTest.java
@@ -1,15 +1,14 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseBriefDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.AccessType;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
-import at.tuwien.repository.DatabaseRepository;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.AccessType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,7 +33,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class AccessServiceUnitTest extends AbstractUnitTest {
+public class AccessServiceUnitTest extends BaseTest {
 
     @MockBean
     private DatabaseRepository databaseRepository;
@@ -50,11 +49,6 @@ public class AccessServiceUnitTest extends AbstractUnitTest {
     @Autowired
     private AccessService accessService;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void list_succeeds() {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/AuthenticationServiceIntegrationTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/AuthenticationServiceIntegrationTest.java
similarity index 82%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/AuthenticationServiceIntegrationTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/AuthenticationServiceIntegrationTest.java
index 6ab6c1fb2b..016e0f949b 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/AuthenticationServiceIntegrationTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/AuthenticationServiceIntegrationTest.java
@@ -1,13 +1,12 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.KeycloakGateway;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.tuwien.utils.KeycloakUtils;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.KeycloakGateway;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.utils.KeycloakUtils;
 import dasniko.testcontainers.keycloak.KeycloakContainer;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,7 +26,7 @@ import java.util.UUID;
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class AuthenticationServiceIntegrationTest extends AbstractUnitTest {
+public class AuthenticationServiceIntegrationTest extends BaseTest {
 
     @Autowired
     private AuthenticationService authenticationService;
@@ -38,11 +37,6 @@ public class AuthenticationServiceIntegrationTest extends AbstractUnitTest {
     @Autowired
     private KeycloakUtils keycloakUtils;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Container
     private static final KeycloakContainer keycloakContainer = new KeycloakContainer(KEYCLOAK_IMAGE)
             .withImagePullPolicy(PullPolicy.alwaysPull())
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/BrokerServiceIntegrationTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/BrokerServiceIntegrationTest.java
similarity index 88%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/BrokerServiceIntegrationTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/BrokerServiceIntegrationTest.java
index edd641f67b..05ab5f8bc7 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/BrokerServiceIntegrationTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/BrokerServiceIntegrationTest.java
@@ -1,18 +1,17 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.api.amqp.GrantExchangePermissionsDto;
-import at.ac.tuwien.ifs.dbrepo.api.amqp.GrantVirtualHostPermissionsDto;
-import at.ac.tuwien.ifs.dbrepo.api.amqp.TopicPermissionDto;
-import at.ac.tuwien.ifs.dbrepo.api.amqp.VirtualHostPermissionDto;
-import at.tuwien.config.RabbitConfig;
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.BrokerServiceConnectionException;
-import at.ac.tuwien.ifs.dbrepo.exception.BrokerServiceException;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.tuwien.utils.AmqpUtils;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.amqp.GrantExchangePermissionsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.amqp.GrantVirtualHostPermissionsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.amqp.TopicPermissionDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.amqp.VirtualHostPermissionDto;
+import at.ac.tuwien.ifs.dbrepo.config.RabbitConfig;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.BrokerServiceConnectionException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.BrokerServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.utils.AmqpUtils;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -36,7 +35,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
-public class BrokerServiceIntegrationTest extends AbstractUnitTest {
+public class BrokerServiceIntegrationTest extends BaseTest {
 
     @Autowired
     private RabbitConfig rabbitConfig;
@@ -54,11 +53,6 @@ public class BrokerServiceIntegrationTest extends AbstractUnitTest {
         registry.add("dbrepo.endpoints.brokerService", rabbitContainer::getHttpUrl);
     }
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void updatePermissions_empty_succeeds() throws BrokerServiceException, BrokerServiceConnectionException {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ConceptServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ConceptServiceUnitTest.java
similarity index 78%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ConceptServiceUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ConceptServiceUnitTest.java
index fb23ae6579..67f14f3ebb 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ConceptServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ConceptServiceUnitTest.java
@@ -1,11 +1,10 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.exception.ConceptNotFoundException;
-import at.tuwien.repository.ConceptRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnConcept;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnConcept;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ConceptNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.repository.ConceptRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,7 +22,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class ConceptServiceUnitTest extends AbstractUnitTest {
+public class ConceptServiceUnitTest extends BaseTest {
 
     @MockBean
     private ConceptRepository conceptRepository;
@@ -31,11 +30,6 @@ public class ConceptServiceUnitTest extends AbstractUnitTest {
     @Autowired
     private ConceptService conceptService;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void findAll_succeeds() {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ContainerServiceUnitTest.java
similarity index 86%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ContainerServiceUnitTest.java
index 0d5e660cb1..3af0a8816b 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ContainerServiceUnitTest.java
@@ -1,15 +1,14 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.api.container.CreateContainerDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
-import at.ac.tuwien.ifs.dbrepo.exception.ContainerAlreadyExistsException;
-import at.ac.tuwien.ifs.dbrepo.exception.ContainerNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageNotFoundException;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.ImageRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.container.CreateContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.Container;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ContainerAlreadyExistsException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ContainerNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.repository.ContainerRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.ImageRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -32,7 +31,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class ContainerServiceUnitTest extends AbstractUnitTest {
+public class ContainerServiceUnitTest extends BaseTest {
 
     @MockBean
     private ContainerRepository containerRepository;
@@ -43,11 +42,6 @@ public class ContainerServiceUnitTest extends AbstractUnitTest {
     @Autowired
     private ContainerService containerService;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void create_succeeds() throws ContainerAlreadyExistsException, ImageNotFoundException {
         final CreateContainerDto request = CreateContainerDto.builder()
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/DataCiteIdentifierServicePersistenceTest.java
similarity index 91%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServicePersistenceTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/DataCiteIdentifierServicePersistenceTest.java
index f0dfe23ea3..3f3720b2d8 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServicePersistenceTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/DataCiteIdentifierServicePersistenceTest.java
@@ -1,20 +1,20 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.api.datacite.DataCiteBody;
-import at.ac.tuwien.ifs.dbrepo.api.datacite.doi.DataCiteDoi;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.BibliographyTypeDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.Creator;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.Identifier;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.IdentifierStatusType;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.NameIdentifierSchemeType;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.SearchServiceGateway;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.repository.LicenseRepository;
-import at.tuwien.repository.UserRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.datacite.DataCiteBody;
+import at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi.DataCiteDoi;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.BibliographyTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Creator;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Identifier;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.IdentifierStatusType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.NameIdentifierSchemeType;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.SearchServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.repository.ContainerRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.LicenseRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.UserRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -46,7 +46,7 @@ import static org.mockito.Mockito.when;
 @ExtendWith(SpringExtension.class)
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
 @SpringBootTest(properties = "spring.profiles.active=local,junit,doi")
-public class DataCiteIdentifierServicePersistenceTest extends AbstractUnitTest {
+public class DataCiteIdentifierServicePersistenceTest extends BaseTest {
 
     @MockBean
     private SearchServiceGateway searchServiceGateway;
@@ -75,7 +75,6 @@ public class DataCiteIdentifierServicePersistenceTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() {
-        genesis();
         /* metadata database */
         licenseRepository.save(LICENSE_1);
         userRepository.saveAll(List.of(USER_1, USER_2, USER_3, USER_4, USER_5));
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/DatabaseServicePersistenceTest.java
similarity index 74%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServicePersistenceTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/DatabaseServicePersistenceTest.java
index 7055834b52..c0d36efdba 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServicePersistenceTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/DatabaseServicePersistenceTest.java
@@ -1,13 +1,12 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.exception.DatabaseNotFoundException;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.repository.LicenseRepository;
-import at.tuwien.repository.UserRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DatabaseNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.repository.ContainerRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.LicenseRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.UserRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -21,13 +20,12 @@ import org.springframework.transaction.annotation.Transactional;
 import java.util.List;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 @Log4j2
 @SpringBootTest
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
 @ExtendWith(SpringExtension.class)
-public class DatabaseServicePersistenceTest extends AbstractUnitTest {
+public class DatabaseServicePersistenceTest extends BaseTest {
 
     @Autowired
     private DatabaseService databaseService;
@@ -46,7 +44,6 @@ public class DatabaseServicePersistenceTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() {
-        genesis();
         /* metadata database */
         licenseRepository.save(LICENSE_1);
         userRepository.saveAll(List.of(USER_1, USER_2, USER_3, USER_4, USER_5));
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/DatabaseServiceUnitTest.java
similarity index 93%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/DatabaseServiceUnitTest.java
index 33be047995..d38b12b3ab 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/DatabaseServiceUnitTest.java
@@ -1,18 +1,17 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseModifyVisibilityDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.internal.CreateDatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.internal.UpdateUserPasswordDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.DataServiceGateway;
-import at.tuwien.gateway.SearchServiceGateway;
-import at.tuwien.repository.DatabaseRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseModifyVisibilityDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.internal.CreateDatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.internal.UpdateUserPasswordDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.DataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.SearchServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -32,7 +31,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class DatabaseServiceUnitTest extends AbstractUnitTest {
+public class DatabaseServiceUnitTest extends BaseTest {
 
     @MockBean
     private SearchServiceGateway searchServiceGateway;
@@ -46,11 +45,6 @@ public class DatabaseServiceUnitTest extends AbstractUnitTest {
     @Autowired
     private DatabaseService databaseService;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void findAll_succeeds() {
         /* mock */
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/EntityServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/EntityServiceUnitTest.java
similarity index 85%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/EntityServiceUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/EntityServiceUnitTest.java
index d2555c6703..27987dd6b4 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/EntityServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/EntityServiceUnitTest.java
@@ -1,11 +1,12 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.EntityDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.TableColumnEntityDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.EntityDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.TableColumnEntityDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.OntologyNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.SemanticEntityNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -24,7 +25,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class EntityServiceUnitTest extends AbstractUnitTest {
+public class EntityServiceUnitTest extends BaseTest {
 
     @MockBean
     private OntologyService ontologyService;
@@ -32,11 +33,6 @@ public class EntityServiceUnitTest extends AbstractUnitTest {
     @Autowired
     private EntityService entityService;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void findByLabel_wikidataSparql_succeeds() throws MalformedException {
 
@@ -49,7 +45,6 @@ public class EntityServiceUnitTest extends AbstractUnitTest {
         assertFalse(response.isEmpty());
         final EntityDto entity0 = response.get(0);
         assertNotNull(entity0.getUri());
-        log.trace("found concept {}", entity0);
     }
 
     @Test
@@ -66,7 +61,6 @@ public class EntityServiceUnitTest extends AbstractUnitTest {
         assertEquals(1, response.size());
         final EntityDto entity0 = response.get(0);
         assertNotNull(entity0.getUri());
-        log.trace("found concept {}", entity0);
     }
 
     @Test
@@ -82,7 +76,6 @@ public class EntityServiceUnitTest extends AbstractUnitTest {
         /* test */
         final EntityDto response = entityService.findOneByUri(CONCEPT_1_URI);
         assertNotNull(response.getUri());
-        log.trace("found concept {}", response);
     }
 
     @Test
@@ -97,7 +90,6 @@ public class EntityServiceUnitTest extends AbstractUnitTest {
         assertFalse(response.isEmpty());
         final EntityDto entity0 = response.get(0);
         assertNotNull(entity0.getUri());
-        log.trace("found unit {}", entity0);
     }
 
     @Test
@@ -114,7 +106,6 @@ public class EntityServiceUnitTest extends AbstractUnitTest {
         assertEquals(1, response.size());
         final EntityDto entity0 = response.get(0);
         assertNotNull(entity0.getUri());
-        log.trace("found unit {}", entity0);
     }
 
     @Test
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/IdentifierServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/IdentifierServicePersistenceTest.java
similarity index 93%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/IdentifierServicePersistenceTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/IdentifierServicePersistenceTest.java
index 68a50698ca..3474e21f47 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/IdentifierServicePersistenceTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/IdentifierServicePersistenceTest.java
@@ -1,19 +1,18 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.BibliographyTypeDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.License;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.*;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.DataServiceGateway;
-import at.tuwien.gateway.SearchServiceGateway;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.repository.LicenseRepository;
-import at.tuwien.repository.UserRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.BibliographyTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.License;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.*;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.DataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.SearchServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.repository.ContainerRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.LicenseRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.UserRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -42,7 +41,7 @@ import static org.mockito.Mockito.when;
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
-public class IdentifierServicePersistenceTest extends AbstractUnitTest {
+public class IdentifierServicePersistenceTest extends BaseTest {
 
     @MockBean
     private DataServiceGateway dataServiceGateway;
@@ -71,14 +70,9 @@ public class IdentifierServicePersistenceTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() {
-        genesis();
         /* metadata database */
         licenseRepository.save(LICENSE_1);
         userRepository.saveAll(List.of(USER_1, USER_2, USER_3, USER_4, USER_5));
-        final Container debug1 = CONTAINER_1;
-        final Container debug2 = CONTAINER_2;
-        final Container debug3 = CONTAINER_3;
-        final Container debug4 = CONTAINER_4;
         containerRepository.saveAll(List.of(CONTAINER_1, CONTAINER_2, CONTAINER_3, CONTAINER_4));
         databaseRepository.saveAll(List.of(DATABASE_1, DATABASE_2, DATABASE_3, DATABASE_4));
     }
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ImageServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ImageServicePersistenceTest.java
similarity index 83%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ImageServicePersistenceTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ImageServicePersistenceTest.java
index f23a7c96d0..da0e741028 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ImageServicePersistenceTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ImageServicePersistenceTest.java
@@ -1,11 +1,11 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.exception.ImageInvalidException;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageCreateDto;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageAlreadyExistsException;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.ImageRepository;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageAlreadyExistsException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageInvalidException;
+import at.ac.tuwien.ifs.dbrepo.repository.ContainerRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.ImageRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -21,7 +21,7 @@ import static org.junit.jupiter.api.Assertions.*;
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
 @ExtendWith(SpringExtension.class)
 @SpringBootTest
-public class ImageServicePersistenceTest extends AbstractUnitTest {
+public class ImageServicePersistenceTest extends BaseTest {
 
     @Autowired
     private ImageService imageService;
@@ -34,7 +34,6 @@ public class ImageServicePersistenceTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() {
-        genesis();
         /* metadata database */
         imageRepository.save(IMAGE_1);
     }
@@ -94,7 +93,7 @@ public class ImageServicePersistenceTest extends AbstractUnitTest {
     }
 
     @Test
-    public void delete_hasNoContainer_succeeds()  {
+    public void delete_hasNoContainer_succeeds() {
 
         /* test */
         imageService.delete(IMAGE_1);
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ImageServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ImageServiceUnitTest.java
similarity index 83%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ImageServiceUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ImageServiceUnitTest.java
index 12737718aa..289c5bc104 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ImageServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ImageServiceUnitTest.java
@@ -1,16 +1,14 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.exception.ImageInvalidException;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageChangeDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageCreateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.image.ContainerImage;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageAlreadyExistsException;
-import at.tuwien.repository.ImageRepository;
-import at.tuwien.service.impl.ImageServiceImpl;
-import jakarta.validation.ConstraintViolationException;
-import org.junit.jupiter.api.BeforeEach;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageChangeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.image.ContainerImage;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageAlreadyExistsException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageInvalidException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.repository.ImageRepository;
+import at.ac.tuwien.ifs.dbrepo.service.impl.ImageServiceImpl;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,11 +21,12 @@ import java.util.Optional;
 
 import static org.junit.jupiter.api.Assertions.*;
 import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.*;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 @ExtendWith(SpringExtension.class)
 @SpringBootTest
-public class ImageServiceUnitTest extends AbstractUnitTest {
+public class ImageServiceUnitTest extends BaseTest {
 
     @MockBean
     private ImageRepository imageRepository;
@@ -35,11 +34,6 @@ public class ImageServiceUnitTest extends AbstractUnitTest {
     @Autowired
     private ImageService imageService;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void getAll_succeeds() {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/LicenseServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/LicenseServiceUnitTest.java
similarity index 78%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/LicenseServiceUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/LicenseServiceUnitTest.java
index 88935be421..417c50424f 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/LicenseServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/LicenseServiceUnitTest.java
@@ -1,11 +1,10 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.exception.LicenseNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.entity.database.License;
-import at.tuwien.repository.LicenseRepository;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.License;
+import at.ac.tuwien.ifs.dbrepo.core.exception.LicenseNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.repository.LicenseRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,7 +23,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class LicenseServiceUnitTest extends AbstractUnitTest {
+public class LicenseServiceUnitTest extends BaseTest {
 
     @MockBean
     private LicenseRepository licenseRepository;
@@ -32,11 +31,6 @@ public class LicenseServiceUnitTest extends AbstractUnitTest {
     @Autowired
     private LicenseService licenseService;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void findAll_succeeds() {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MessageServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/MessageServiceUnitTest.java
similarity index 84%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MessageServiceUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/MessageServiceUnitTest.java
index 68b569962b..0fb606d6df 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MessageServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/MessageServiceUnitTest.java
@@ -1,13 +1,12 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.exception.MessageNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.maintenance.BannerMessage;
-import at.tuwien.repository.BannerMessageRepository;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.maintenance.BannerMessage;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MessageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.repository.BannerMessageRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,14 +22,13 @@ import java.util.UUID;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyLong;
 import static org.mockito.Mockito.when;
 
 @Log4j2
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class MessageServiceUnitTest extends AbstractUnitTest {
+public class MessageServiceUnitTest extends BaseTest {
 
     @MockBean
     private BannerMessageRepository bannerMessageRepository;
@@ -38,11 +36,6 @@ public class MessageServiceUnitTest extends AbstractUnitTest {
     @Autowired
     private BannerMessageService bannerMessageService;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void findAll_succeeds() {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MetadataServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/MetadataServiceUnitTest.java
similarity index 88%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MetadataServiceUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/MetadataServiceUnitTest.java
index 32d45fc41a..a00b44e392 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MetadataServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/MetadataServiceUnitTest.java
@@ -1,22 +1,21 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.api.crossref.CrossrefDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.OrcidDto;
-import at.ac.tuwien.ifs.dbrepo.api.ror.RorDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.external.ExternalMetadataDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.external.affiliation.ExternalAffiliationDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.CrossrefGateway;
-import at.tuwien.gateway.OrcidGateway;
-import at.tuwien.gateway.RorGateway;
-import at.tuwien.oaipmh.OaiErrorType;
-import at.tuwien.oaipmh.OaiListIdentifiersParameters;
-import at.tuwien.oaipmh.OaiRecordParameters;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.crossref.CrossrefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.OrcidDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.ror.RorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.external.ExternalMetadataDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.external.affiliation.ExternalAffiliationDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.CrossrefGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.OrcidGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.RorGateway;
+import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiErrorType;
+import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiListIdentifiersParameters;
+import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiRecordParameters;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -40,7 +39,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class MetadataServiceUnitTest extends AbstractUnitTest {
+public class MetadataServiceUnitTest extends BaseTest {
 
     @MockBean
     private OrcidGateway orcidGateway;
@@ -60,11 +59,6 @@ public class MetadataServiceUnitTest extends AbstractUnitTest {
     @Autowired
     private ObjectMapper objectMapper;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void identify_succeeds() {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/StorageServiceIntegrationTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/StorageServiceIntegrationTest.java
similarity index 90%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/StorageServiceIntegrationTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/StorageServiceIntegrationTest.java
index 608ae03fc9..66ac04fe56 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/StorageServiceIntegrationTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/StorageServiceIntegrationTest.java
@@ -1,8 +1,9 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.tuwien.config.S3Config;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+import at.ac.tuwien.ifs.dbrepo.config.S3Config;
+import at.ac.tuwien.ifs.dbrepo.core.exception.StorageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.StorageUnavailableException;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -33,7 +34,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class StorageServiceIntegrationTest extends AbstractUnitTest {
+public class StorageServiceIntegrationTest extends BaseTest {
 
     @Autowired
     private StorageService storageService;
@@ -54,7 +55,6 @@ public class StorageServiceIntegrationTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() throws SQLException {
-        genesis();
         /* s3 */
         if (s3Client.listBuckets().buckets().stream().noneMatch(b -> b.name().equals(s3Config.getS3Bucket()))) {
             s3Client.createBucket(CreateBucketRequest.builder()
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/TableServicePersistenceTest.java
similarity index 85%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServicePersistenceTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/TableServicePersistenceTest.java
index 41e131da8b..503a4be8d3 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServicePersistenceTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/TableServicePersistenceTest.java
@@ -1,24 +1,24 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.table.CreateTableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.CreateTableColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.CreateTableConstraintsDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumn;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnType;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.foreignKey.ForeignKey;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.primaryKey.PrimaryKey;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.unique.Unique;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.DataServiceGateway;
-import at.tuwien.gateway.SearchServiceGateway;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.repository.LicenseRepository;
-import at.tuwien.repository.UserRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.CreateTableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.CreateTableColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.CreateTableConstraintsDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumn;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.foreignKey.ForeignKey;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.primaryKey.PrimaryKey;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.unique.Unique;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.DataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.SearchServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.repository.ContainerRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.LicenseRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.UserRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -42,7 +42,7 @@ import static org.mockito.Mockito.*;
 @SpringBootTest
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
 @ExtendWith(SpringExtension.class)
-public class TableServicePersistenceTest extends AbstractUnitTest {
+public class TableServicePersistenceTest extends BaseTest {
 
     @MockBean
     private SearchServiceGateway searchServiceGateway;
@@ -70,7 +70,6 @@ public class TableServicePersistenceTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() {
-        genesis();
         /* metadata database */
         licenseRepository.save(LICENSE_1);
         userRepository.saveAll(List.of(USER_1, USER_2, USER_3));
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/TableServiceUnitTest.java
similarity index 91%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServiceUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/TableServiceUnitTest.java
index 0748065d07..56df16cf8c 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/TableServiceUnitTest.java
@@ -1,28 +1,27 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.table.CreateTableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableStatisticDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnStatisticDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.CreateTableColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.ColumnSemanticsUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.CreateTableConstraintsDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.CreateForeignKeyDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.ColumnEnum;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.ColumnSet;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumn;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnType;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.Constraints;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.DataServiceGateway;
-import at.tuwien.gateway.SearchServiceGateway;
-import at.tuwien.repository.DatabaseRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.CreateTableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableStatisticDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnStatisticDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.CreateTableColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.ColumnSemanticsUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.CreateTableConstraintsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.CreateForeignKeyDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.ColumnEnum;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.ColumnSet;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumn;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.Constraints;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.DataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.SearchServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -42,7 +41,7 @@ import static org.mockito.Mockito.*;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class TableServiceUnitTest extends AbstractUnitTest {
+public class TableServiceUnitTest extends BaseTest {
 
     @MockBean
     private DatabaseRepository databaseRepository;
@@ -68,11 +67,6 @@ public class TableServiceUnitTest extends AbstractUnitTest {
     @Autowired
     private TableService tableService;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void findById_succeeds() throws TableNotFoundException, DatabaseNotFoundException {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UnitServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/UnitServiceUnitTest.java
similarity index 79%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UnitServiceUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/UnitServiceUnitTest.java
index d76b26f904..e8e73fca32 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UnitServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/UnitServiceUnitTest.java
@@ -1,11 +1,10 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.tuwien.repository.UnitRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnUnit;
-import at.ac.tuwien.ifs.dbrepo.exception.UnitNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnUnit;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UnitNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.repository.UnitRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,7 +23,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class UnitServiceUnitTest extends AbstractUnitTest {
+public class UnitServiceUnitTest extends BaseTest {
 
     @MockBean
     private UnitRepository unitRepository;
@@ -32,11 +31,6 @@ public class UnitServiceUnitTest extends AbstractUnitTest {
     @Autowired
     private UnitService unitService;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     @Transactional
     public void findAll_succeeds() {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServiceIntegrationTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/UserServiceIntegrationTest.java
similarity index 77%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServiceIntegrationTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/UserServiceIntegrationTest.java
index 0d498c989c..9311d0dd34 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServiceIntegrationTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/UserServiceIntegrationTest.java
@@ -1,12 +1,11 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.UserNotFoundException;
-import at.tuwien.gateway.KeycloakGateway;
-import at.tuwien.repository.UserRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.tuwien.utils.KeycloakUtils;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UserNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.repository.UserRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.utils.KeycloakUtils;
 import dasniko.testcontainers.keycloak.KeycloakContainer;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
@@ -14,7 +13,6 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.test.context.DynamicPropertyRegistry;
 import org.springframework.test.context.DynamicPropertySource;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
@@ -22,17 +20,14 @@ import org.testcontainers.images.PullPolicy;
 import org.testcontainers.junit.jupiter.Container;
 import org.testcontainers.junit.jupiter.Testcontainers;
 
-import java.util.List;
-import java.util.Optional;
-
-import static org.junit.jupiter.api.Assertions.*;
-import static org.mockito.Mockito.*;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 @Log4j2
 @Testcontainers
 @ExtendWith(SpringExtension.class)
 @SpringBootTest
-public class UserServiceIntegrationTest extends AbstractUnitTest {
+public class UserServiceIntegrationTest extends BaseTest {
 
     @Autowired
     private UserRepository userRepository;
@@ -45,7 +40,6 @@ public class UserServiceIntegrationTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() {
-        genesis();
         /* keycloak */
         userRepository.deleteAll();
         keycloakUtils.deleteUser(USER_1_USERNAME);
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/UserServicePersistenceTest.java
similarity index 84%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServicePersistenceTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/UserServicePersistenceTest.java
index 8a0f771fd3..cb4e873ac9 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServicePersistenceTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/UserServicePersistenceTest.java
@@ -1,12 +1,12 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.api.user.UserUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.UserNotFoundException;
-import at.tuwien.gateway.KeycloakGateway;
-import at.tuwien.repository.UserRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UserNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.gateway.KeycloakGateway;
+import at.ac.tuwien.ifs.dbrepo.repository.UserRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -26,7 +26,7 @@ import static org.mockito.Mockito.doNothing;
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class UserServicePersistenceTest extends AbstractUnitTest {
+public class UserServicePersistenceTest extends BaseTest {
 
     @Autowired
     private UserRepository userRepository;
@@ -39,7 +39,6 @@ public class UserServicePersistenceTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() {
-        genesis();
         /* metadata database */
         userRepository.saveAll(List.of(USER_1, USER_LOCAL));
     }
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/UserServiceUnitTest.java
similarity index 81%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServiceUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/UserServiceUnitTest.java
index 31977d53e4..8a6a29400b 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/UserServiceUnitTest.java
@@ -1,13 +1,12 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.api.user.UserUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.UserNotFoundException;
-import at.tuwien.gateway.KeycloakGateway;
-import at.tuwien.repository.UserRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import org.junit.jupiter.api.BeforeEach;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UserNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.gateway.KeycloakGateway;
+import at.ac.tuwien.ifs.dbrepo.repository.UserRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -25,7 +24,7 @@ import static org.mockito.Mockito.*;
 
 @ExtendWith(SpringExtension.class)
 @SpringBootTest
-public class UserServiceUnitTest extends AbstractUnitTest {
+public class UserServiceUnitTest extends BaseTest {
 
     @MockBean
     private UserRepository userRepository;
@@ -36,11 +35,6 @@ public class UserServiceUnitTest extends AbstractUnitTest {
     @Autowired
     private UserService userService;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void findByUsername_succeeds() throws UserNotFoundException {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ViewServicePersistenceTest.java
similarity index 78%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServicePersistenceTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ViewServicePersistenceTest.java
index 1980117bf1..33cc7db8a4 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServicePersistenceTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ViewServicePersistenceTest.java
@@ -1,16 +1,15 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.View;
-import at.ac.tuwien.ifs.dbrepo.entity.database.ViewColumn;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.DataServiceGateway;
-import at.tuwien.gateway.SearchServiceGateway;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.repository.LicenseRepository;
-import at.tuwien.repository.UserRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.View;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.DataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.SearchServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.repository.ContainerRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.LicenseRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.UserRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Disabled;
@@ -35,7 +34,7 @@ import static org.mockito.Mockito.when;
 @Disabled("CI/CD")
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
 @ExtendWith(SpringExtension.class)
-public class ViewServicePersistenceTest extends AbstractUnitTest {
+public class ViewServicePersistenceTest extends BaseTest {
 
     @Autowired
     private UserRepository userRepository;
@@ -60,7 +59,6 @@ public class ViewServicePersistenceTest extends AbstractUnitTest {
 
     @BeforeEach
     public void beforeEach() {
-        genesis();
         /* metadata database */
         licenseRepository.save(LICENSE_1);
         userRepository.saveAll(List.of(USER_1, USER_2, USER_3));
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ViewServiceUnitTest.java
similarity index 89%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServiceUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ViewServiceUnitTest.java
index 4a3225e595..a50b7ca339 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/ViewServiceUnitTest.java
@@ -1,15 +1,14 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.CreateViewDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.View;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.DataServiceGateway;
-import at.tuwien.gateway.SearchServiceGateway;
-import at.tuwien.repository.DatabaseRepository;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.CreateViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.View;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.DataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.SearchServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -29,7 +28,7 @@ import static org.mockito.Mockito.*;
 @Testcontainers
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class ViewServiceUnitTest extends AbstractUnitTest {
+public class ViewServiceUnitTest extends BaseTest {
 
     @MockBean
     private DataServiceGateway dataServiceGateway;
@@ -43,11 +42,6 @@ public class ViewServiceUnitTest extends AbstractUnitTest {
     @Autowired
     private ViewService viewService;
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void create_succeeds() throws MalformedException, DataServiceException, DataServiceConnectionException,
             DatabaseNotFoundException, SearchServiceException, SearchServiceConnectionException, TableNotFoundException,
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/utils/AmqpUtils.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/AmqpUtils.java
similarity index 98%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/utils/AmqpUtils.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/AmqpUtils.java
index 5a9430da8f..09017252d8 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/utils/AmqpUtils.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/AmqpUtils.java
@@ -1,7 +1,7 @@
-package at.tuwien.utils;
+package at.ac.tuwien.ifs.dbrepo.utils;
 
-import at.ac.tuwien.ifs.dbrepo.api.amqp.*;
-import at.ac.tuwien.ifs.dbrepo.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.core.api.amqp.*;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.codec.binary.Base64;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/utils/H2Utils.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/H2Utils.java
similarity index 96%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/utils/H2Utils.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/H2Utils.java
index 7c80d5274a..f10486047a 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/utils/H2Utils.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/H2Utils.java
@@ -1,4 +1,4 @@
-package at.tuwien.utils;
+package at.ac.tuwien.ifs.dbrepo.utils;
 
 import jakarta.persistence.EntityManager;
 import lombok.extern.log4j.Log4j2;
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/utils/KeycloakUtils.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/KeycloakUtils.java
similarity index 90%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/utils/KeycloakUtils.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/KeycloakUtils.java
index 5bad3fa03a..f1f4f85f70 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/utils/KeycloakUtils.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/KeycloakUtils.java
@@ -1,9 +1,9 @@
-package at.tuwien.utils;
+package at.ac.tuwien.ifs.dbrepo.utils;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.UserCreateDto;
-import at.tuwien.config.KeycloakConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.UserNotFoundException;
-import at.tuwien.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.UserCreateDto;
+import at.ac.tuwien.ifs.dbrepo.config.KeycloakConfig;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UserNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
 import jakarta.ws.rs.core.Response;
 import lombok.extern.log4j.Log4j2;
 import org.keycloak.admin.client.Keycloak;
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/utils/XmlUtils.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/XmlUtils.java
similarity index 96%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/utils/XmlUtils.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/XmlUtils.java
index b351d2798e..268d2c0be5 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/utils/XmlUtils.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/utils/XmlUtils.java
@@ -1,4 +1,4 @@
-package at.tuwien.utils;
+package at.ac.tuwien.ifs.dbrepo.utils;
 
 import java.io.File;
 import java.io.IOException;
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/validator/EndpointValidatorUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/validator/EndpointValidatorUnitTest.java
similarity index 95%
rename from dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/validator/EndpointValidatorUnitTest.java
rename to dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/validator/EndpointValidatorUnitTest.java
index d55f12aafe..324fa81206 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/validator/EndpointValidatorUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/validator/EndpointValidatorUnitTest.java
@@ -1,20 +1,19 @@
-package at.tuwien.validator;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.table.CreateTableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.SortType;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.CreateTableColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierSaveDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.service.AccessService;
-import at.tuwien.service.DatabaseService;
-import at.tuwien.service.TableService;
-import at.ac.tuwien.ifs.dbrepo.test.AbstractUnitTest;
-import at.tuwien.validation.EndpointValidator;
+package at.ac.tuwien.ifs.dbrepo.validator;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.CreateTableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.SortType;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.CreateTableColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierSaveDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.service.AccessService;
+import at.ac.tuwien.ifs.dbrepo.service.DatabaseService;
+import at.ac.tuwien.ifs.dbrepo.service.TableService;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
+import at.ac.tuwien.ifs.dbrepo.validation.EndpointValidator;
 import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.junit.jupiter.params.ParameterizedTest;
@@ -38,7 +37,7 @@ import static org.mockito.Mockito.when;
 @Log4j2
 @SpringBootTest
 @ExtendWith(SpringExtension.class)
-public class EndpointValidatorUnitTest extends AbstractUnitTest {
+public class EndpointValidatorUnitTest extends BaseTest {
 
     @MockBean
     private DatabaseService databaseService;
@@ -78,11 +77,6 @@ public class EndpointValidatorUnitTest extends AbstractUnitTest {
         );
     }
 
-    @BeforeEach
-    public void beforeEach() {
-        genesis();
-    }
-
     @Test
     public void validateDataParams_succeeds() throws PaginationException {
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/auth/AuthTokenFilter.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/auth/AuthTokenFilter.java
similarity index 96%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/auth/AuthTokenFilter.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/auth/AuthTokenFilter.java
index 21afd981dd..fc7d7bdaa2 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/auth/AuthTokenFilter.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/auth/AuthTokenFilter.java
@@ -1,7 +1,7 @@
-package at.tuwien.auth;
+package at.ac.tuwien.ifs.dbrepo.auth;
 
-import at.ac.tuwien.ifs.dbrepo.api.auth.RealmAccessDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDetailsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.auth.RealmAccessDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserDetailsDto;
 import com.auth0.jwt.JWT;
 import com.auth0.jwt.JWTVerifier;
 import com.auth0.jwt.algorithms.Algorithm;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/auth/BasicAuthenticationProvider.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/auth/BasicAuthenticationProvider.java
similarity index 90%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/auth/BasicAuthenticationProvider.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/auth/BasicAuthenticationProvider.java
index 66089b00b4..5ab64107cd 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/auth/BasicAuthenticationProvider.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/auth/BasicAuthenticationProvider.java
@@ -1,7 +1,7 @@
-package at.tuwien.auth;
+package at.ac.tuwien.ifs.dbrepo.auth;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
-import at.tuwien.service.CredentialService;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.service.CredentialService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.authentication.AuthenticationManager;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/auth/InternalRequestInterceptor.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/auth/InternalRequestInterceptor.java
similarity index 87%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/auth/InternalRequestInterceptor.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/auth/InternalRequestInterceptor.java
index 0e1e06d9e1..272dfda2cf 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/auth/InternalRequestInterceptor.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/auth/InternalRequestInterceptor.java
@@ -1,8 +1,8 @@
-package at.tuwien.auth;
+package at.ac.tuwien.ifs.dbrepo.auth;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
-import at.tuwien.config.GatewayConfig;
-import at.tuwien.service.CredentialService;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.config.GatewayConfig;
+import at.ac.tuwien.ifs.dbrepo.service.CredentialService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpRequest;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/CacheConfig.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/CacheConfig.java
similarity index 89%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/config/CacheConfig.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/CacheConfig.java
index 1ddee07ee2..4fd448efa2 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/CacheConfig.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/CacheConfig.java
@@ -1,6 +1,6 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
 import com.github.benmanes.caffeine.cache.Cache;
 import com.github.benmanes.caffeine.cache.Caffeine;
 import org.springframework.beans.factory.annotation.Value;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/DataCiteConfig.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/DataCiteConfig.java
similarity index 97%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/config/DataCiteConfig.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/DataCiteConfig.java
index 9667553119..1c00d625dd 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/DataCiteConfig.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/DataCiteConfig.java
@@ -1,4 +1,4 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import lombok.Getter;
 import lombok.extern.log4j.Log4j2;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/EndpointConfig.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/EndpointConfig.java
similarity index 86%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/config/EndpointConfig.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/EndpointConfig.java
index 20e2805a03..2512863082 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/EndpointConfig.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/EndpointConfig.java
@@ -1,4 +1,4 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import lombok.Getter;
 import org.springframework.beans.factory.annotation.Value;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/GatewayConfig.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/GatewayConfig.java
similarity index 94%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/config/GatewayConfig.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/GatewayConfig.java
index d76a23d050..3fe7f59c77 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/GatewayConfig.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/GatewayConfig.java
@@ -1,13 +1,12 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
-import at.tuwien.auth.InternalRequestInterceptor;
-import at.tuwien.service.CredentialService;
+import at.ac.tuwien.ifs.dbrepo.auth.InternalRequestInterceptor;
+import at.ac.tuwien.ifs.dbrepo.service.CredentialService;
 import lombok.Getter;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.*;
-import org.springframework.http.client.support.BasicAuthenticationInterceptor;
 import org.springframework.web.client.RestTemplate;
 import org.springframework.web.util.DefaultUriBuilderFactory;
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/JacksonConfig.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/JacksonConfig.java
similarity index 96%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/config/JacksonConfig.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/JacksonConfig.java
index 61e7f2b180..8df011ab76 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/JacksonConfig.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/JacksonConfig.java
@@ -1,4 +1,4 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/JenaConfig.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/JenaConfig.java
similarity index 92%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/config/JenaConfig.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/JenaConfig.java
index e9395e4470..4e1868e8b8 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/JenaConfig.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/JenaConfig.java
@@ -1,4 +1,4 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import lombok.Getter;
 import org.apache.jena.query.Dataset;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/KeycloakConfig.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/KeycloakConfig.java
similarity index 96%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/config/KeycloakConfig.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/KeycloakConfig.java
index 4b62b61dcb..34596462e7 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/KeycloakConfig.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/KeycloakConfig.java
@@ -1,4 +1,4 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import lombok.Getter;
 import org.keycloak.admin.client.Keycloak;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/MetadataConfig.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/MetadataConfig.java
similarity index 93%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/config/MetadataConfig.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/MetadataConfig.java
index d2484407ee..f79360781e 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/MetadataConfig.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/MetadataConfig.java
@@ -1,4 +1,4 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import lombok.Getter;
 import org.springframework.beans.factory.annotation.Value;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/MetricsConfig.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/MetricsConfig.java
similarity index 90%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/config/MetricsConfig.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/MetricsConfig.java
index f955451abe..8509d27c44 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/MetricsConfig.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/MetricsConfig.java
@@ -1,10 +1,10 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.repository.IdentifierRepository;
-import at.tuwien.repository.TableRepository;
-import at.tuwien.repository.ViewRepository;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.IdentifierRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.TableRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.ViewRepository;
 import io.micrometer.core.instrument.Gauge;
 import io.micrometer.core.instrument.Metrics;
 import io.micrometer.observation.ObservationRegistry;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/RabbitConfig.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/RabbitConfig.java
similarity index 93%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/config/RabbitConfig.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/RabbitConfig.java
index 0ed5001dd4..a727e972e2 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/RabbitConfig.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/RabbitConfig.java
@@ -1,4 +1,4 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import lombok.Getter;
 import lombok.extern.log4j.Log4j2;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/S3Config.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/S3Config.java
similarity index 97%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/config/S3Config.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/S3Config.java
index 6c82c29e25..6202d2b2a8 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/S3Config.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/S3Config.java
@@ -1,4 +1,4 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import lombok.Getter;
 import lombok.extern.slf4j.Slf4j;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/SecurityConfig.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/SecurityConfig.java
similarity index 91%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/config/SecurityConfig.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/SecurityConfig.java
index 03be90470f..1d08f95630 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/SecurityConfig.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/SecurityConfig.java
@@ -1,4 +1,4 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/TemplateConfig.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/TemplateConfig.java
similarity index 96%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/config/TemplateConfig.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/TemplateConfig.java
index d38f17c6cb..28c5210e29 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/TemplateConfig.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/TemplateConfig.java
@@ -1,4 +1,4 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/WebSecurityConfig.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/WebSecurityConfig.java
similarity index 95%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/config/WebSecurityConfig.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/WebSecurityConfig.java
index 2413384696..653c25c337 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/WebSecurityConfig.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/config/WebSecurityConfig.java
@@ -1,8 +1,8 @@
-package at.tuwien.config;
+package at.ac.tuwien.ifs.dbrepo.config;
 
-import at.tuwien.auth.AuthTokenFilter;
-import at.tuwien.auth.BasicAuthenticationProvider;
-import at.tuwien.service.CredentialService;
+import at.ac.tuwien.ifs.dbrepo.auth.AuthTokenFilter;
+import at.ac.tuwien.ifs.dbrepo.auth.BasicAuthenticationProvider;
+import at.ac.tuwien.ifs.dbrepo.service.CredentialService;
 import io.swagger.v3.oas.annotations.enums.SecuritySchemeType;
 import io.swagger.v3.oas.annotations.security.SecurityScheme;
 import jakarta.servlet.http.HttpServletResponse;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/BrokerServiceGateway.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/BrokerServiceGateway.java
similarity index 85%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/BrokerServiceGateway.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/BrokerServiceGateway.java
index 973864164e..44e3938980 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/BrokerServiceGateway.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/BrokerServiceGateway.java
@@ -1,8 +1,8 @@
-package at.tuwien.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.api.amqp.*;
-import at.ac.tuwien.ifs.dbrepo.api.user.ExchangeUpdatePermissionsDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.amqp.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.ExchangeUpdatePermissionsDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 
 public interface BrokerServiceGateway {
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/CrossrefGateway.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/CrossrefGateway.java
similarity index 70%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/CrossrefGateway.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/CrossrefGateway.java
index 359de85f70..07e4c5b1e2 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/CrossrefGateway.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/CrossrefGateway.java
@@ -1,7 +1,7 @@
-package at.tuwien.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.api.crossref.CrossrefDto;
-import at.ac.tuwien.ifs.dbrepo.exception.DoiNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.api.crossref.CrossrefDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DoiNotFoundException;
 
 public interface CrossrefGateway {
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/DashboardServiceGateway.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/DashboardServiceGateway.java
similarity index 79%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/DashboardServiceGateway.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/DashboardServiceGateway.java
index 768bd8066b..95df0c6548 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/DashboardServiceGateway.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/DashboardServiceGateway.java
@@ -1,12 +1,12 @@
-package at.tuwien.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.CreateDashboardDto;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.CreateDashboardResponseDto;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.PermissionTypeDto;
-import at.ac.tuwien.ifs.dbrepo.exception.DashboardServiceConnectionException;
-import at.ac.tuwien.ifs.dbrepo.exception.DashboardServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.CreateDashboardDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.CreateDashboardResponseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.PermissionTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DashboardServiceConnectionException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DashboardServiceException;
 
 public interface DashboardServiceGateway {
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/DataServiceGateway.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/DataServiceGateway.java
similarity index 91%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/DataServiceGateway.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/DataServiceGateway.java
index 8e43c5e7eb..d7d54ca8e7 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/DataServiceGateway.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/DataServiceGateway.java
@@ -1,17 +1,17 @@
-package at.tuwien.gateway;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.CreateViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.internal.CreateDatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.CreateTableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableStatisticDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.internal.UpdateUserPasswordDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+package at.ac.tuwien.ifs.dbrepo.gateway;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.CreateViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.internal.CreateDatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.CreateTableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableStatisticDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.internal.UpdateUserPasswordDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 
 import java.util.List;
 import java.util.UUID;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/KeycloakGateway.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/KeycloakGateway.java
similarity index 65%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/KeycloakGateway.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/KeycloakGateway.java
index 738af7a383..a829db05bf 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/KeycloakGateway.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/KeycloakGateway.java
@@ -1,9 +1,9 @@
-package at.tuwien.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.UserNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UserNotFoundException;
 import org.keycloak.representations.idm.UserRepresentation;
 
 import java.util.UUID;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/OrcidGateway.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/OrcidGateway.java
similarity index 69%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/OrcidGateway.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/OrcidGateway.java
index 3bca2250e2..98336290b3 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/OrcidGateway.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/OrcidGateway.java
@@ -1,7 +1,7 @@
-package at.tuwien.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.api.orcid.OrcidDto;
-import at.ac.tuwien.ifs.dbrepo.exception.OrcidNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.OrcidDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.OrcidNotFoundException;
 import org.springframework.stereotype.Service;
 
 @Service
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/RorGateway.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/RorGateway.java
similarity index 69%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/RorGateway.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/RorGateway.java
index b4208eb483..8a49aa636b 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/RorGateway.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/RorGateway.java
@@ -1,7 +1,7 @@
-package at.tuwien.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.api.ror.RorDto;
-import at.ac.tuwien.ifs.dbrepo.exception.RorNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.api.ror.RorDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.RorNotFoundException;
 
 public interface RorGateway {
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/SearchServiceGateway.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/SearchServiceGateway.java
similarity index 60%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/SearchServiceGateway.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/SearchServiceGateway.java
index 2742e3e0e5..fdf4b430fe 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/SearchServiceGateway.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/SearchServiceGateway.java
@@ -1,8 +1,8 @@
-package at.tuwien.gateway;
+package at.ac.tuwien.ifs.dbrepo.gateway;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseBriefDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 
 import java.util.UUID;
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/BrokerServiceGatewayImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/BrokerServiceGatewayImpl.java
similarity index 94%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/BrokerServiceGatewayImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/BrokerServiceGatewayImpl.java
index d99a0e015c..9c35fa4182 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/BrokerServiceGatewayImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/BrokerServiceGatewayImpl.java
@@ -1,17 +1,16 @@
-package at.tuwien.gateway.impl;
+package at.ac.tuwien.ifs.dbrepo.gateway.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.amqp.*;
-import at.ac.tuwien.ifs.dbrepo.api.user.ExchangeUpdatePermissionsDto;
-import at.tuwien.config.RabbitConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.BrokerServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.core.api.amqp.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.ExchangeUpdatePermissionsDto;
+import at.ac.tuwien.ifs.dbrepo.config.RabbitConfig;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.BrokerServiceGateway;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.http.*;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.HttpServerErrorException;
-import org.springframework.web.client.ResourceAccessException;
 import org.springframework.web.client.RestTemplate;
 
 @Slf4j
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/CrossrefGatewayImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/CrossrefGatewayImpl.java
similarity index 81%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/CrossrefGatewayImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/CrossrefGatewayImpl.java
index 099c63efba..e718c388b4 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/CrossrefGatewayImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/CrossrefGatewayImpl.java
@@ -1,18 +1,16 @@
-package at.tuwien.gateway.impl;
+package at.ac.tuwien.ifs.dbrepo.gateway.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.crossref.CrossrefDto;
-import at.tuwien.config.GatewayConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.DoiNotFoundException;
-import at.tuwien.gateway.CrossrefGateway;
+import at.ac.tuwien.ifs.dbrepo.core.api.crossref.CrossrefDto;
+import at.ac.tuwien.ifs.dbrepo.config.GatewayConfig;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DoiNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.gateway.CrossrefGateway;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.HttpServerErrorException;
-import org.springframework.web.client.ResourceAccessException;
 import org.springframework.web.client.RestTemplate;
 
 @Log4j2
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/DashboardServiceGatewayImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/DashboardServiceGatewayImpl.java
similarity index 91%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/DashboardServiceGatewayImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/DashboardServiceGatewayImpl.java
index 6be2b761ed..8f36db0f3b 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/DashboardServiceGatewayImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/DashboardServiceGatewayImpl.java
@@ -1,15 +1,15 @@
-package at.tuwien.gateway.impl;
+package at.ac.tuwien.ifs.dbrepo.gateway.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.CreateDashboardDto;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.CreateDashboardResponseDto;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.PermissionTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.UpdateDashboardAccessDto;
-import at.tuwien.config.GatewayConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.DashboardServiceConnectionException;
-import at.ac.tuwien.ifs.dbrepo.exception.DashboardServiceException;
-import at.tuwien.gateway.DashboardServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.CreateDashboardDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.CreateDashboardResponseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.PermissionTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.UpdateDashboardAccessDto;
+import at.ac.tuwien.ifs.dbrepo.config.GatewayConfig;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DashboardServiceConnectionException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DashboardServiceException;
+import at.ac.tuwien.ifs.dbrepo.gateway.DashboardServiceGateway;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/DataServiceGatewayImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/DataServiceGatewayImpl.java
similarity index 96%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/DataServiceGatewayImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/DataServiceGatewayImpl.java
index d6846ff2b6..41ab74b9cc 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/DataServiceGatewayImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/DataServiceGatewayImpl.java
@@ -1,16 +1,16 @@
-package at.tuwien.gateway.impl;
+package at.ac.tuwien.ifs.dbrepo.gateway.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.internal.CreateDatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.CreateTableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableStatisticDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.internal.UpdateUserPasswordDto;
-import at.tuwien.config.GatewayConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.DataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.internal.CreateDatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.CreateTableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableStatisticDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.internal.UpdateUserPasswordDto;
+import at.ac.tuwien.ifs.dbrepo.config.GatewayConfig;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.DataServiceGateway;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.http.HttpEntity;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/KeycloakGatewayImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/KeycloakGatewayImpl.java
similarity index 90%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/KeycloakGatewayImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/KeycloakGatewayImpl.java
index d443015141..1095f9acaa 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/KeycloakGatewayImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/KeycloakGatewayImpl.java
@@ -1,12 +1,12 @@
-package at.tuwien.gateway.impl;
+package at.ac.tuwien.ifs.dbrepo.gateway.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserUpdateDto;
-import at.tuwien.config.KeycloakConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.UserNotFoundException;
-import at.tuwien.gateway.KeycloakGateway;
-import at.tuwien.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.config.KeycloakConfig;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UserNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.gateway.KeycloakGateway;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
 import jakarta.ws.rs.ForbiddenException;
 import jakarta.ws.rs.NotAuthorizedException;
 import jakarta.ws.rs.NotFoundException;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/OrcidGatewayImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/OrcidGatewayImpl.java
similarity index 80%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/OrcidGatewayImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/OrcidGatewayImpl.java
index fe3e475a69..78751b72be 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/OrcidGatewayImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/OrcidGatewayImpl.java
@@ -1,17 +1,15 @@
-package at.tuwien.gateway.impl;
+package at.ac.tuwien.ifs.dbrepo.gateway.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.orcid.OrcidDto;
-import at.ac.tuwien.ifs.dbrepo.exception.OrcidNotFoundException;
-import at.tuwien.gateway.OrcidGateway;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.OrcidDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.OrcidNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.gateway.OrcidGateway;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.HttpServerErrorException;
-import org.springframework.web.client.ResourceAccessException;
 import org.springframework.web.client.RestTemplate;
 
 @Log4j2
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/RorGatewayImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/RorGatewayImpl.java
similarity index 81%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/RorGatewayImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/RorGatewayImpl.java
index d2ad4523e1..b8af43362d 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/RorGatewayImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/RorGatewayImpl.java
@@ -1,18 +1,16 @@
-package at.tuwien.gateway.impl;
+package at.ac.tuwien.ifs.dbrepo.gateway.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.ror.RorDto;
-import at.tuwien.config.GatewayConfig;
-import at.ac.tuwien.ifs.dbrepo.exception.RorNotFoundException;
-import at.tuwien.gateway.RorGateway;
+import at.ac.tuwien.ifs.dbrepo.core.api.ror.RorDto;
+import at.ac.tuwien.ifs.dbrepo.config.GatewayConfig;
+import at.ac.tuwien.ifs.dbrepo.core.exception.RorNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.gateway.RorGateway;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.HttpServerErrorException;
-import org.springframework.web.client.ResourceAccessException;
 import org.springframework.web.client.RestTemplate;
 
 @Log4j2
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/SearchServiceGatewayImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/SearchServiceGatewayImpl.java
similarity index 89%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/SearchServiceGatewayImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/SearchServiceGatewayImpl.java
index 13517aa073..c7d659380e 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/SearchServiceGatewayImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/gateway/impl/SearchServiceGatewayImpl.java
@@ -1,13 +1,13 @@
-package at.tuwien.gateway.impl;
+package at.ac.tuwien.ifs.dbrepo.gateway.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseBriefDto;
-import at.tuwien.config.GatewayConfig;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.exception.DatabaseNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.SearchServiceConnectionException;
-import at.ac.tuwien.ifs.dbrepo.exception.SearchServiceException;
-import at.tuwien.gateway.SearchServiceGateway;
-import at.tuwien.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseBriefDto;
+import at.ac.tuwien.ifs.dbrepo.config.GatewayConfig;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DatabaseNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.SearchServiceConnectionException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.SearchServiceException;
+import at.ac.tuwien.ifs.dbrepo.gateway.SearchServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/AccessService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/AccessService.java
similarity index 92%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/AccessService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/AccessService.java
index 559d1ff171..21f8f0444b 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/AccessService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/AccessService.java
@@ -1,10 +1,10 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 
 import java.security.Principal;
 import java.util.List;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/AuthenticationService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/AuthenticationService.java
similarity index 65%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/AuthenticationService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/AuthenticationService.java
index 0c168383a7..808c774e23 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/AuthenticationService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/AuthenticationService.java
@@ -1,8 +1,8 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.UserNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UserNotFoundException;
 
 public interface AuthenticationService {
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/BannerMessageService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/BannerMessageService.java
similarity index 81%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/BannerMessageService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/BannerMessageService.java
index e4d008d8e7..98c6b12679 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/BannerMessageService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/BannerMessageService.java
@@ -1,9 +1,9 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.maintenance.BannerMessage;
-import at.ac.tuwien.ifs.dbrepo.exception.MessageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.maintenance.BannerMessage;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MessageNotFoundException;
 
 import java.util.List;
 import java.util.UUID;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/BrokerService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/BrokerService.java
similarity index 86%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/BrokerService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/BrokerService.java
index 603f4e8816..6f9109cbe0 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/BrokerService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/BrokerService.java
@@ -1,7 +1,7 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 
 public interface BrokerService {
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ConceptService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ConceptService.java
similarity index 75%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ConceptService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ConceptService.java
index 8b7287d578..ec582b10d8 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ConceptService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ConceptService.java
@@ -1,7 +1,7 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnConcept;
-import at.ac.tuwien.ifs.dbrepo.exception.ConceptNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnConcept;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ConceptNotFoundException;
 
 import java.util.List;
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ContainerService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ContainerService.java
similarity index 78%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ContainerService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ContainerService.java
index b91d135502..fcda5ef460 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ContainerService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ContainerService.java
@@ -1,10 +1,10 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.CreateContainerDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
-import at.ac.tuwien.ifs.dbrepo.exception.ContainerAlreadyExistsException;
-import at.ac.tuwien.ifs.dbrepo.exception.ContainerNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.CreateContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.Container;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ContainerAlreadyExistsException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ContainerNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageNotFoundException;
 
 import java.util.List;
 import java.util.UUID;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/CredentialService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/CredentialService.java
similarity index 80%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/CredentialService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/CredentialService.java
index 469db41a02..4a54849006 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/CredentialService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/CredentialService.java
@@ -1,6 +1,6 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
 
 public interface CredentialService {
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/DashboardService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/DashboardService.java
similarity index 80%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/DashboardService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/DashboardService.java
index c2ca00ed41..77be6e2447 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/DashboardService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/DashboardService.java
@@ -1,11 +1,11 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.CreateDashboardResponseDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.DashboardServiceConnectionException;
-import at.ac.tuwien.ifs.dbrepo.exception.DashboardServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.CreateDashboardResponseDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DashboardServiceConnectionException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DashboardServiceException;
 
 public interface DashboardService {
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/DatabaseService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/DatabaseService.java
similarity index 95%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/DatabaseService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/DatabaseService.java
index 34dad941b9..351e383b05 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/DatabaseService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/DatabaseService.java
@@ -1,11 +1,11 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.CreateDatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseModifyVisibilityDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.CreateDatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseModifyVisibilityDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.Container;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/EntityService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/EntityService.java
similarity index 81%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/EntityService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/EntityService.java
index 76aa0dabf9..c767ad3a7b 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/EntityService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/EntityService.java
@@ -1,13 +1,13 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.semantics.EntityDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.TableColumnEntityDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumn;
-import at.ac.tuwien.ifs.dbrepo.entity.semantics.Ontology;
-import at.ac.tuwien.ifs.dbrepo.exception.MalformedException;
-import at.ac.tuwien.ifs.dbrepo.exception.OntologyNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.SemanticEntityNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.EntityDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.TableColumnEntityDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumn;
+import at.ac.tuwien.ifs.dbrepo.core.entity.semantics.Ontology;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MalformedException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.OntologyNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.SemanticEntityNotFoundException;
 
 import java.util.List;
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/IdentifierService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/IdentifierService.java
similarity index 93%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/IdentifierService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/IdentifierService.java
index bfd541fe7f..ac23dc1b4f 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/IdentifierService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/IdentifierService.java
@@ -1,13 +1,13 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.api.identifier.BibliographyTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.CreateIdentifierDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierSaveDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierTypeDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.Identifier;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.BibliographyTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.CreateIdentifierDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierSaveDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Identifier;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 import org.springframework.core.io.InputStreamResource;
 import org.springframework.stereotype.Service;
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ImageService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ImageService.java
similarity index 77%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ImageService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ImageService.java
index c732695ac7..09afe61aae 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ImageService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ImageService.java
@@ -1,11 +1,11 @@
-package at.tuwien.service;
-
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageChangeDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageCreateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.image.ContainerImage;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageAlreadyExistsException;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageInvalidException;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageNotFoundException;
+package at.ac.tuwien.ifs.dbrepo.service;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageChangeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.image.ContainerImage;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageAlreadyExistsException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageInvalidException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageNotFoundException;
 
 import java.security.Principal;
 import java.util.List;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/LicenseService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/LicenseService.java
similarity index 74%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/LicenseService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/LicenseService.java
index 72a8aa0ee0..a0854ab374 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/LicenseService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/LicenseService.java
@@ -1,7 +1,7 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.License;
-import at.ac.tuwien.ifs.dbrepo.exception.LicenseNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.License;
+import at.ac.tuwien.ifs.dbrepo.core.exception.LicenseNotFoundException;
 
 import java.util.List;
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/MetadataService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/MetadataService.java
similarity index 83%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/MetadataService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/MetadataService.java
index 656266fdbd..bbc2d2d494 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/MetadataService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/MetadataService.java
@@ -1,10 +1,10 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.user.external.ExternalMetadataDto;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.oaipmh.OaiErrorType;
-import at.tuwien.oaipmh.OaiListIdentifiersParameters;
-import at.tuwien.oaipmh.OaiRecordParameters;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.external.ExternalMetadataDto;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiErrorType;
+import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiListIdentifiersParameters;
+import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiRecordParameters;
 
 public interface MetadataService {
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/OntologyService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/OntologyService.java
similarity index 85%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/OntologyService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/OntologyService.java
index 8ddda5091a..584ab4178c 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/OntologyService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/OntologyService.java
@@ -1,9 +1,9 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.semantics.OntologyCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.OntologyModifyDto;
-import at.ac.tuwien.ifs.dbrepo.entity.semantics.Ontology;
-import at.ac.tuwien.ifs.dbrepo.exception.OntologyNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.OntologyCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.OntologyModifyDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.semantics.Ontology;
+import at.ac.tuwien.ifs.dbrepo.core.exception.OntologyNotFoundException;
 
 import java.security.Principal;
 import java.util.List;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/StorageService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/StorageService.java
similarity index 89%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/StorageService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/StorageService.java
index 0d7998418e..33a96b1296 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/StorageService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/StorageService.java
@@ -1,7 +1,7 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.exception.StorageNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.StorageUnavailableException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.StorageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.StorageUnavailableException;
 
 import java.io.InputStream;
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/TableService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/TableService.java
similarity index 93%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/TableService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/TableService.java
index ce0cd81e12..b024698362 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/TableService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/TableService.java
@@ -1,12 +1,12 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.CreateTableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.ColumnSemanticsUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumn;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.CreateTableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.ColumnSemanticsUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumn;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 
 import java.security.Principal;
 import java.util.UUID;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/UnitService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/UnitService.java
similarity index 81%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/UnitService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/UnitService.java
index 696148e581..fcf37fbe5a 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/UnitService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/UnitService.java
@@ -1,7 +1,7 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnUnit;
-import at.ac.tuwien.ifs.dbrepo.exception.UnitNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnUnit;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UnitNotFoundException;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/UserService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/UserService.java
similarity index 83%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/UserService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/UserService.java
index 6d2eb63afb..3e244e8e8b 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/UserService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/UserService.java
@@ -1,10 +1,10 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.auth.CreateUserDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.UserNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.api.auth.CreateUserDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UserNotFoundException;
 
 import java.util.List;
 import java.util.UUID;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ViewService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ViewService.java
similarity index 89%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ViewService.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ViewService.java
index d88d0d84a3..eda8cdd443 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ViewService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/ViewService.java
@@ -1,11 +1,11 @@
-package at.tuwien.service;
+package at.ac.tuwien.ifs.dbrepo.service;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.CreateViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.View;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.CreateViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.View;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
 
 import java.util.UUID;
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/AccessServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/AccessServiceImpl.java
similarity index 87%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/AccessServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/AccessServiceImpl.java
index 01cac24ee0..c1cceea979 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/AccessServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/AccessServiceImpl.java
@@ -1,16 +1,16 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.DataServiceGateway;
-import at.tuwien.gateway.SearchServiceGateway;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.service.AccessService;
-import at.tuwien.service.DatabaseService;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.DataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.SearchServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.service.AccessService;
+import at.ac.tuwien.ifs.dbrepo.service.DatabaseService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/AuthenticationServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/AuthenticationServiceImpl.java
similarity index 62%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/AuthenticationServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/AuthenticationServiceImpl.java
index 5db94a2f1a..b2b4853271 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/AuthenticationServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/AuthenticationServiceImpl.java
@@ -1,10 +1,10 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.UserNotFoundException;
-import at.tuwien.gateway.KeycloakGateway;
-import at.tuwien.service.AuthenticationService;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UserNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.gateway.KeycloakGateway;
+import at.ac.tuwien.ifs.dbrepo.service.AuthenticationService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/BannerMessageServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/BannerMessageServiceImpl.java
similarity index 82%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/BannerMessageServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/BannerMessageServiceImpl.java
index 15c56da40b..ed64c37a7e 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/BannerMessageServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/BannerMessageServiceImpl.java
@@ -1,12 +1,12 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.maintenance.BannerMessage;
-import at.ac.tuwien.ifs.dbrepo.exception.MessageNotFoundException;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.repository.BannerMessageRepository;
-import at.tuwien.service.BannerMessageService;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.maintenance.BannerMessage;
+import at.ac.tuwien.ifs.dbrepo.core.exception.MessageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.repository.BannerMessageRepository;
+import at.ac.tuwien.ifs.dbrepo.service.BannerMessageService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/BrokerServiceRabbitMqImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/BrokerServiceRabbitMqImpl.java
similarity index 88%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/BrokerServiceRabbitMqImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/BrokerServiceRabbitMqImpl.java
index c0b3eb361c..709e7cebde 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/BrokerServiceRabbitMqImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/BrokerServiceRabbitMqImpl.java
@@ -1,13 +1,13 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.amqp.GrantExchangePermissionsDto;
-import at.ac.tuwien.ifs.dbrepo.api.amqp.GrantVirtualHostPermissionsDto;
-import at.tuwien.config.RabbitConfig;
-import at.ac.tuwien.ifs.dbrepo.entity.database.AccessType;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.BrokerServiceGateway;
-import at.tuwien.service.BrokerService;
+import at.ac.tuwien.ifs.dbrepo.core.api.amqp.GrantExchangePermissionsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.amqp.GrantVirtualHostPermissionsDto;
+import at.ac.tuwien.ifs.dbrepo.config.RabbitConfig;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.AccessType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.BrokerServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.service.BrokerService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ConceptServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ConceptServiceImpl.java
similarity index 80%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ConceptServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ConceptServiceImpl.java
index e49eb155fc..93f64a16ea 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ConceptServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ConceptServiceImpl.java
@@ -1,9 +1,9 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnConcept;
-import at.ac.tuwien.ifs.dbrepo.exception.ConceptNotFoundException;
-import at.tuwien.repository.ConceptRepository;
-import at.tuwien.service.ConceptService;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnConcept;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ConceptNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.repository.ConceptRepository;
+import at.ac.tuwien.ifs.dbrepo.service.ConceptService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ContainerServiceImpl.java
similarity index 84%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ContainerServiceImpl.java
index c555f8213a..1a62466996 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ContainerServiceImpl.java
@@ -1,15 +1,15 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.CreateContainerDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
-import at.ac.tuwien.ifs.dbrepo.entity.container.image.ContainerImage;
-import at.ac.tuwien.ifs.dbrepo.exception.ContainerAlreadyExistsException;
-import at.ac.tuwien.ifs.dbrepo.exception.ContainerNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageNotFoundException;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.ImageRepository;
-import at.tuwien.service.ContainerService;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.CreateContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.Container;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.image.ContainerImage;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ContainerAlreadyExistsException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ContainerNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.repository.ContainerRepository;
+import at.ac.tuwien.ifs.dbrepo.repository.ImageRepository;
+import at.ac.tuwien.ifs.dbrepo.service.ContainerService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.dao.DataAccessException;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/CredentialServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/CredentialServiceImpl.java
similarity index 85%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/CredentialServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/CredentialServiceImpl.java
index fd43aee8db..65597ec056 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/CredentialServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/CredentialServiceImpl.java
@@ -1,8 +1,8 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.TokenDto;
-import at.tuwien.gateway.KeycloakGateway;
-import at.tuwien.service.CredentialService;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.TokenDto;
+import at.ac.tuwien.ifs.dbrepo.gateway.KeycloakGateway;
+import at.ac.tuwien.ifs.dbrepo.service.CredentialService;
 import com.github.benmanes.caffeine.cache.Cache;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DashboardServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DashboardServiceImpl.java
similarity index 71%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DashboardServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DashboardServiceImpl.java
index 5b5fcc7e6a..2b0c50ef32 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DashboardServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DashboardServiceImpl.java
@@ -1,14 +1,14 @@
-package at.tuwien.service.impl;
-
-import at.ac.tuwien.ifs.dbrepo.api.database.AccessTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.CreateDashboardResponseDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.DashboardServiceConnectionException;
-import at.ac.tuwien.ifs.dbrepo.exception.DashboardServiceException;
-import at.tuwien.gateway.DashboardServiceGateway;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.DashboardService;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.database.AccessTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.CreateDashboardResponseDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DashboardServiceConnectionException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.DashboardServiceException;
+import at.ac.tuwien.ifs.dbrepo.gateway.DashboardServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.service.DashboardService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DataCiteIdentifierServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DataCiteIdentifierServiceImpl.java
similarity index 86%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DataCiteIdentifierServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DataCiteIdentifierServiceImpl.java
index 844774e92a..0a20ac7267 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DataCiteIdentifierServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DataCiteIdentifierServiceImpl.java
@@ -1,24 +1,24 @@
-package at.tuwien.service.impl;
-
-import at.ac.tuwien.ifs.dbrepo.api.datacite.DataCiteBody;
-import at.ac.tuwien.ifs.dbrepo.api.datacite.DataCiteData;
-import at.ac.tuwien.ifs.dbrepo.api.datacite.doi.DataCiteCreateDoi;
-import at.ac.tuwien.ifs.dbrepo.api.datacite.doi.DataCiteDoi;
-import at.ac.tuwien.ifs.dbrepo.api.datacite.doi.DataCiteDoiEvent;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.BibliographyTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.CreateIdentifierDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierSaveDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierTypeDto;
-import at.tuwien.config.DataCiteConfig;
-import at.tuwien.config.EndpointConfig;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.Identifier;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.IdentifierStatusType;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.repository.IdentifierRepository;
-import at.tuwien.service.IdentifierService;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.datacite.DataCiteBody;
+import at.ac.tuwien.ifs.dbrepo.core.api.datacite.DataCiteData;
+import at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi.DataCiteCreateDoi;
+import at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi.DataCiteDoi;
+import at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi.DataCiteDoiEvent;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.BibliographyTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.CreateIdentifierDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierSaveDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierTypeDto;
+import at.ac.tuwien.ifs.dbrepo.config.DataCiteConfig;
+import at.ac.tuwien.ifs.dbrepo.config.EndpointConfig;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Identifier;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.IdentifierStatusType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.repository.IdentifierRepository;
+import at.ac.tuwien.ifs.dbrepo.service.IdentifierService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.context.annotation.Primary;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DatabaseServiceImpl.java
similarity index 90%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DatabaseServiceImpl.java
index 5ae46f9cd0..7fa1d8063c 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DatabaseServiceImpl.java
@@ -1,28 +1,28 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.CreateDatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseModifyVisibilityDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.internal.UpdateUserPasswordDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.View;
-import at.ac.tuwien.ifs.dbrepo.entity.database.ViewColumn;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumn;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.foreignKey.ForeignKey;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.foreignKey.ForeignKeyReference;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.primaryKey.PrimaryKey;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.unique.Unique;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.DataServiceGateway;
-import at.tuwien.gateway.SearchServiceGateway;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.service.DatabaseService;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.CreateDatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseModifyVisibilityDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.internal.UpdateUserPasswordDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.Container;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.View;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.ViewColumn;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumn;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.foreignKey.ForeignKey;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.foreignKey.ForeignKeyReference;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.primaryKey.PrimaryKey;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.unique.Unique;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.DataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.SearchServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.service.DatabaseService;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.lang3.RandomStringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -117,7 +117,7 @@ public class DatabaseServiceImpl implements DatabaseService {
                 .identifiers(new LinkedList<>())
                 .build();
         /* create in data database */
-        final at.ac.tuwien.ifs.dbrepo.api.database.internal.CreateDatabaseDto payload = at.ac.tuwien.ifs.dbrepo.api.database.internal.CreateDatabaseDto.builder()
+        final at.ac.tuwien.ifs.dbrepo.core.api.database.internal.CreateDatabaseDto payload = at.ac.tuwien.ifs.dbrepo.core.api.database.internal.CreateDatabaseDto.builder()
                 .containerId(data.getCid())
                 .userId(user.getId())
                 .username(user.getUsername())
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/EntityServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/EntityServiceImpl.java
similarity index 91%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/EntityServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/EntityServiceImpl.java
index f82d9a47af..60001b92ac 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/EntityServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/EntityServiceImpl.java
@@ -1,15 +1,15 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.semantics.EntityDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.TableColumnEntityDto;
-import at.tuwien.config.JenaConfig;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumn;
-import at.ac.tuwien.ifs.dbrepo.entity.semantics.Ontology;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.mapper.SparqlMapper;
-import at.tuwien.service.EntityService;
-import at.tuwien.service.OntologyService;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.EntityDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.TableColumnEntityDto;
+import at.ac.tuwien.ifs.dbrepo.config.JenaConfig;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumn;
+import at.ac.tuwien.ifs.dbrepo.core.entity.semantics.Ontology;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.mapper.SparqlMapper;
+import at.ac.tuwien.ifs.dbrepo.service.EntityService;
+import at.ac.tuwien.ifs.dbrepo.service.OntologyService;
 import lombok.extern.log4j.Log4j2;
 import org.apache.jena.query.*;
 import org.apache.jena.rdf.model.RDFNode;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/IdentifierServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/IdentifierServiceImpl.java
similarity index 92%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/IdentifierServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/IdentifierServiceImpl.java
index b818e85360..eb600fd0a3 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/IdentifierServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/IdentifierServiceImpl.java
@@ -1,25 +1,25 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.query.QueryDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.BibliographyTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.CreateIdentifierDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierSaveDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierTypeDto;
-import at.tuwien.config.MetadataConfig;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.LanguageType;
-import at.ac.tuwien.ifs.dbrepo.entity.database.View;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.Identifier;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.IdentifierStatusType;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.IdentifierTitle;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.DataServiceGateway;
-import at.tuwien.gateway.SearchServiceGateway;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.repository.IdentifierRepository;
-import at.tuwien.service.IdentifierService;
-import at.tuwien.service.ViewService;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.BibliographyTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.CreateIdentifierDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierSaveDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierTypeDto;
+import at.ac.tuwien.ifs.dbrepo.config.MetadataConfig;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.LanguageType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.View;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Identifier;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.IdentifierStatusType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.IdentifierTitle;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.DataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.SearchServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.repository.IdentifierRepository;
+import at.ac.tuwien.ifs.dbrepo.service.IdentifierService;
+import at.ac.tuwien.ifs.dbrepo.service.ViewService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.io.IOUtils;
 import org.springframework.core.io.InputStreamResource;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ImageServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ImageServiceImpl.java
similarity index 85%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ImageServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ImageServiceImpl.java
index a4ea58b80c..5e497b4b6f 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ImageServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ImageServiceImpl.java
@@ -1,14 +1,14 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageChangeDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageCreateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.image.ContainerImage;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageAlreadyExistsException;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageInvalidException;
-import at.ac.tuwien.ifs.dbrepo.exception.ImageNotFoundException;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.repository.ImageRepository;
-import at.tuwien.service.ImageService;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageChangeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.image.ContainerImage;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageAlreadyExistsException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageInvalidException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.ImageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.repository.ImageRepository;
+import at.ac.tuwien.ifs.dbrepo.service.ImageService;
 import jakarta.validation.ConstraintViolationException;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/LicenseServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/LicenseServiceImpl.java
similarity index 76%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/LicenseServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/LicenseServiceImpl.java
index 0fe72f0f57..41765fb36a 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/LicenseServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/LicenseServiceImpl.java
@@ -1,9 +1,9 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.License;
-import at.ac.tuwien.ifs.dbrepo.exception.LicenseNotFoundException;
-import at.tuwien.repository.LicenseRepository;
-import at.tuwien.service.LicenseService;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.License;
+import at.ac.tuwien.ifs.dbrepo.core.exception.LicenseNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.repository.LicenseRepository;
+import at.ac.tuwien.ifs.dbrepo.service.LicenseService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.stereotype.Service;
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/MetadataServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/MetadataServiceImpl.java
similarity index 89%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/MetadataServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/MetadataServiceImpl.java
index 4f26ebd111..cc81f80fc3 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/MetadataServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/MetadataServiceImpl.java
@@ -1,22 +1,22 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.crossref.CrossrefDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.OrcidDto;
-import at.ac.tuwien.ifs.dbrepo.api.ror.RorDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.external.ExternalMetadataDto;
-import at.tuwien.config.MetadataConfig;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.Identifier;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.CrossrefGateway;
-import at.tuwien.gateway.OrcidGateway;
-import at.tuwien.gateway.RorGateway;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.oaipmh.OaiErrorType;
-import at.tuwien.oaipmh.OaiListIdentifiersParameters;
-import at.tuwien.oaipmh.OaiRecordParameters;
-import at.tuwien.repository.IdentifierRepository;
-import at.tuwien.service.IdentifierService;
-import at.tuwien.service.MetadataService;
+import at.ac.tuwien.ifs.dbrepo.core.api.crossref.CrossrefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.OrcidDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.ror.RorDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.external.ExternalMetadataDto;
+import at.ac.tuwien.ifs.dbrepo.config.MetadataConfig;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Identifier;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.CrossrefGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.OrcidGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.RorGateway;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiErrorType;
+import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiListIdentifiersParameters;
+import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiRecordParameters;
+import at.ac.tuwien.ifs.dbrepo.repository.IdentifierRepository;
+import at.ac.tuwien.ifs.dbrepo.service.IdentifierService;
+import at.ac.tuwien.ifs.dbrepo.service.MetadataService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/OntologyServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/OntologyServiceImpl.java
similarity index 83%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/OntologyServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/OntologyServiceImpl.java
index c1f84b9c21..f779734326 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/OntologyServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/OntologyServiceImpl.java
@@ -1,13 +1,12 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.semantics.OntologyCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.OntologyModifyDto;
-import at.ac.tuwien.ifs.dbrepo.entity.semantics.Ontology;
-import at.ac.tuwien.ifs.dbrepo.exception.OntologyNotFoundException;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.mapper.SparqlMapper;
-import at.tuwien.repository.OntologyRepository;
-import at.tuwien.service.OntologyService;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.OntologyCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.OntologyModifyDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.semantics.Ontology;
+import at.ac.tuwien.ifs.dbrepo.core.exception.OntologyNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.repository.OntologyRepository;
+import at.ac.tuwien.ifs.dbrepo.service.OntologyService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -23,14 +22,12 @@ import java.util.UUID;
 @Service
 public class OntologyServiceImpl implements OntologyService {
 
-    private final SparqlMapper sparqlMapper;
     private final MetadataMapper metadataMapper;
     private final OntologyRepository ontologyRepository;
 
     @Autowired
-    public OntologyServiceImpl(SparqlMapper ontologyMapper, MetadataMapper metadataMapper,
+    public OntologyServiceImpl(MetadataMapper metadataMapper,
                                OntologyRepository ontologyRepository) {
-        this.sparqlMapper = ontologyMapper;
         this.metadataMapper = metadataMapper;
         this.ontologyRepository = ontologyRepository;
     }
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/StorageServiceS3Impl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/StorageServiceS3Impl.java
similarity index 88%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/StorageServiceS3Impl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/StorageServiceS3Impl.java
index 5c6687671d..10e04eb291 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/StorageServiceS3Impl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/StorageServiceS3Impl.java
@@ -1,9 +1,9 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.tuwien.config.S3Config;
-import at.ac.tuwien.ifs.dbrepo.exception.StorageNotFoundException;
-import at.ac.tuwien.ifs.dbrepo.exception.StorageUnavailableException;
-import at.tuwien.service.StorageService;
+import at.ac.tuwien.ifs.dbrepo.config.S3Config;
+import at.ac.tuwien.ifs.dbrepo.core.exception.StorageNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.StorageUnavailableException;
+import at.ac.tuwien.ifs.dbrepo.service.StorageService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/TableServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/TableServiceImpl.java
similarity index 92%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/TableServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/TableServiceImpl.java
index b8ee7b4288..d91ce20cb7 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/TableServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/TableServiceImpl.java
@@ -1,29 +1,32 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.CreateTableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableStatisticDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnStatisticDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.CreateTableColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.ColumnSemanticsUpdateDto;
-import at.tuwien.config.RabbitConfig;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.*;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.DataServiceGateway;
-import at.tuwien.gateway.SearchServiceGateway;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.service.*;
+import at.ac.tuwien.ifs.dbrepo.config.RabbitConfig;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.CreateTableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableStatisticDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnStatisticDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.CreateTableColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.ColumnSemanticsUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.*;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.DataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.SearchServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.service.*;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.security.Principal;
-import java.util.*;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Optional;
+import java.util.UUID;
 
 @Log4j2
 @Service
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/UnitServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/UnitServiceImpl.java
similarity index 80%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/UnitServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/UnitServiceImpl.java
index a53f5bceee..ae24d0342f 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/UnitServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/UnitServiceImpl.java
@@ -1,9 +1,9 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnUnit;
-import at.ac.tuwien.ifs.dbrepo.exception.UnitNotFoundException;
-import at.tuwien.repository.UnitRepository;
-import at.tuwien.service.UnitService;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnUnit;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UnitNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.repository.UnitRepository;
+import at.ac.tuwien.ifs.dbrepo.service.UnitService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/UserServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/UserServiceImpl.java
similarity index 86%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/UserServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/UserServiceImpl.java
index b33464dd03..f93dacc21c 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/UserServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/UserServiceImpl.java
@@ -1,13 +1,13 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.auth.CreateUserDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.AuthServiceException;
-import at.ac.tuwien.ifs.dbrepo.exception.UserNotFoundException;
-import at.tuwien.gateway.KeycloakGateway;
-import at.tuwien.repository.UserRepository;
-import at.tuwien.service.UserService;
+import at.ac.tuwien.ifs.dbrepo.core.api.auth.CreateUserDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.AuthServiceException;
+import at.ac.tuwien.ifs.dbrepo.core.exception.UserNotFoundException;
+import at.ac.tuwien.ifs.dbrepo.gateway.KeycloakGateway;
+import at.ac.tuwien.ifs.dbrepo.repository.UserRepository;
+import at.ac.tuwien.ifs.dbrepo.service.UserService;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.lang3.RandomStringUtils;
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ViewServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ViewServiceImpl.java
similarity index 87%
rename from dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ViewServiceImpl.java
rename to dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ViewServiceImpl.java
index e6d39f1288..1a243b91d0 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ViewServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/ViewServiceImpl.java
@@ -1,17 +1,17 @@
-package at.tuwien.service.impl;
+package at.ac.tuwien.ifs.dbrepo.service.impl;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.CreateViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.ViewUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.View;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.exception.*;
-import at.tuwien.gateway.DataServiceGateway;
-import at.tuwien.gateway.SearchServiceGateway;
-import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.service.ViewService;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.CreateViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.ViewUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.View;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.exception.*;
+import at.ac.tuwien.ifs.dbrepo.gateway.DataServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.gateway.SearchServiceGateway;
+import at.ac.tuwien.ifs.dbrepo.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
+import at.ac.tuwien.ifs.dbrepo.service.ViewService;
 import com.google.common.hash.Hashing;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/lib/java/dbrepo-core/pom.xml b/lib/java/dbrepo-core/pom.xml
index cb1580c93c..a6394c9187 100644
--- a/lib/java/dbrepo-core/pom.xml
+++ b/lib/java/dbrepo-core/pom.xml
@@ -36,6 +36,7 @@
         <maven.compiler.target>17</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <lombok.version>1.18.36</lombok.version>
+        <mapstruct.version>1.6.3</mapstruct.version>
         <spring-cloud.version>4.1.4</spring-cloud.version>
         <jackson-datatype.version>2.15.0</jackson-datatype.version>
         <springdoc-openapi.version>2.8.5</springdoc-openapi.version>
@@ -75,6 +76,18 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-actuator</artifactId>
         </dependency>
+        <!-- Mapping -->
+        <dependency>
+            <groupId>org.mapstruct</groupId>
+            <artifactId>mapstruct-processor</artifactId>
+            <version>${mapstruct.version}</version>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.mapstruct</groupId>
+            <artifactId>mapstruct</artifactId>
+            <version>${mapstruct.version}</version>
+        </dependency>
         <!-- Api -->
         <dependency>
             <groupId>org.projectlombok</groupId>
@@ -106,6 +119,32 @@
         </dependency>
     </dependencies>
 
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>${java.version}</source>
+                    <target>${java.version}</target>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>org.projectlombok</groupId>
+                            <artifactId>lombok</artifactId>
+                            <version>${lombok.version}</version>
+                        </path>
+                        <!-- keep this order https://stackoverflow.com/questions/47676369/mapstruct-and-lombok-not-working-together#answer-65021876 -->
+                        <path>
+                            <groupId>org.mapstruct</groupId>
+                            <artifactId>mapstruct-processor</artifactId>
+                            <version>${mapstruct.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
     <licenses>
         <license>
             <name>Apache-2.0</name>
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedSourceTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedSourceTypeDto.java
deleted file mode 100644
index 1ba420ad98..0000000000
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedSourceTypeDto.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group.summary.organization.disambiguated;
-
-public enum OrcidDisambiguatedSourceTypeDto {
-    RINGGOLD,
-    ROR
-}
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/CacheableDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/CacheableDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/CacheableDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/CacheableDto.java
index b8a273e9d0..25d248dc4f 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/CacheableDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/CacheableDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api;
+package at.ac.tuwien.ifs.dbrepo.core.api;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/ExportResourceDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/ExportResourceDto.java
similarity index 86%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/ExportResourceDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/ExportResourceDto.java
index 7bdd514672..fb7e87ec86 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/ExportResourceDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/ExportResourceDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api;
+package at.ac.tuwien.ifs.dbrepo.core.api;
 
 import lombok.*;
 import org.springframework.core.io.InputStreamResource;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/ChannelDetailsDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/ChannelDetailsDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/ChannelDetailsDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/ChannelDetailsDto.java
index c6bbe825a3..861602a156 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/ChannelDetailsDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/ChannelDetailsDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.amqp;
+package at.ac.tuwien.ifs.dbrepo.core.api.amqp;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/ConsumerDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/ConsumerDto.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/ConsumerDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/ConsumerDto.java
index cc76cb60e6..6d40bbe0ef 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/ConsumerDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/ConsumerDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.amqp;
+package at.ac.tuwien.ifs.dbrepo.core.api.amqp;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/CreateExchangeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/CreateExchangeDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/CreateExchangeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/CreateExchangeDto.java
index 627f80015d..57fccbcc2f 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/CreateExchangeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/CreateExchangeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.amqp;
+package at.ac.tuwien.ifs.dbrepo.core.api.amqp;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/CreateUserDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/CreateUserDto.java
similarity index 89%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/CreateUserDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/CreateUserDto.java
index 2d40a1cc7f..4f5171daae 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/CreateUserDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/CreateUserDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.amqp;
+package at.ac.tuwien.ifs.dbrepo.core.api.amqp;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/CreateVirtualHostDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/CreateVirtualHostDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/CreateVirtualHostDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/CreateVirtualHostDto.java
index fc8a62ee65..841d4ee836 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/CreateVirtualHostDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/CreateVirtualHostDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.amqp;
+package at.ac.tuwien.ifs.dbrepo.core.api.amqp;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/ExchangeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/ExchangeDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/ExchangeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/ExchangeDto.java
index 702d60ab52..b42bef7e89 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/ExchangeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/ExchangeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.amqp;
+package at.ac.tuwien.ifs.dbrepo.core.api.amqp;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/GrantExchangePermissionsDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/GrantExchangePermissionsDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/GrantExchangePermissionsDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/GrantExchangePermissionsDto.java
index 9abb7476ec..64bc4c1990 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/GrantExchangePermissionsDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/GrantExchangePermissionsDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.amqp;
+package at.ac.tuwien.ifs.dbrepo.core.api.amqp;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/GrantVirtualHostPermissionsDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/GrantVirtualHostPermissionsDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/GrantVirtualHostPermissionsDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/GrantVirtualHostPermissionsDto.java
index 92190e285f..a49b3b5cb2 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/GrantVirtualHostPermissionsDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/GrantVirtualHostPermissionsDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.amqp;
+package at.ac.tuwien.ifs.dbrepo.core.api.amqp;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/QueueBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/QueueBriefDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/QueueBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/QueueBriefDto.java
index 3cbfb38d7e..7e9ee27d4b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/QueueBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/QueueBriefDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.amqp;
+package at.ac.tuwien.ifs.dbrepo.core.api.amqp;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/QueueDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/QueueDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/QueueDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/QueueDto.java
index fba523416f..4ddd5e270d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/QueueDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/QueueDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.amqp;
+package at.ac.tuwien.ifs.dbrepo.core.api.amqp;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/TopicPermissionDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/TopicPermissionDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/TopicPermissionDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/TopicPermissionDto.java
index a90b4c396b..50fc100b13 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/TopicPermissionDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/TopicPermissionDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.amqp;
+package at.ac.tuwien.ifs.dbrepo.core.api.amqp;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/UserDetailsDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/UserDetailsDto.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/UserDetailsDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/UserDetailsDto.java
index 65df7d0493..07a9a1ef61 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/UserDetailsDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/UserDetailsDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.amqp;
+package at.ac.tuwien.ifs.dbrepo.core.api.amqp;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/VirtualHostPermissionDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/VirtualHostPermissionDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/VirtualHostPermissionDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/VirtualHostPermissionDto.java
index cc53833e23..0d1f1fe969 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/amqp/VirtualHostPermissionDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/amqp/VirtualHostPermissionDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.amqp;
+package at.ac.tuwien.ifs.dbrepo.core.api.amqp;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/auth/CreateUserDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/auth/CreateUserDto.java
similarity index 95%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/auth/CreateUserDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/auth/CreateUserDto.java
index 174d6fe3db..eb0f1ed91a 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/auth/CreateUserDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/auth/CreateUserDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.auth;
+package at.ac.tuwien.ifs.dbrepo.core.api.auth;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/auth/RealmAccessDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/auth/RealmAccessDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/auth/RealmAccessDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/auth/RealmAccessDto.java
index 35ab8bc159..eb308018c4 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/auth/RealmAccessDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/auth/RealmAccessDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.auth;
+package at.ac.tuwien.ifs.dbrepo.core.api.auth;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/ContainerActionTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/ContainerActionTypeDto.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/ContainerActionTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/ContainerActionTypeDto.java
index 26069b6389..42c40ab7af 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/ContainerActionTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/ContainerActionTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.container;
+package at.ac.tuwien.ifs.dbrepo.core.api.container;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/ContainerBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/ContainerBriefDto.java
similarity index 89%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/ContainerBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/ContainerBriefDto.java
index 49212a57c7..ec879665e9 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/ContainerBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/ContainerBriefDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.container;
+package at.ac.tuwien.ifs.dbrepo.core.api.container;
 
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageBriefDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/ContainerDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/ContainerDto.java
similarity index 89%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/ContainerDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/ContainerDto.java
index a53276db9e..12589bc721 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/ContainerDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/ContainerDto.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.api.container;
+package at.ac.tuwien.ifs.dbrepo.core.api.container;
 
-import at.ac.tuwien.ifs.dbrepo.api.CacheableDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.ImageDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.CacheableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageDto;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/CreateContainerDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/CreateContainerDto.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/CreateContainerDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/CreateContainerDto.java
index a837a35270..77e7b026c7 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/CreateContainerDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/CreateContainerDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.container;
+package at.ac.tuwien.ifs.dbrepo.core.api.container;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/DataTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/DataTypeDto.java
similarity index 97%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/DataTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/DataTypeDto.java
index 9aed748c68..3455de43a9 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/DataTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/DataTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.container.image;
+package at.ac.tuwien.ifs.dbrepo.core.api.container.image;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/ImageBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/ImageBriefDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/ImageBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/ImageBriefDto.java
index 629ba34d40..7239fdcfb7 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/ImageBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/ImageBriefDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.container.image;
+package at.ac.tuwien.ifs.dbrepo.core.api.container.image;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/ImageChangeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/ImageChangeDto.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/ImageChangeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/ImageChangeDto.java
index b262ac33c8..0a73939c23 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/ImageChangeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/ImageChangeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.container.image;
+package at.ac.tuwien.ifs.dbrepo.core.api.container.image;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/ImageCreateDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/ImageCreateDto.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/ImageCreateDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/ImageCreateDto.java
index f698bec7d9..cce376f5b7 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/ImageCreateDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/ImageCreateDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.container.image;
+package at.ac.tuwien.ifs.dbrepo.core.api.container.image;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.Parameter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/ImageDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/ImageDto.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/ImageDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/ImageDto.java
index 6dc178c3c2..9d4049a173 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/ImageDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/ImageDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.container.image;
+package at.ac.tuwien.ifs.dbrepo.core.api.container.image;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/OperatorDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/OperatorDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/OperatorDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/OperatorDto.java
index 3585383892..38f39f5d82 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/container/image/OperatorDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/container/image/OperatorDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.container.image;
+package at.ac.tuwien.ifs.dbrepo.core.api.container.image;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/crossref/CrossrefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/crossref/CrossrefDto.java
similarity index 74%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/crossref/CrossrefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/crossref/CrossrefDto.java
index eff98449e3..cd4afbb463 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/crossref/CrossrefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/crossref/CrossrefDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.crossref;
+package at.ac.tuwien.ifs.dbrepo.core.api.crossref;
 
-import at.ac.tuwien.ifs.dbrepo.api.crossref.label.CrossrefPrefLabelDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.crossref.label.CrossrefPrefLabelDto;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/crossref/form/CrossrefLiteralFormDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/crossref/form/CrossrefLiteralFormDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/crossref/form/CrossrefLiteralFormDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/crossref/form/CrossrefLiteralFormDto.java
index 80c6b75d2c..060cb73885 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/crossref/form/CrossrefLiteralFormDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/crossref/form/CrossrefLiteralFormDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.crossref.form;
+package at.ac.tuwien.ifs.dbrepo.core.api.crossref.form;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/crossref/label/CrossrefLabelDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/crossref/label/CrossrefLabelDto.java
similarity index 75%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/crossref/label/CrossrefLabelDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/crossref/label/CrossrefLabelDto.java
index c8c971ede3..5ee179f328 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/crossref/label/CrossrefLabelDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/crossref/label/CrossrefLabelDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.crossref.label;
+package at.ac.tuwien.ifs.dbrepo.core.api.crossref.label;
 
-import at.ac.tuwien.ifs.dbrepo.api.crossref.form.CrossrefLiteralFormDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.crossref.form.CrossrefLiteralFormDto;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/crossref/label/CrossrefPrefLabelDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/crossref/label/CrossrefPrefLabelDto.java
similarity index 85%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/crossref/label/CrossrefPrefLabelDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/crossref/label/CrossrefPrefLabelDto.java
index 04b04f5e23..b64b9785f3 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/crossref/label/CrossrefPrefLabelDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/crossref/label/CrossrefPrefLabelDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.crossref.label;
+package at.ac.tuwien.ifs.dbrepo.core.api.crossref.label;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/AccessTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/AccessTypeDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/AccessTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/AccessTypeDto.java
index bb0c03c752..fb3f34957e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/AccessTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/AccessTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/CreateAccessDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/CreateAccessDto.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/CreateAccessDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/CreateAccessDto.java
index 67e2e0bb82..1ba876cc5e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/CreateAccessDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/CreateAccessDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/CreateDatabaseDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/CreateDatabaseDto.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/CreateDatabaseDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/CreateDatabaseDto.java
index 1cd51efd83..9c9e708262 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/CreateDatabaseDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/CreateDatabaseDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/CreateViewDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/CreateViewDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/CreateViewDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/CreateViewDto.java
index 5631ff2445..9ab87017a6 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/CreateViewDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/CreateViewDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.query.SubsetDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.SubsetDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseAccessDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseAccessDto.java
similarity index 84%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseAccessDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseAccessDto.java
index 161c1fe9db..22a423f7d8 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseAccessDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseAccessDto.java
@@ -1,7 +1,7 @@
 
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseBriefDto.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseBriefDto.java
index 1c549f1f7f..f84649ff63 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseBriefDto.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseDto.java
similarity index 86%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseDto.java
index bc7df3152a..0a8ca41eb5 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseDto.java
@@ -1,11 +1,10 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
-
-import at.ac.tuwien.ifs.dbrepo.api.CacheableDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.CacheableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseModifyDashboardDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseModifyDashboardDto.java
similarity index 85%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseModifyDashboardDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseModifyDashboardDto.java
index 599af4ef39..f4375d2ea3 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseModifyDashboardDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseModifyDashboardDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseModifyImageDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseModifyImageDto.java
similarity index 82%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseModifyImageDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseModifyImageDto.java
index 95235c5512..f8907baa3a 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseModifyImageDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseModifyImageDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseModifyVisibilityDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseModifyVisibilityDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseModifyVisibilityDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseModifyVisibilityDto.java
index 3ed9a0ace5..818f546108 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseModifyVisibilityDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseModifyVisibilityDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseTransferDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseTransferDto.java
similarity index 85%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseTransferDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseTransferDto.java
index 65deb81519..f0ba38ebaf 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/DatabaseTransferDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/DatabaseTransferDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/LanguageTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/LanguageTypeDto.java
similarity index 99%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/LanguageTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/LanguageTypeDto.java
index 7e586e9ed3..c585a5f1ba 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/LanguageTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/LanguageTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/LicenseDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/LicenseDto.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/LicenseDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/LicenseDto.java
index 993701dc2d..eada3be8ea 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/LicenseDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/LicenseDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/LoadFileDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/LoadFileDto.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/LoadFileDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/LoadFileDto.java
index 2cd4aadafc..d5c4242574 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/LoadFileDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/LoadFileDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/ViewBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/ViewBriefDto.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/ViewBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/ViewBriefDto.java
index cd75aa8b6a..046aa97d10 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/ViewBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/ViewBriefDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/ViewColumnDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/ViewColumnDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/ViewColumnDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/ViewColumnDto.java
index 126244b92e..c8744f4238 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/ViewColumnDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/ViewColumnDto.java
@@ -1,8 +1,8 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.EnumDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.SetDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.EnumDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.SetDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/ViewDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/ViewDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/ViewDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/ViewDto.java
index 52612d3c02..76cf990c06 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/ViewDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/ViewDto.java
@@ -1,8 +1,8 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
-import at.ac.tuwien.ifs.dbrepo.api.CacheableDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.CacheableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/ViewUpdateDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/ViewUpdateDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/ViewUpdateDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/ViewUpdateDto.java
index 9322d99bc2..01badab273 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/ViewUpdateDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/ViewUpdateDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database;
+package at.ac.tuwien.ifs.dbrepo.core.api.database;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/internal/CreateDatabaseDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/internal/CreateDatabaseDto.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/internal/CreateDatabaseDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/internal/CreateDatabaseDto.java
index d7e4619d30..476adbbd9a 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/internal/CreateDatabaseDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/internal/CreateDatabaseDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.internal;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.internal;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/ExecuteStatementDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/ExecuteStatementDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/ExecuteStatementDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/ExecuteStatementDto.java
index afdb671952..6973486230 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/ExecuteStatementDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/ExecuteStatementDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.query;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.query;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/ExportDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/ExportDto.java
similarity index 86%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/ExportDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/ExportDto.java
index cf558ea082..35f4fff473 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/ExportDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/ExportDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.query;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.query;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/FilterDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/FilterDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/FilterDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/FilterDto.java
index d77d32ce4e..2e6b1a03d7 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/FilterDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/FilterDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.query;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.query;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/FilterTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/FilterTypeDto.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/FilterTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/FilterTypeDto.java
index faa7409ee9..aab604117c 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/FilterTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/FilterTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.query;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.query;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/ImportDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/ImportDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/ImportDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/ImportDto.java
index 932f25b4f9..4a0a04abd6 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/ImportDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/ImportDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.query;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.query;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/OrderDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/OrderDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/OrderDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/OrderDto.java
index 98ca6f1704..1412edf16a 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/OrderDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/OrderDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.query;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.query;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/OrderTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/OrderTypeDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/OrderTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/OrderTypeDto.java
index 8f7de6ccb8..a7afcbcd5e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/OrderTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/OrderTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.query;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.query;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/QueryBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/QueryBriefDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/QueryBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/QueryBriefDto.java
index 6c7bfad204..24e3f60130 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/QueryBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/QueryBriefDto.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.query;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.query;
 
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/QueryDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/QueryDto.java
similarity index 89%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/QueryDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/QueryDto.java
index dc4d653185..58568fa4c3 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/QueryDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/QueryDto.java
@@ -1,8 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.query;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.query;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/QueryPersistDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/QueryPersistDto.java
similarity index 86%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/QueryPersistDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/QueryPersistDto.java
index 059cf20c7f..90012d7a03 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/QueryPersistDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/QueryPersistDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.query;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.query;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/QueryTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/QueryTypeDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/QueryTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/QueryTypeDto.java
index bee4673c9a..e19dccf096 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/QueryTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/QueryTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.query;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.query;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/SaveStatementDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/SaveStatementDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/SaveStatementDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/SaveStatementDto.java
index 952219e82e..aaefacf797 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/SaveStatementDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/SaveStatementDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.query;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.query;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/SubsetDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/SubsetDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/SubsetDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/SubsetDto.java
index 599a686746..0b5975e05d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/query/SubsetDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/query/SubsetDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.query;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.query;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/CreateTableDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/CreateTableDto.java
similarity index 81%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/CreateTableDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/CreateTableDto.java
index 0ef3d5f74b..af2c3a80cc 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/CreateTableDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/CreateTableDto.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.CreateTableColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.CreateTableConstraintsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.CreateTableColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.CreateTableConstraintsDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/HistoryEventTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/HistoryEventTypeDto.java
similarity index 89%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/HistoryEventTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/HistoryEventTypeDto.java
index 901726b77f..90a216c124 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/HistoryEventTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/HistoryEventTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/SortType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/SortType.java
similarity index 85%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/SortType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/SortType.java
index fbc0934f81..841587f4b0 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/SortType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/SortType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/SortTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/SortTypeDto.java
similarity index 80%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/SortTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/SortTypeDto.java
index 208786dccf..0a7cbeeb4c 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/SortTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/SortTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableBriefDto.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableBriefDto.java
index 4959eb668d..92540c2051 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableBriefDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableCreateRawQuery.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableCreateRawQuery.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableCreateRawQuery.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableCreateRawQuery.java
index 8ecf083e24..8ba7b7ab62 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableCreateRawQuery.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableCreateRawQuery.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table;
 
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableDto.java
similarity index 84%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableDto.java
index 215c8e3a74..9cb2848e5b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableDto.java
@@ -1,13 +1,10 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table;
-
-import at.ac.tuwien.ifs.dbrepo.api.CacheableDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.DatabaseDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.ConstraintsDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.IdentifierDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.CacheableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.ConstraintsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableHistoryDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableHistoryDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableHistoryDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableHistoryDto.java
index a20ef71757..3b6d8df35f 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableHistoryDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableHistoryDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableInsertRawQuery.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableInsertRawQuery.java
similarity index 85%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableInsertRawQuery.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableInsertRawQuery.java
index c81fbea83e..caab639414 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableInsertRawQuery.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableInsertRawQuery.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table;
 
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableStatisticDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableStatisticDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableStatisticDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableStatisticDto.java
index 7f0ed7a4e2..1b728df71c 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableStatisticDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableStatisticDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnStatisticDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnStatisticDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableUpdateDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableUpdateDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableUpdateDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableUpdateDto.java
index ce3fcfd89d..f4fd37a374 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TableUpdateDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TableUpdateDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TupleDeleteDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TupleDeleteDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TupleDeleteDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TupleDeleteDto.java
index 5495106e70..78d04b5361 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TupleDeleteDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TupleDeleteDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TupleDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TupleDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TupleDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TupleDto.java
index 6a2c9f0fcc..db1d917709 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TupleDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TupleDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TupleUpdateDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TupleUpdateDto.java
similarity index 89%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TupleUpdateDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TupleUpdateDto.java
index ce3b7fe2c5..eac3886de2 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/TupleUpdateDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/TupleUpdateDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/ColumnBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/ColumnBriefDto.java
similarity index 95%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/ColumnBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/ColumnBriefDto.java
index bb60b9bfc2..8ebc4f9e38 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/ColumnBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/ColumnBriefDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/ColumnDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/ColumnDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/ColumnDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/ColumnDto.java
index 8e772433bc..d5c7343694 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/ColumnDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/ColumnDto.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.ConceptBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.UnitBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.ConceptBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.UnitBriefDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/ColumnStatisticDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/ColumnStatisticDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/ColumnStatisticDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/ColumnStatisticDto.java
index d0101cac2b..01f3e2b652 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/ColumnStatisticDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/ColumnStatisticDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/ColumnTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/ColumnTypeDto.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/ColumnTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/ColumnTypeDto.java
index 8cbb621e6d..fbe35b9c64 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/ColumnTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/ColumnTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/CreateTableColumnDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/CreateTableColumnDto.java
similarity index 95%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/CreateTableColumnDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/CreateTableColumnDto.java
index 02a9665da8..b26ca9582a 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/CreateTableColumnDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/CreateTableColumnDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/EnumDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/EnumDto.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/EnumDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/EnumDto.java
index c2cc0f7466..3a5889324f 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/EnumDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/EnumDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/SetDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/SetDto.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/SetDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/SetDto.java
index 084452d594..cd0aa8c921 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/SetDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/SetDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/SiUnitDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/SiUnitDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/SiUnitDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/SiUnitDto.java
index 25949b8921..2de0da75ae 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/SiUnitDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/SiUnitDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/ColumnSemanticsUpdateDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/ColumnSemanticsUpdateDto.java
similarity index 83%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/ColumnSemanticsUpdateDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/ColumnSemanticsUpdateDto.java
index f9c298b4e7..26d921cf88 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/ColumnSemanticsUpdateDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/ColumnSemanticsUpdateDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/ConceptBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/ConceptBriefDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/ConceptBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/ConceptBriefDto.java
index 04ef35ac85..0540dfbba4 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/ConceptBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/ConceptBriefDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/ConceptDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/ConceptDto.java
similarity index 80%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/ConceptDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/ConceptDto.java
index 1dc91c9e69..29d906e90f 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/ConceptDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/ConceptDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnBriefDto;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/ConceptSaveDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/ConceptSaveDto.java
similarity index 83%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/ConceptSaveDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/ConceptSaveDto.java
index 05de242e54..bdfebd73ff 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/ConceptSaveDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/ConceptSaveDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts;
 
 import jakarta.validation.constraints.NotBlank;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/UnitBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/UnitBriefDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/UnitBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/UnitBriefDto.java
index e5094b7d6e..47658b49cc 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/UnitBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/UnitBriefDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/UnitDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/UnitDto.java
similarity index 80%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/UnitDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/UnitDto.java
index 92f9564e96..6af216e067 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/UnitDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/UnitDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnBriefDto;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/UnitSaveDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/UnitSaveDto.java
similarity index 83%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/UnitSaveDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/UnitSaveDto.java
index 9b4f4c7f85..7a13c01521 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/columns/concepts/UnitSaveDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/columns/concepts/UnitSaveDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts;
 
 import jakarta.validation.constraints.NotBlank;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/ConstraintsDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/ConstraintsDto.java
similarity index 64%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/ConstraintsDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/ConstraintsDto.java
index 95ba9ad99a..35648bd768 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/ConstraintsDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/ConstraintsDto.java
@@ -1,8 +1,8 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.constraints;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.ForeignKeyDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.primary.PrimaryKeyDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.unique.UniqueDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.ForeignKeyDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.primary.PrimaryKeyDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.unique.UniqueDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/CreateTableConstraintsDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/CreateTableConstraintsDto.java
similarity index 79%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/CreateTableConstraintsDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/CreateTableConstraintsDto.java
index 46ebaf1c0b..b2bf3ed732 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/CreateTableConstraintsDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/CreateTableConstraintsDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.constraints;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.CreateForeignKeyDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.CreateForeignKeyDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/CreateForeignKeyDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/CreateForeignKeyDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/CreateForeignKeyDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/CreateForeignKeyDto.java
index 896d0d4058..cfbba36281 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/CreateForeignKeyDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/CreateForeignKeyDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/ForeignKeyBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/ForeignKeyBriefDto.java
similarity index 81%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/ForeignKeyBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/ForeignKeyBriefDto.java
index 5ea08a414c..307d57af01 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/ForeignKeyBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/ForeignKeyBriefDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/ForeignKeyDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/ForeignKeyDto.java
similarity index 78%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/ForeignKeyDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/ForeignKeyDto.java
index 8e7c54414d..625156027a 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/ForeignKeyDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/ForeignKeyDto.java
@@ -1,8 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableBriefDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/ForeignKeyReferenceDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/ForeignKeyReferenceDto.java
similarity index 81%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/ForeignKeyReferenceDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/ForeignKeyReferenceDto.java
index 7248ce52fc..4beab3e1ee 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/ForeignKeyReferenceDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/ForeignKeyReferenceDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnBriefDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/ReferenceTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/ReferenceTypeDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/ReferenceTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/ReferenceTypeDto.java
index 2e80aa43bc..a246740718 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/foreign/ReferenceTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/foreign/ReferenceTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/primary/PrimaryKeyDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/primary/PrimaryKeyDto.java
similarity index 68%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/primary/PrimaryKeyDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/primary/PrimaryKeyDto.java
index 48299470b1..74d55ead18 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/primary/PrimaryKeyDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/primary/PrimaryKeyDto.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.primary;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.primary;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnBriefDto;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/unique/UniqueDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/unique/UniqueDto.java
similarity index 72%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/unique/UniqueDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/unique/UniqueDto.java
index de5572e25f..6f1c613779 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/constraints/unique/UniqueDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/constraints/unique/UniqueDto.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.unique;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.unique;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.TableBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.ColumnBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.ColumnBriefDto;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/internal/TableCreateDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/internal/TableCreateDto.java
similarity index 80%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/internal/TableCreateDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/internal/TableCreateDto.java
index 1e2509ab3b..200bfef48f 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/database/table/internal/TableCreateDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/database/table/internal/TableCreateDto.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.api.database.table.internal;
+package at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.CreateTableColumnDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.CreateTableConstraintsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.CreateTableColumnDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.CreateTableConstraintsDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/DataCiteBody.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/DataCiteBody.java
similarity index 84%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/DataCiteBody.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/DataCiteBody.java
index 3e45a47543..272484e84a 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/DataCiteBody.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/DataCiteBody.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite;
 
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/DataCiteData.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/DataCiteData.java
similarity index 89%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/DataCiteData.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/DataCiteData.java
index e95a57945b..1209e36fd3 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/DataCiteData.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/DataCiteData.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/DataCiteError.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/DataCiteError.java
similarity index 84%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/DataCiteError.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/DataCiteError.java
index 09d9d4a2bd..872de43921 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/DataCiteError.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/DataCiteError.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite;
 
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteCreateDoi.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteCreateDoi.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteCreateDoi.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteCreateDoi.java
index 43afab69cd..27749b4b33 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteCreateDoi.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteCreateDoi.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite.doi;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi;
 
 import lombok.*;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoi.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoi.java
similarity index 86%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoi.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoi.java
index 6cb8189463..837f38143d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoi.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoi.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite.doi;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiCreator.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiCreator.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiCreator.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiCreator.java
index 8bac1e2505..a95a9dd121 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiCreator.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiCreator.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite.doi;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi;
 
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiCreatorAffiliation.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiCreatorAffiliation.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiCreatorAffiliation.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiCreatorAffiliation.java
index 152124fc55..b07a86eea3 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiCreatorAffiliation.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiCreatorAffiliation.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite.doi;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi;
 
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiCreatorNameIdentifier.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiCreatorNameIdentifier.java
similarity index 86%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiCreatorNameIdentifier.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiCreatorNameIdentifier.java
index 2f26c389fb..a75f6fc333 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiCreatorNameIdentifier.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiCreatorNameIdentifier.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite.doi;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi;
 
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiEvent.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiEvent.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiEvent.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiEvent.java
index 8a1381136b..5c753dd6b6 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiEvent.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiEvent.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite.doi;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiFundingReference.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiFundingReference.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiFundingReference.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiFundingReference.java
index 479fb675e3..546094183c 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiFundingReference.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiFundingReference.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite.doi;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi;
 
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiFundingReferenceIdentifier.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiFundingReferenceIdentifier.java
similarity index 85%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiFundingReferenceIdentifier.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiFundingReferenceIdentifier.java
index 0bf5da085f..00fedaa15b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiFundingReferenceIdentifier.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiFundingReferenceIdentifier.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite.doi;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi;
 
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiRelatedIdentifier.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiRelatedIdentifier.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiRelatedIdentifier.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiRelatedIdentifier.java
index 0f459d0fd4..3e246944d9 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiRelatedIdentifier.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiRelatedIdentifier.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite.doi;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi;
 
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiRights.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiRights.java
similarity index 85%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiRights.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiRights.java
index 879cff3558..0bef60756f 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiRights.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiRights.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite.doi;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi;
 
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiTitle.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiTitle.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiTitle.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiTitle.java
index 4f9531c06e..38114a19cd 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiTitle.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiTitle.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite.doi;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiTypes.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiTypes.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiTypes.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiTypes.java
index a00127dda3..c69ece3ac0 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteDoiTypes.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteDoiTypes.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite.doi;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi;
 
 import lombok.*;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteNameType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteNameType.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteNameType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteNameType.java
index 0c92807ef7..c6e551e533 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/datacite/doi/DataCiteNameType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/datacite/doi/DataCiteNameType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.datacite.doi;
+package at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/error/ApiErrorDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/error/ApiErrorDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/error/ApiErrorDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/error/ApiErrorDto.java
index 5875613749..49ea5af60f 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/error/ApiErrorDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/error/ApiErrorDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.error;
+package at.ac.tuwien.ifs.dbrepo.core.api.error;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/file/UploadResponseDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/file/UploadResponseDto.java
similarity index 86%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/file/UploadResponseDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/file/UploadResponseDto.java
index b9fda25376..6a8b9b818b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/file/UploadResponseDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/file/UploadResponseDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.file;
+package at.ac.tuwien.ifs.dbrepo.core.api.file;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/AccessTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/AccessTypeDto.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/AccessTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/AccessTypeDto.java
index e56122448d..39447d8e73 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/AccessTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/AccessTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.grafana;
+package at.ac.tuwien.ifs.dbrepo.core.api.grafana;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/CreateDashboardDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/CreateDashboardDto.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/CreateDashboardDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/CreateDashboardDto.java
index b83b0ea0ec..6b7a879b5b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/CreateDashboardDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/CreateDashboardDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.grafana;
+package at.ac.tuwien.ifs.dbrepo.core.api.grafana;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/CreateDashboardResponseDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/CreateDashboardResponseDto.java
similarity index 89%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/CreateDashboardResponseDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/CreateDashboardResponseDto.java
index a3d798120a..cc4bcfa40b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/CreateDashboardResponseDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/CreateDashboardResponseDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.grafana;
+package at.ac.tuwien.ifs.dbrepo.core.api.grafana;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/DatasourceDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/DatasourceDto.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/DatasourceDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/DatasourceDto.java
index d9b271018d..e670c99ff6 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/DatasourceDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/DatasourceDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.grafana;
+package at.ac.tuwien.ifs.dbrepo.core.api.grafana;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/DatasourceTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/DatasourceTypeDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/DatasourceTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/DatasourceTypeDto.java
index 92ae9acef5..e708ccf6a8 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/DatasourceTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/DatasourceTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.grafana;
+package at.ac.tuwien.ifs.dbrepo.core.api.grafana;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/PermissionTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/PermissionTypeDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/PermissionTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/PermissionTypeDto.java
index e8a9cb027d..f9561da037 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/PermissionTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/PermissionTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.grafana;
+package at.ac.tuwien.ifs.dbrepo.core.api.grafana;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/UpdateDashboardAccessDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/UpdateDashboardAccessDto.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/UpdateDashboardAccessDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/UpdateDashboardAccessDto.java
index c5e2b7e9e4..08d755e111 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/grafana/UpdateDashboardAccessDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/grafana/UpdateDashboardAccessDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.grafana;
+package at.ac.tuwien.ifs.dbrepo.core.api.grafana;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/AffiliationIdentifierSchemeTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/AffiliationIdentifierSchemeTypeDto.java
similarity index 67%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/AffiliationIdentifierSchemeTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/AffiliationIdentifierSchemeTypeDto.java
index 7591059990..ba881921ac 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/AffiliationIdentifierSchemeTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/AffiliationIdentifierSchemeTypeDto.java
@@ -1,5 +1,5 @@
 
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import lombok.Getter;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/BibliographyTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/BibliographyTypeDto.java
similarity index 89%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/BibliographyTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/BibliographyTypeDto.java
index 9cf8b40f53..d89935553c 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/BibliographyTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/BibliographyTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/CreateIdentifierDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/CreateIdentifierDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/CreateIdentifierDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/CreateIdentifierDto.java
index c1bdf1ed1a..286d04dc3b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/CreateIdentifierDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/CreateIdentifierDto.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.LanguageTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.LicenseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.LanguageTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.LicenseDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/CreatorBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/CreatorBriefDto.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/CreatorBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/CreatorBriefDto.java
index c57435b6dd..f5a1d94897 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/CreatorBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/CreatorBriefDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/CreatorDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/CreatorDto.java
similarity index 97%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/CreatorDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/CreatorDto.java
index bc3e577ebc..b98985c1c4 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/CreatorDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/CreatorDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/DescriptionTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/DescriptionTypeDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/DescriptionTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/DescriptionTypeDto.java
index 558b0005e8..7ddab32784 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/DescriptionTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/DescriptionTypeDto.java
@@ -1,5 +1,5 @@
 
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierBriefDto.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierBriefDto.java
index e713b3a4b9..74f60ab153 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierBriefDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierDescriptionDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierDescriptionDto.java
similarity index 86%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierDescriptionDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierDescriptionDto.java
index 45173b5031..e491fd6744 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierDescriptionDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierDescriptionDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.LanguageTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.LanguageTypeDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierDto.java
index 2ae1ed21b6..35293a6d9e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierDto.java
@@ -1,8 +1,8 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.LanguageTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.LicenseDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.LanguageTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.LicenseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserBriefDto;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierFunderDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierFunderDto.java
similarity index 95%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierFunderDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierFunderDto.java
index 4f73605540..741e1ac1ac 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierFunderDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierFunderDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierFunderTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierFunderTypeDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierFunderTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierFunderTypeDto.java
index 85e54ec1e5..6682bac43a 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierFunderTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierFunderTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierSaveDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierSaveDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierSaveDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierSaveDto.java
index 64aad71c36..2054e84012 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierSaveDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierSaveDto.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.LanguageTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.LicenseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.LanguageTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.LicenseDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierStatusTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierStatusTypeDto.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierStatusTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierStatusTypeDto.java
index 8f5a885bca..655c670a35 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierStatusTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierStatusTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierTitleDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierTitleDto.java
similarity index 85%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierTitleDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierTitleDto.java
index 790e1b93e1..829454134d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierTitleDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierTitleDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.LanguageTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.LanguageTypeDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierTypeDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierTypeDto.java
index 95e8f3e813..bca87f3cd8 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/IdentifierTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/IdentifierTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/LinksDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/LinksDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/LinksDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/LinksDto.java
index 19ebcc78a7..9b3461ea47 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/LinksDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/LinksDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/NameIdentifierSchemeTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/NameIdentifierSchemeTypeDto.java
similarity index 68%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/NameIdentifierSchemeTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/NameIdentifierSchemeTypeDto.java
index 0a7834b8e4..028abf15f2 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/NameIdentifierSchemeTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/NameIdentifierSchemeTypeDto.java
@@ -1,5 +1,5 @@
 
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import lombok.Getter;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/NameTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/NameTypeDto.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/NameTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/NameTypeDto.java
index b7f21671ba..6de88e1bb1 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/NameTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/NameTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/RelatedIdentifierDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/RelatedIdentifierDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/RelatedIdentifierDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/RelatedIdentifierDto.java
index 24c7d616ac..5aec478064 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/RelatedIdentifierDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/RelatedIdentifierDto.java
@@ -1,6 +1,5 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
-import at.ac.tuwien.ifs.dbrepo.api.user.UserDto;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/RelatedTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/RelatedTypeDto.java
similarity index 95%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/RelatedTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/RelatedTypeDto.java
index 85ce2aabc7..76fabca029 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/RelatedTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/RelatedTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/RelationTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/RelationTypeDto.java
similarity index 98%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/RelationTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/RelationTypeDto.java
index 61c635a89f..bc43f0c81e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/RelationTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/RelationTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveIdentifierCreatorDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveIdentifierCreatorDto.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveIdentifierCreatorDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveIdentifierCreatorDto.java
index ab7b02847d..ce3d92480b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveIdentifierCreatorDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveIdentifierCreatorDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveIdentifierDescriptionDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveIdentifierDescriptionDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveIdentifierDescriptionDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveIdentifierDescriptionDto.java
index a5d4157796..0abfa73128 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveIdentifierDescriptionDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveIdentifierDescriptionDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.LanguageTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.LanguageTypeDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveIdentifierFunderDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveIdentifierFunderDto.java
similarity index 95%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveIdentifierFunderDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveIdentifierFunderDto.java
index 60bf49f171..f877f45829 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveIdentifierFunderDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveIdentifierFunderDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveIdentifierTitleDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveIdentifierTitleDto.java
similarity index 86%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveIdentifierTitleDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveIdentifierTitleDto.java
index f32337f044..99a95c45d5 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveIdentifierTitleDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveIdentifierTitleDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
-import at.ac.tuwien.ifs.dbrepo.api.database.LanguageTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.LanguageTypeDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveRelatedIdentifierDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveRelatedIdentifierDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveRelatedIdentifierDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveRelatedIdentifierDto.java
index 11af0c0062..ccb47cac43 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/SaveRelatedIdentifierDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/SaveRelatedIdentifierDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/TitleTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/TitleTypeDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/TitleTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/TitleTypeDto.java
index e5a56887dc..d1d5379a7e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/TitleTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/TitleTypeDto.java
@@ -1,5 +1,5 @@
 
-package at.ac.tuwien.ifs.dbrepo.api.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/ld/LdCreatorDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/ld/LdCreatorDto.java
similarity index 89%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/ld/LdCreatorDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/ld/LdCreatorDto.java
index c8c4e0c680..8d983afb3d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/ld/LdCreatorDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/ld/LdCreatorDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier.ld;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier.ld;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/ld/LdDatasetDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/ld/LdDatasetDto.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/ld/LdDatasetDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/ld/LdDatasetDto.java
index 10119f7e71..e599f66d8c 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/identifier/ld/LdDatasetDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/identifier/ld/LdDatasetDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.identifier.ld;
+package at.ac.tuwien.ifs.dbrepo.core.api.identifier.ld;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/CredentialDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/CredentialDto.java
similarity index 89%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/CredentialDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/CredentialDto.java
index 3bf106f835..71a279519d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/CredentialDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/CredentialDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.keycloak;
+package at.ac.tuwien.ifs.dbrepo.core.api.keycloak;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/CredentialTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/CredentialTypeDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/CredentialTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/CredentialTypeDto.java
index 12fbef9fd2..71530c5edc 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/CredentialTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/CredentialTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.keycloak;
+package at.ac.tuwien.ifs.dbrepo.core.api.keycloak;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/ModifyUserDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/ModifyUserDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/ModifyUserDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/ModifyUserDto.java
index 1fc599c5d0..8ad43b34c2 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/ModifyUserDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/ModifyUserDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.keycloak;
+package at.ac.tuwien.ifs.dbrepo.core.api.keycloak;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/RoleRepresentationDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/RoleRepresentationDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/RoleRepresentationDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/RoleRepresentationDto.java
index 10ae908996..bc3137d421 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/RoleRepresentationDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/RoleRepresentationDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.keycloak;
+package at.ac.tuwien.ifs.dbrepo.core.api.keycloak;
 
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/TokenDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/TokenDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/TokenDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/TokenDto.java
index 540e795da6..8cde17a095 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/TokenDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/TokenDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.keycloak;
+package at.ac.tuwien.ifs.dbrepo.core.api.keycloak;
 
-import at.ac.tuwien.ifs.dbrepo.api.CacheableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.CacheableDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UpdateCredentialsDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UpdateCredentialsDto.java
similarity index 86%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UpdateCredentialsDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UpdateCredentialsDto.java
index 9c1eb72f84..3994b1aaab 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UpdateCredentialsDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UpdateCredentialsDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.keycloak;
+package at.ac.tuwien.ifs.dbrepo.core.api.keycloak;
 
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UserAttributesDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UserAttributesDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UserAttributesDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UserAttributesDto.java
index 49e4e6e938..0e7ab89f66 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UserAttributesDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UserAttributesDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.keycloak;
+package at.ac.tuwien.ifs.dbrepo.core.api.keycloak;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UserCreateAttributesDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UserCreateAttributesDto.java
similarity index 85%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UserCreateAttributesDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UserCreateAttributesDto.java
index 707a8caa27..e2357a4e94 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UserCreateAttributesDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UserCreateAttributesDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.keycloak;
+package at.ac.tuwien.ifs.dbrepo.core.api.keycloak;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UserCreateDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UserCreateDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UserCreateDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UserCreateDto.java
index fc339b6a4e..b8879ae24e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UserCreateDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UserCreateDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.keycloak;
+package at.ac.tuwien.ifs.dbrepo.core.api.keycloak;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UserIdAttributesDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UserIdAttributesDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UserIdAttributesDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UserIdAttributesDto.java
index ee1046d20e..0a34e5fe61 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/keycloak/UserIdAttributesDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/keycloak/UserIdAttributesDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.keycloak;
+package at.ac.tuwien.ifs.dbrepo.core.api.keycloak;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/ldap/UserDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/ldap/UserDto.java
similarity index 89%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/ldap/UserDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/ldap/UserDto.java
index e3be6be7bc..f06844ef7d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/ldap/UserDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/ldap/UserDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.ldap;
+package at.ac.tuwien.ifs.dbrepo.core.api.ldap;
 
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageBriefDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageBriefDto.java
index d99e8e7eac..72ca75913f 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageBriefDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.maintenance;
+package at.ac.tuwien.ifs.dbrepo.core.api.maintenance;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageCreateDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageCreateDto.java
similarity index 95%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageCreateDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageCreateDto.java
index 1673bbe267..3526258d80 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageCreateDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageCreateDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.maintenance;
+package at.ac.tuwien.ifs.dbrepo.core.api.maintenance;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageDto.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageDto.java
index 8ff6644fbb..9e2f094b69 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.maintenance;
+package at.ac.tuwien.ifs.dbrepo.core.api.maintenance;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageTypeDto.java
similarity index 89%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageTypeDto.java
index 75f5c6bef6..16e9b8a810 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.maintenance;
+package at.ac.tuwien.ifs.dbrepo.core.api.maintenance;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageUpdateDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageUpdateDto.java
similarity index 95%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageUpdateDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageUpdateDto.java
index a88ac45ea0..4551adaa40 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/maintenance/BannerMessageUpdateDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/maintenance/BannerMessageUpdateDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.maintenance;
+package at.ac.tuwien.ifs.dbrepo.core.api.maintenance;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/OrcidDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/OrcidDto.java
similarity index 66%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/OrcidDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/OrcidDto.java
index d75058a687..e25b7240fa 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/OrcidDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/OrcidDto.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.api.orcid;
+package at.ac.tuwien.ifs.dbrepo.core.api.orcid;
 
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.OrcidActivitiesSummaryDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.person.OrcidPersonDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.OrcidActivitiesSummaryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.person.OrcidPersonDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/OrcidActivitiesSummaryDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/OrcidActivitiesSummaryDto.java
similarity index 65%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/OrcidActivitiesSummaryDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/OrcidActivitiesSummaryDto.java
index c384e846d2..3bd62fd915 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/OrcidActivitiesSummaryDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/OrcidActivitiesSummaryDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.orcid.activities;
+package at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities;
 
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.OrcidEmploymentsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.OrcidEmploymentsDto;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/OrcidEmploymentsDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/OrcidEmploymentsDto.java
similarity index 66%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/OrcidEmploymentsDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/OrcidEmploymentsDto.java
index 823c88ae2b..fee281294b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/OrcidEmploymentsDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/OrcidEmploymentsDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments;
+package at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments;
 
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.OrcidAffiliationGroupDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.OrcidAffiliationGroupDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/OrcidAffiliationGroupDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/OrcidAffiliationGroupDto.java
similarity index 57%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/OrcidAffiliationGroupDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/OrcidAffiliationGroupDto.java
index 6882badd5f..bbda576a4a 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/OrcidAffiliationGroupDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/OrcidAffiliationGroupDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation;
+package at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation;
 
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group.OrcidEmploymentSummaryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group.OrcidEmploymentSummaryDto;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/OrcidEmploymentSummaryDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/OrcidEmploymentSummaryDto.java
similarity index 63%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/OrcidEmploymentSummaryDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/OrcidEmploymentSummaryDto.java
index 60eed0e5d2..159e83a3a5 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/OrcidEmploymentSummaryDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/OrcidEmploymentSummaryDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group;
+package at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group;
 
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group.summary.OrcidSummaryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group.summary.OrcidSummaryDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/summary/OrcidSummaryDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/summary/OrcidSummaryDto.java
similarity index 69%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/summary/OrcidSummaryDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/summary/OrcidSummaryDto.java
index 64856f355d..1dfd21700a 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/summary/OrcidSummaryDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/summary/OrcidSummaryDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group.summary;
+package at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group.summary;
 
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group.summary.organization.OrcidOrganizationDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group.summary.organization.OrcidOrganizationDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/summary/organization/OrcidOrganizationDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/summary/organization/OrcidOrganizationDto.java
similarity index 60%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/summary/organization/OrcidOrganizationDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/summary/organization/OrcidOrganizationDto.java
index d8303aef2e..7146bcf175 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/summary/organization/OrcidOrganizationDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/summary/organization/OrcidOrganizationDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group.summary.organization;
+package at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group.summary.organization;
 
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group.summary.organization.disambiguated.OrcidDisambiguatedDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group.summary.organization.disambiguated.OrcidDisambiguatedDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedDto.java
similarity index 78%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedDto.java
index e6c60e9b74..e8ea1dba39 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group.summary.organization.disambiguated;
+package at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group.summary.organization.disambiguated;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedSourceTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedSourceTypeDto.java
new file mode 100644
index 0000000000..83169ad79c
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedSourceTypeDto.java
@@ -0,0 +1,6 @@
+package at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group.summary.organization.disambiguated;
+
+public enum OrcidDisambiguatedSourceTypeDto {
+    RINGGOLD,
+    ROR
+}
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/person/OrcidPersonDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/person/OrcidPersonDto.java
similarity index 64%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/person/OrcidPersonDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/person/OrcidPersonDto.java
index 62ca759f03..afb1d6d80f 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/person/OrcidPersonDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/person/OrcidPersonDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.orcid.person;
+package at.ac.tuwien.ifs.dbrepo.core.api.orcid.person;
 
-import at.ac.tuwien.ifs.dbrepo.api.orcid.person.name.OrcidNameDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.person.name.OrcidNameDto;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/person/name/OrcidNameDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/person/name/OrcidNameDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/person/name/OrcidNameDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/person/name/OrcidNameDto.java
index 81765d9b65..2b638ff20a 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/person/name/OrcidNameDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/person/name/OrcidNameDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.orcid.person.name;
+package at.ac.tuwien.ifs.dbrepo.core.api.orcid.person.name;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/person/name/OrcidValueDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/person/name/OrcidValueDto.java
similarity index 79%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/person/name/OrcidValueDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/person/name/OrcidValueDto.java
index 9194a6247f..bcfd0d3a16 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/orcid/person/name/OrcidValueDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/orcid/person/name/OrcidValueDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.orcid.person.name;
+package at.ac.tuwien.ifs.dbrepo.core.api.orcid.person.name;
 
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/ror/RorDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/ror/RorDto.java
similarity index 85%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/ror/RorDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/ror/RorDto.java
index 22cde2d773..19776bcf09 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/ror/RorDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/ror/RorDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.ror;
+package at.ac.tuwien.ifs.dbrepo.core.api.ror;
 
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/EntityDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/EntityDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/EntityDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/EntityDto.java
index 30142ad9fc..a9f31f97f0 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/EntityDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/EntityDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.semantics;
+package at.ac.tuwien.ifs.dbrepo.core.api.semantics;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/OntologyBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/OntologyBriefDto.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/OntologyBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/OntologyBriefDto.java
index be02f87bbd..81caa34ad1 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/OntologyBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/OntologyBriefDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.semantics;
+package at.ac.tuwien.ifs.dbrepo.core.api.semantics;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/OntologyCreateDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/OntologyCreateDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/OntologyCreateDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/OntologyCreateDto.java
index 2ee4270167..aa11b34e55 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/OntologyCreateDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/OntologyCreateDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.semantics;
+package at.ac.tuwien.ifs.dbrepo.core.api.semantics;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/OntologyDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/OntologyDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/OntologyDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/OntologyDto.java
index 10d2811d70..afbb818e1b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/OntologyDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/OntologyDto.java
@@ -1,6 +1,5 @@
-package at.ac.tuwien.ifs.dbrepo.api.semantics;
+package at.ac.tuwien.ifs.dbrepo.core.api.semantics;
 
-import at.ac.tuwien.ifs.dbrepo.api.user.UserBriefDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/OntologyModifyDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/OntologyModifyDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/OntologyModifyDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/OntologyModifyDto.java
index 96219dca2b..b73891b342 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/OntologyModifyDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/OntologyModifyDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.semantics;
+package at.ac.tuwien.ifs.dbrepo.core.api.semantics;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/TableColumnEntityDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/TableColumnEntityDto.java
similarity index 95%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/TableColumnEntityDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/TableColumnEntityDto.java
index 84e39722a6..1bb401e5ca 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/semantics/TableColumnEntityDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/semantics/TableColumnEntityDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.semantics;
+package at.ac.tuwien.ifs.dbrepo.core.api.semantics;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/ExchangeUpdatePermissionsDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/ExchangeUpdatePermissionsDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/ExchangeUpdatePermissionsDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/ExchangeUpdatePermissionsDto.java
index ff3ba42b90..3b775a2318 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/ExchangeUpdatePermissionsDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/ExchangeUpdatePermissionsDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/GrantedAuthorityDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/GrantedAuthorityDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/GrantedAuthorityDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/GrantedAuthorityDto.java
index 54922ad1cb..cabc0b1d07 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/GrantedAuthorityDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/GrantedAuthorityDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/RoleTypeDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/RoleTypeDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/RoleTypeDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/RoleTypeDto.java
index b0841c3e7b..30f2cc2b8b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/RoleTypeDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/RoleTypeDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserAttributesDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserAttributesDto.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserAttributesDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserAttributesDto.java
index 4f55c0f238..b365199cec 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserAttributesDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserAttributesDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserBriefDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserBriefDto.java
similarity index 95%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserBriefDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserBriefDto.java
index 243e60d953..58a2aeab88 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserBriefDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserBriefDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserDetailsDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserDetailsDto.java
similarity index 95%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserDetailsDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserDetailsDto.java
index 4885182d45..8f4b3c3892 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserDetailsDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserDetailsDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserDto.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserDto.java
index ccbda5e4d5..c5db991725 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
-import at.ac.tuwien.ifs.dbrepo.api.CacheableDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.CacheableDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserEmailDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserEmailDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserEmailDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserEmailDto.java
index af63a34632..a8ccd56b8d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserEmailDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserEmailDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.Email;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserForgotDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserForgotDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserForgotDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserForgotDto.java
index 2e57299fc1..4895a04c70 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserForgotDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserForgotDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.Email;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserModifyPasswordDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserModifyPasswordDto.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserModifyPasswordDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserModifyPasswordDto.java
index b0dd8a0b8d..9b1e1a72cc 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserModifyPasswordDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserModifyPasswordDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserPasswordDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserPasswordDto.java
similarity index 86%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserPasswordDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserPasswordDto.java
index 5ee021f1e0..f549047c4e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserPasswordDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserPasswordDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserResetDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserResetDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserResetDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserResetDto.java
index 633f5eb6da..260b5f67ca 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserResetDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserResetDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserRolesDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserRolesDto.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserRolesDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserRolesDto.java
index ae66c63b47..8ed18d5101 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserRolesDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserRolesDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserThemeSetDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserThemeSetDto.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserThemeSetDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserThemeSetDto.java
index 66f423f9f8..ebc7292edf 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserThemeSetDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserThemeSetDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserUpdateDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserUpdateDto.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserUpdateDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserUpdateDto.java
index 9a37802b8f..099d3e7b08 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserUpdateDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserUpdateDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserUpdatePermissionsDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserUpdatePermissionsDto.java
similarity index 89%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserUpdatePermissionsDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserUpdatePermissionsDto.java
index 479dff036a..dd7742c2f5 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/UserUpdatePermissionsDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/UserUpdatePermissionsDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user;
+package at.ac.tuwien.ifs.dbrepo.core.api.user;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/external/ExternalMetadataDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/external/ExternalMetadataDto.java
similarity index 78%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/external/ExternalMetadataDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/external/ExternalMetadataDto.java
index 1382ab367b..c169e27fe5 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/external/ExternalMetadataDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/external/ExternalMetadataDto.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.api.user.external;
+package at.ac.tuwien.ifs.dbrepo.core.api.user.external;
 
-import at.ac.tuwien.ifs.dbrepo.api.user.external.affiliation.ExternalAffiliationDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.external.affiliation.ExternalAffiliationDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/external/ExternalResultType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/external/ExternalResultType.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/external/ExternalResultType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/external/ExternalResultType.java
index d897b25843..e3cb61abf1 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/external/ExternalResultType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/external/ExternalResultType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user.external;
+package at.ac.tuwien.ifs.dbrepo.core.api.user.external;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/external/affiliation/ExternalAffiliationDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/external/affiliation/ExternalAffiliationDto.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/external/affiliation/ExternalAffiliationDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/external/affiliation/ExternalAffiliationDto.java
index c354edc341..8a0a493503 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/external/affiliation/ExternalAffiliationDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/external/affiliation/ExternalAffiliationDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user.external.affiliation;
+package at.ac.tuwien.ifs.dbrepo.core.api.user.external.affiliation;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/internal/UpdateUserPasswordDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/internal/UpdateUserPasswordDto.java
similarity index 85%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/internal/UpdateUserPasswordDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/internal/UpdateUserPasswordDto.java
index f2a52d59bf..8f1cffdd62 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/api/user/internal/UpdateUserPasswordDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/api/user/internal/UpdateUserPasswordDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.api.user.internal;
+package at.ac.tuwien.ifs.dbrepo.core.api.user.internal;
 
 import jakarta.validation.constraints.NotBlank;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/container/Container.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/container/Container.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/container/Container.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/container/Container.java
index e81ef5942a..7390124cac 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/container/Container.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/container/Container.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.entity.container;
+package at.ac.tuwien.ifs.dbrepo.core.entity.container;
 
-import at.ac.tuwien.ifs.dbrepo.entity.container.image.ContainerImage;
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.image.ContainerImage;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/container/image/ContainerImage.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/container/image/ContainerImage.java
similarity index 95%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/container/image/ContainerImage.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/container/image/ContainerImage.java
index 2c0bc705c6..7629976bf1 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/container/image/ContainerImage.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/container/image/ContainerImage.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.entity.container.image;
+package at.ac.tuwien.ifs.dbrepo.core.entity.container.image;
 
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.Container;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/container/image/DataType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/container/image/DataType.java
similarity index 97%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/container/image/DataType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/container/image/DataType.java
index e623680a7c..502474bee2 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/container/image/DataType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/container/image/DataType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.container.image;
+package at.ac.tuwien.ifs.dbrepo.core.entity.container.image;
 
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/container/image/Operator.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/container/image/Operator.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/container/image/Operator.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/container/image/Operator.java
index b07c2ff714..5e629d2673 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/container/image/Operator.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/container/image/Operator.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.container.image;
+package at.ac.tuwien.ifs.dbrepo.core.entity.container.image;
 
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/AccessType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/AccessType.java
similarity index 70%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/AccessType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/AccessType.java
index 00baac6349..c17ba90844 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/AccessType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/AccessType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database;
 
 import lombok.Getter;
 import lombok.ToString;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/Database.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/Database.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/Database.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/Database.java
index 7a22597fb9..2aefc232a3 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/Database.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/Database.java
@@ -1,8 +1,8 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database;
 
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.Identifier;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.Container;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Identifier;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import jakarta.persistence.*;
 import lombok.*;
@@ -101,7 +101,7 @@ public class Database implements Serializable {
 
     @OrderBy("id DESC")
     @OneToMany(fetch = FetchType.LAZY, cascade = {CascadeType.ALL, CascadeType.PERSIST}, mappedBy = "database", orphanRemoval = true)
-    private List<at.ac.tuwien.ifs.dbrepo.entity.database.table.Table> tables;
+    private List<at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table> tables;
 
     @OrderBy("id DESC")
     @OneToMany(fetch = FetchType.LAZY, cascade = {CascadeType.ALL, CascadeType.PERSIST}, mappedBy = "database", orphanRemoval = true)
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/DatabaseAccess.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/DatabaseAccess.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/DatabaseAccess.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/DatabaseAccess.java
index 57cdb36cba..b0e110a676 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/DatabaseAccess.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/DatabaseAccess.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database;
 
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
 import jakarta.persistence.*;
 import lombok.*;
 import org.hibernate.annotations.JdbcTypeCode;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/DatabaseAccessKey.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/DatabaseAccessKey.java
similarity index 80%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/DatabaseAccessKey.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/DatabaseAccessKey.java
index 6e078dad1a..a1a55ab60e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/DatabaseAccessKey.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/DatabaseAccessKey.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database;
 
 import lombok.EqualsAndHashCode;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/LanguageType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/LanguageType.java
similarity index 98%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/LanguageType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/LanguageType.java
index 884b695cb7..b4e6ddb261 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/LanguageType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/LanguageType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database;
 
 import lombok.Getter;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/License.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/License.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/License.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/License.java
index bb1901bd8e..ce449e61ca 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/License.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/License.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database;
 
 import lombok.*;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/View.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/View.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/View.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/View.java
index bcce570754..d84b75530b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/View.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/View.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database;
 
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.Identifier;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Identifier;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/ViewColumn.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/ViewColumn.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/ViewColumn.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/ViewColumn.java
index 5a7d595745..aa2cfcd845 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/ViewColumn.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/ViewColumn.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnType;
 import jakarta.persistence.*;
 import lombok.*;
 import org.hibernate.annotations.JdbcTypeCode;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/Table.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/Table.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/Table.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/Table.java
index 38da4ffbba..42faf301ca 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/Table.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/Table.java
@@ -1,10 +1,10 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database.table;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database.table;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumn;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.Constraints;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.Identifier;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumn;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.Constraints;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Identifier;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/ColumnEnum.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/ColumnEnum.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/ColumnEnum.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/ColumnEnum.java
index 2fa054469e..dddf3fd501 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/ColumnEnum.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/ColumnEnum.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database.table.columns;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns;
 
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/ColumnSet.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/ColumnSet.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/ColumnSet.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/ColumnSet.java
index ce8cdc8be7..a5925f9c2e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/ColumnSet.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/ColumnSet.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database.table.columns;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns;
 
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/TableColumn.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/TableColumn.java
similarity index 97%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/TableColumn.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/TableColumn.java
index 3a6b8e8f55..010c919f05 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/TableColumn.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/TableColumn.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database.table.columns;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/TableColumnConcept.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/TableColumnConcept.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/TableColumnConcept.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/TableColumnConcept.java
index a192473a71..7b576cf792 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/TableColumnConcept.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/TableColumnConcept.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database.table.columns;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import jakarta.persistence.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/TableColumnType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/TableColumnType.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/TableColumnType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/TableColumnType.java
index 5ba076b64c..9562193a2d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/TableColumnType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/TableColumnType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database.table.columns;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns;
 
 import lombok.Getter;
 import lombok.ToString;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/TableColumnUnit.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/TableColumnUnit.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/TableColumnUnit.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/TableColumnUnit.java
index 297ce92618..39341261ff 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/columns/TableColumnUnit.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/columns/TableColumnUnit.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database.table.columns;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import jakarta.persistence.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/Constraints.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/Constraints.java
similarity index 71%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/Constraints.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/Constraints.java
index 10174e0369..f009c69f7f 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/Constraints.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/Constraints.java
@@ -1,8 +1,8 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.foreignKey.ForeignKey;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.primaryKey.PrimaryKey;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.unique.Unique;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.foreignKey.ForeignKey;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.primaryKey.PrimaryKey;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.unique.Unique;
 import lombok.*;
 
 import jakarta.persistence.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/foreignKey/ForeignKey.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/foreignKey/ForeignKey.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/foreignKey/ForeignKey.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/foreignKey/ForeignKey.java
index 8aec4443ff..c7414e3c1d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/foreignKey/ForeignKey.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/foreignKey/ForeignKey.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.foreignKey;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.foreignKey;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
 import jakarta.persistence.*;
 import lombok.*;
 import org.hibernate.annotations.JdbcTypeCode;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/foreignKey/ForeignKeyReference.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/foreignKey/ForeignKeyReference.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/foreignKey/ForeignKeyReference.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/foreignKey/ForeignKeyReference.java
index b8349c200c..8ac36e4fa8 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/foreignKey/ForeignKeyReference.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/foreignKey/ForeignKeyReference.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.foreignKey;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.foreignKey;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumn;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumn;
 import jakarta.persistence.*;
 import lombok.*;
 import org.hibernate.annotations.JdbcTypeCode;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/foreignKey/ReferenceType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/foreignKey/ReferenceType.java
similarity index 67%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/foreignKey/ReferenceType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/foreignKey/ReferenceType.java
index f9fec8cf92..5e5aacb0bd 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/foreignKey/ReferenceType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/foreignKey/ReferenceType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.foreignKey;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.foreignKey;
 
 import lombok.Getter;
 import lombok.ToString;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/primaryKey/PrimaryKey.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/primaryKey/PrimaryKey.java
similarity index 85%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/primaryKey/PrimaryKey.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/primaryKey/PrimaryKey.java
index 1dbe4e4ffb..ddf3abdf9a 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/primaryKey/PrimaryKey.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/primaryKey/PrimaryKey.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.primaryKey;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.primaryKey;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumn;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumn;
 import jakarta.persistence.*;
 import lombok.*;
 import org.hibernate.annotations.JdbcTypeCode;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/unique/Unique.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/unique/Unique.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/unique/Unique.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/unique/Unique.java
index 173dd33c75..8dcf9ccbfd 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/database/table/constraints/unique/Unique.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/database/table/constraints/unique/Unique.java
@@ -1,7 +1,7 @@
-package at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.unique;
+package at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.unique;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumn;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumn;
 import jakarta.persistence.*;
 import lombok.*;
 import org.hibernate.annotations.JdbcTypeCode;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/AffiliationIdentifierSchemeType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/AffiliationIdentifierSchemeType.java
similarity index 66%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/AffiliationIdentifierSchemeType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/AffiliationIdentifierSchemeType.java
index 016cc2d4b1..8660ce1936 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/AffiliationIdentifierSchemeType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/AffiliationIdentifierSchemeType.java
@@ -1,5 +1,5 @@
 
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
 import lombok.Getter;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/Creator.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/Creator.java
similarity index 98%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/Creator.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/Creator.java
index 109ed5e865..8a2bcf25e2 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/Creator.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/Creator.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/DescriptionType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/DescriptionType.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/DescriptionType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/DescriptionType.java
index 71b8241fcd..ef85f04e72 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/DescriptionType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/DescriptionType.java
@@ -1,5 +1,5 @@
 
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
 import lombok.Getter;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/Identifier.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/Identifier.java
similarity index 95%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/Identifier.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/Identifier.java
index f8e16ef7bf..04471509c6 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/Identifier.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/Identifier.java
@@ -1,9 +1,9 @@
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.Database;
-import at.ac.tuwien.ifs.dbrepo.entity.database.LanguageType;
-import at.ac.tuwien.ifs.dbrepo.entity.database.License;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.Database;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.LanguageType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.License;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierDescription.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierDescription.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierDescription.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierDescription.java
index 3459397232..ab73de406e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierDescription.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierDescription.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.LanguageType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.LanguageType;
 import jakarta.persistence.*;
 import lombok.*;
 import org.hibernate.annotations.JdbcTypeCode;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierFunder.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierFunder.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierFunder.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierFunder.java
index 1f70b31d1c..eb3c21e617 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierFunder.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierFunder.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierFunderType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierFunderType.java
similarity index 64%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierFunderType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierFunderType.java
index 8e6abe9ab4..d805d7e7a2 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierFunderType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierFunderType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
 public enum IdentifierFunderType {
     CROSSREF_FUNDER_ID,
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierStatusType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierStatusType.java
similarity index 62%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierStatusType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierStatusType.java
index 96d2734033..242a41e4a7 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierStatusType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierStatusType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
 import lombok.Getter;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierTitle.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierTitle.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierTitle.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierTitle.java
index 6241cd98eb..8dbbdac0a9 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierTitle.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierTitle.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.LanguageType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.LanguageType;
 import jakarta.persistence.*;
 import lombok.*;
 import org.hibernate.annotations.JdbcTypeCode;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierType.java
similarity index 66%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierType.java
index 748efbc834..85fb127d98 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/IdentifierType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/IdentifierType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
 import lombok.Getter;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/NameIdentifierSchemeType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/NameIdentifierSchemeType.java
similarity index 66%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/NameIdentifierSchemeType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/NameIdentifierSchemeType.java
index b8c5c883c9..645ec69d89 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/NameIdentifierSchemeType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/NameIdentifierSchemeType.java
@@ -1,5 +1,5 @@
 
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
 import lombok.Getter;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/NameType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/NameType.java
similarity index 61%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/NameType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/NameType.java
index f068c63f75..ce2f1585e4 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/NameType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/NameType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
 import lombok.Getter;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/RelatedIdentifier.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/RelatedIdentifier.java
similarity index 97%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/RelatedIdentifier.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/RelatedIdentifier.java
index 52c2d5a24a..e0eb28d11b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/RelatedIdentifier.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/RelatedIdentifier.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/RelatedType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/RelatedType.java
similarity index 90%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/RelatedType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/RelatedType.java
index e58d21b73d..7310ff455b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/RelatedType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/RelatedType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
 public enum RelatedType {
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/RelationType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/RelationType.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/RelationType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/RelationType.java
index ea272d6a64..94bebb0117 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/RelationType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/RelationType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
 public enum RelationType {
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/TitleType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/TitleType.java
similarity index 86%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/TitleType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/TitleType.java
index 5fa91e1498..a4b5f36b67 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/identifier/TitleType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/TitleType.java
@@ -1,5 +1,5 @@
 
-package at.ac.tuwien.ifs.dbrepo.entity.identifier;
+package at.ac.tuwien.ifs.dbrepo.core.entity.identifier;
 
 import lombok.Getter;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/maintenance/BannerMessage.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/maintenance/BannerMessage.java
similarity index 96%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/maintenance/BannerMessage.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/maintenance/BannerMessage.java
index 891f7dc141..ef6f3533e9 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/maintenance/BannerMessage.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/maintenance/BannerMessage.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.maintenance;
+package at.ac.tuwien.ifs.dbrepo.core.entity.maintenance;
 
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/maintenance/BannerMessageType.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/maintenance/BannerMessageType.java
similarity index 69%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/maintenance/BannerMessageType.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/maintenance/BannerMessageType.java
index 71a3342c4c..34cf2bc6d4 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/maintenance/BannerMessageType.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/maintenance/BannerMessageType.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.maintenance;
+package at.ac.tuwien.ifs.dbrepo.core.entity.maintenance;
 
 import lombok.Getter;
 import lombok.ToString;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/semantics/Ontology.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/semantics/Ontology.java
similarity index 97%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/semantics/Ontology.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/semantics/Ontology.java
index 0ace319c06..8cf3250a04 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/semantics/Ontology.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/semantics/Ontology.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.entity.semantics;
+package at.ac.tuwien.ifs.dbrepo.core.entity.semantics;
 
 import jakarta.persistence.*;
 import lombok.*;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/user/User.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/user/User.java
similarity index 93%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/user/User.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/user/User.java
index abc6de1a52..f3a65f1de5 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/entity/user/User.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/user/User.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.entity.user;
+package at.ac.tuwien.ifs.dbrepo.core.entity.user;
 
-import at.ac.tuwien.ifs.dbrepo.entity.database.DatabaseAccess;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.DatabaseAccess;
 import jakarta.persistence.*;
 import lombok.*;
 import lombok.extern.log4j.Log4j2;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AccessNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AccessNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AccessNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AccessNotFoundException.java
index 8b5f6ade2f..9cac5ca8f8 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AccessNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AccessNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AccountNotSetupException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AccountNotSetupException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AccountNotSetupException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AccountNotSetupException.java
index 35648b619f..ed00129ca9 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AccountNotSetupException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AccountNotSetupException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AnalyseServiceException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AnalyseServiceException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AnalyseServiceException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AnalyseServiceException.java
index 082d828ecf..d86344bc86 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AnalyseServiceException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AnalyseServiceException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AuthServiceConnectionException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AuthServiceConnectionException.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AuthServiceConnectionException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AuthServiceConnectionException.java
index 26b38feb87..abca69a27b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AuthServiceConnectionException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AuthServiceConnectionException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AuthServiceException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AuthServiceException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AuthServiceException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AuthServiceException.java
index ceb80dd3a4..de5969c4a8 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/AuthServiceException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/AuthServiceException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/BrokerServiceConnectionException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/BrokerServiceConnectionException.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/BrokerServiceConnectionException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/BrokerServiceConnectionException.java
index c5a9bf2078..7a5f17d0ed 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/BrokerServiceConnectionException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/BrokerServiceConnectionException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/BrokerServiceException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/BrokerServiceException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/BrokerServiceException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/BrokerServiceException.java
index 0d47571f1d..c0ca429d66 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/BrokerServiceException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/BrokerServiceException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ConceptNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ConceptNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ConceptNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ConceptNotFoundException.java
index c3c7dc918b..6be6c9dd8f 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ConceptNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ConceptNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ContainerAlreadyExistsException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ContainerAlreadyExistsException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ContainerAlreadyExistsException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ContainerAlreadyExistsException.java
index c2f91177c7..348bcf51f3 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ContainerAlreadyExistsException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ContainerAlreadyExistsException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ContainerNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ContainerNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ContainerNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ContainerNotFoundException.java
index 8bda8f5d0e..a81b036e26 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ContainerNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ContainerNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ContainerQuotaException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ContainerQuotaException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ContainerQuotaException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ContainerQuotaException.java
index c7238c7587..9d01a33607 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ContainerQuotaException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ContainerQuotaException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/CredentialsInvalidException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/CredentialsInvalidException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/CredentialsInvalidException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/CredentialsInvalidException.java
index 1639c284f0..afe130463f 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/CredentialsInvalidException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/CredentialsInvalidException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DashboardServiceConnectionException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DashboardServiceConnectionException.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DashboardServiceConnectionException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DashboardServiceConnectionException.java
index 2319a5a381..cbac75cfff 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DashboardServiceConnectionException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DashboardServiceConnectionException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DashboardServiceException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DashboardServiceException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DashboardServiceException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DashboardServiceException.java
index a3b27235cf..8ab1d1ef23 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DashboardServiceException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DashboardServiceException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DataServiceConnectionException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DataServiceConnectionException.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DataServiceConnectionException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DataServiceConnectionException.java
index d2f0669f6d..156d8be729 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DataServiceConnectionException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DataServiceConnectionException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DataServiceException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DataServiceException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DataServiceException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DataServiceException.java
index 5c53b364c6..66ea9a4e9b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DataServiceException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DataServiceException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DatabaseMalformedException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DatabaseMalformedException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DatabaseMalformedException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DatabaseMalformedException.java
index 223b90c6ae..7973419705 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DatabaseMalformedException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DatabaseMalformedException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DatabaseNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DatabaseNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DatabaseNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DatabaseNotFoundException.java
index 33afcef14f..41cdcc8d4b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DatabaseNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DatabaseNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DatabaseUnavailableException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DatabaseUnavailableException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DatabaseUnavailableException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DatabaseUnavailableException.java
index 966186025e..1f40dd0832 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DatabaseUnavailableException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DatabaseUnavailableException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DoiNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DoiNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DoiNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DoiNotFoundException.java
index 5f7b7a40bc..790c43f28d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/DoiNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/DoiNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/EmailExistsException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/EmailExistsException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/EmailExistsException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/EmailExistsException.java
index e2bad430c0..c82f6438bd 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/EmailExistsException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/EmailExistsException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ExchangeNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ExchangeNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ExchangeNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ExchangeNotFoundException.java
index fd5000756d..f6e32e047a 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ExchangeNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ExchangeNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ExternalServiceException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ExternalServiceException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ExternalServiceException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ExternalServiceException.java
index 7d0f9a2877..0866ee86d1 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ExternalServiceException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ExternalServiceException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/FilterBadRequestException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/FilterBadRequestException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/FilterBadRequestException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/FilterBadRequestException.java
index 1d5054554f..0c584430a6 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/FilterBadRequestException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/FilterBadRequestException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/FormatNotAvailableException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/FormatNotAvailableException.java
similarity index 88%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/FormatNotAvailableException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/FormatNotAvailableException.java
index e66f19d3d4..f977c087cb 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/FormatNotAvailableException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/FormatNotAvailableException.java
@@ -1,10 +1,8 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
 
-import java.io.IOException;
-
 @ResponseStatus(code = HttpStatus.NOT_ACCEPTABLE, reason = "error.identifier.format")
 public class FormatNotAvailableException extends Exception {
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/IdentifierNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/IdentifierNotFoundException.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/IdentifierNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/IdentifierNotFoundException.java
index ec9640097d..a17825aed3 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/IdentifierNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/IdentifierNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/IdentifierNotSupportedException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/IdentifierNotSupportedException.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/IdentifierNotSupportedException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/IdentifierNotSupportedException.java
index 715cc12ca0..07d090a2a3 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/IdentifierNotSupportedException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/IdentifierNotSupportedException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ImageAlreadyExistsException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ImageAlreadyExistsException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ImageAlreadyExistsException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ImageAlreadyExistsException.java
index 29d375f088..98e854ca18 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ImageAlreadyExistsException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ImageAlreadyExistsException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ImageInvalidException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ImageInvalidException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ImageInvalidException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ImageInvalidException.java
index 9da867c214..4b4eeef07c 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ImageInvalidException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ImageInvalidException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ImageNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ImageNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ImageNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ImageNotFoundException.java
index ac63df1307..4e0bcf905c 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ImageNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ImageNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/LicenseNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/LicenseNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/LicenseNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/LicenseNotFoundException.java
index e48ad40c7d..1b4ad4f10e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/LicenseNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/LicenseNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/MalformedException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/MalformedException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/MalformedException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/MalformedException.java
index e271b15c2e..f358709de7 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/MalformedException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/MalformedException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/MessageNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/MessageNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/MessageNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/MessageNotFoundException.java
index 6cbb5435ad..53294e85d2 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/MessageNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/MessageNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/MetadataServiceConnectionException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/MetadataServiceConnectionException.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/MetadataServiceConnectionException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/MetadataServiceConnectionException.java
index ce85b7d6fc..10599ab339 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/MetadataServiceConnectionException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/MetadataServiceConnectionException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/MetadataServiceException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/MetadataServiceException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/MetadataServiceException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/MetadataServiceException.java
index 8e87db03c2..ec86fd55f2 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/MetadataServiceException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/MetadataServiceException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/NotAllowedException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/NotAllowedException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/NotAllowedException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/NotAllowedException.java
index e4324ea595..79332fe74a 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/NotAllowedException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/NotAllowedException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/OntologyNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/OntologyNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/OntologyNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/OntologyNotFoundException.java
index a8641d74ec..283219e780 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/OntologyNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/OntologyNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/OrcidNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/OrcidNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/OrcidNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/OrcidNotFoundException.java
index 533735f152..2ad3560a8e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/OrcidNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/OrcidNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/PaginationException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/PaginationException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/PaginationException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/PaginationException.java
index 500d33a117..4eae0a8bc6 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/PaginationException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/PaginationException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryMalformedException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryMalformedException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryMalformedException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryMalformedException.java
index 37e8cb7e34..571ae5e313 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryMalformedException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryMalformedException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryNotFoundException.java
index ec525c453f..0bdba4634e 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryNotSupportedException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryNotSupportedException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryNotSupportedException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryNotSupportedException.java
index 8f0c264e4e..6a5df4f9e1 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryNotSupportedException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryNotSupportedException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryStoreCreateException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryStoreCreateException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryStoreCreateException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryStoreCreateException.java
index c9bf4e3dd5..d69c7757c5 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryStoreCreateException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryStoreCreateException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryStoreGCException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryStoreGCException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryStoreGCException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryStoreGCException.java
index 116cc1475d..d4f40910bc 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryStoreGCException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryStoreGCException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryStoreInsertException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryStoreInsertException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryStoreInsertException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryStoreInsertException.java
index 876fafb4af..0b7713d2ed 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryStoreInsertException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryStoreInsertException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryStorePersistException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryStorePersistException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryStorePersistException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryStorePersistException.java
index f68a523681..4cf73af90b 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueryStorePersistException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueryStorePersistException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueueNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueueNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueueNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueueNotFoundException.java
index df145a1017..69e1550046 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/QueueNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/QueueNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/RemoteUnavailableException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/RemoteUnavailableException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/RemoteUnavailableException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/RemoteUnavailableException.java
index a6ffb9adfa..0ab1bb158d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/RemoteUnavailableException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/RemoteUnavailableException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/RorNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/RorNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/RorNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/RorNotFoundException.java
index e273a913a0..12a9e3ce06 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/RorNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/RorNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/SearchServiceConnectionException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/SearchServiceConnectionException.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/SearchServiceConnectionException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/SearchServiceConnectionException.java
index 3152cb9e9e..ee6b4ab5ba 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/SearchServiceConnectionException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/SearchServiceConnectionException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/SearchServiceException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/SearchServiceException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/SearchServiceException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/SearchServiceException.java
index ecfca56a01..a2ca63f200 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/SearchServiceException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/SearchServiceException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/SemanticEntityNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/SemanticEntityNotFoundException.java
similarity index 92%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/SemanticEntityNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/SemanticEntityNotFoundException.java
index cdf229106f..78540ac51c 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/SemanticEntityNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/SemanticEntityNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/SortException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/SortException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/SortException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/SortException.java
index f79890e334..bf9f1dd2b7 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/SortException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/SortException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/StorageNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/StorageNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/StorageNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/StorageNotFoundException.java
index 7b5888ded8..2bef9e7a75 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/StorageNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/StorageNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/StorageUnavailableException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/StorageUnavailableException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/StorageUnavailableException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/StorageUnavailableException.java
index c75e0a21ea..813cbd58ad 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/StorageUnavailableException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/StorageUnavailableException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/TableExistsException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/TableExistsException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/TableExistsException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/TableExistsException.java
index 5c28dfe3b4..7eca5f85e0 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/TableExistsException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/TableExistsException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/TableMalformedException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/TableMalformedException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/TableMalformedException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/TableMalformedException.java
index baaa0e9231..0440a939bf 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/TableMalformedException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/TableMalformedException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/TableNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/TableNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/TableNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/TableNotFoundException.java
index 4ec9224f6d..e40bf35f76 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/TableNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/TableNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/TableSchemaException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/TableSchemaException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/TableSchemaException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/TableSchemaException.java
index 48229595b5..47d0456aa5 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/TableSchemaException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/TableSchemaException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/UnitNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/UnitNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/UnitNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/UnitNotFoundException.java
index b52c8910bf..b8204c40e7 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/UnitNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/UnitNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/UriMalformedException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/UriMalformedException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/UriMalformedException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/UriMalformedException.java
index 6dfc31d2dd..fa4317280a 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/UriMalformedException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/UriMalformedException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/UserExistsException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/UserExistsException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/UserExistsException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/UserExistsException.java
index 416e3bcb5a..e2640b3039 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/UserExistsException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/UserExistsException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/UserNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/UserNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/UserNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/UserNotFoundException.java
index b4d61532ab..47c78d0b08 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/UserNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/UserNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ViewExistsException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ViewExistsException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ViewExistsException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ViewExistsException.java
index 719e8aed74..c45e0022f0 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ViewExistsException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ViewExistsException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ViewMalformedException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ViewMalformedException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ViewMalformedException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ViewMalformedException.java
index 46255f0d8e..e8158644fa 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ViewMalformedException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ViewMalformedException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ViewNotFoundException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ViewNotFoundException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ViewNotFoundException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ViewNotFoundException.java
index 29a1a3c275..fea56d5edd 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ViewNotFoundException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ViewNotFoundException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ViewSchemaException.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ViewSchemaException.java
similarity index 91%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ViewSchemaException.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ViewSchemaException.java
index 480a735442..035842aab7 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/exception/ViewSchemaException.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/exception/ViewSchemaException.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.exception;
+package at.ac.tuwien.ifs.dbrepo.core.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/BaseTest.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/BaseTest.java
similarity index 97%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/BaseTest.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/BaseTest.java
index d03cc8bd93..1510a66e2d 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/BaseTest.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/BaseTest.java
@@ -1,76 +1,80 @@
-package at.ac.tuwien.ifs.dbrepo.test;
-
-import at.ac.tuwien.ifs.dbrepo.api.ExportResourceDto;
-import at.ac.tuwien.ifs.dbrepo.api.amqp.CreateVirtualHostDto;
-import at.ac.tuwien.ifs.dbrepo.api.amqp.ExchangeDto;
-import at.ac.tuwien.ifs.dbrepo.api.amqp.GrantVirtualHostPermissionsDto;
-import at.ac.tuwien.ifs.dbrepo.api.amqp.QueueDto;
-import at.ac.tuwien.ifs.dbrepo.api.auth.CreateUserDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerBriefDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.ContainerDto;
-import at.ac.tuwien.ifs.dbrepo.api.container.image.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.query.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.columns.concepts.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.ConstraintsDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.CreateTableConstraintsDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.foreign.*;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.primary.PrimaryKeyDto;
-import at.ac.tuwien.ifs.dbrepo.api.database.table.constraints.unique.UniqueDto;
-import at.ac.tuwien.ifs.dbrepo.api.datacite.DataCiteBody;
-import at.ac.tuwien.ifs.dbrepo.api.datacite.DataCiteData;
-import at.ac.tuwien.ifs.dbrepo.api.datacite.doi.DataCiteDoi;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.CreateDashboardDto;
-import at.ac.tuwien.ifs.dbrepo.api.grafana.CreateDashboardResponseDto;
-import at.ac.tuwien.ifs.dbrepo.api.identifier.*;
-import at.ac.tuwien.ifs.dbrepo.api.keycloak.*;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageCreateDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageTypeDto;
-import at.ac.tuwien.ifs.dbrepo.api.maintenance.BannerMessageUpdateDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.OrcidDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.OrcidActivitiesSummaryDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.OrcidEmploymentsDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.OrcidAffiliationGroupDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group.OrcidEmploymentSummaryDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group.summary.OrcidSummaryDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.activities.employments.affiliation.group.summary.organization.OrcidOrganizationDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.person.OrcidPersonDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.person.name.OrcidNameDto;
-import at.ac.tuwien.ifs.dbrepo.api.orcid.person.name.OrcidValueDto;
-import at.ac.tuwien.ifs.dbrepo.api.semantics.*;
-import at.ac.tuwien.ifs.dbrepo.api.user.UserAttributesDto;
-import at.ac.tuwien.ifs.dbrepo.api.user.*;
-import at.ac.tuwien.ifs.dbrepo.api.user.internal.UpdateUserPasswordDto;
-import at.ac.tuwien.ifs.dbrepo.entity.container.Container;
-import at.ac.tuwien.ifs.dbrepo.entity.container.image.ContainerImage;
-import at.ac.tuwien.ifs.dbrepo.entity.container.image.Operator;
-import at.ac.tuwien.ifs.dbrepo.entity.database.*;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.Table;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumn;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnConcept;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnType;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.columns.TableColumnUnit;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.Constraints;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.foreignKey.ForeignKey;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.foreignKey.ForeignKeyReference;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.foreignKey.ReferenceType;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.primaryKey.PrimaryKey;
-import at.ac.tuwien.ifs.dbrepo.entity.database.table.constraints.unique.Unique;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.*;
-import at.ac.tuwien.ifs.dbrepo.entity.maintenance.BannerMessage;
-import at.ac.tuwien.ifs.dbrepo.entity.maintenance.BannerMessageType;
-import at.ac.tuwien.ifs.dbrepo.entity.semantics.Ontology;
-import at.ac.tuwien.ifs.dbrepo.entity.user.User;
-import at.ac.tuwien.ifs.dbrepo.test.utils.ArrayUtils;
+package at.ac.tuwien.ifs.dbrepo.core.test;
+
+import at.ac.tuwien.ifs.dbrepo.core.api.ExportResourceDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.amqp.CreateVirtualHostDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.amqp.ExchangeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.amqp.GrantVirtualHostPermissionsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.amqp.QueueDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.auth.CreateUserDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerBriefDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.ContainerDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.container.image.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.query.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.columns.concepts.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.ConstraintsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.CreateTableConstraintsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.foreign.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.primary.PrimaryKeyDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.database.table.constraints.unique.UniqueDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.datacite.DataCiteBody;
+import at.ac.tuwien.ifs.dbrepo.core.api.datacite.DataCiteData;
+import at.ac.tuwien.ifs.dbrepo.core.api.datacite.doi.DataCiteDoi;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.CreateDashboardDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.grafana.CreateDashboardResponseDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.identifier.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.keycloak.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageCreateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageTypeDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.maintenance.BannerMessageUpdateDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.OrcidDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.OrcidActivitiesSummaryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.OrcidEmploymentsDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.OrcidAffiliationGroupDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group.OrcidEmploymentSummaryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group.summary.OrcidSummaryDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.activities.employments.affiliation.group.summary.organization.OrcidOrganizationDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.person.OrcidPersonDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.person.name.OrcidNameDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.orcid.person.name.OrcidValueDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.semantics.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.UserAttributesDto;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.*;
+import at.ac.tuwien.ifs.dbrepo.core.api.user.internal.UpdateUserPasswordDto;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.Container;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.image.ContainerImage;
+import at.ac.tuwien.ifs.dbrepo.core.entity.container.image.Operator;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.*;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.Table;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumn;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnConcept;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.columns.TableColumnUnit;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.Constraints;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.foreignKey.ForeignKey;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.foreignKey.ForeignKeyReference;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.foreignKey.ReferenceType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.primaryKey.PrimaryKey;
+import at.ac.tuwien.ifs.dbrepo.core.entity.database.table.constraints.unique.Unique;
+import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.*;
+import at.ac.tuwien.ifs.dbrepo.core.entity.maintenance.BannerMessage;
+import at.ac.tuwien.ifs.dbrepo.core.entity.maintenance.BannerMessageType;
+import at.ac.tuwien.ifs.dbrepo.core.entity.semantics.Ontology;
+import at.ac.tuwien.ifs.dbrepo.core.entity.user.User;
+import at.ac.tuwien.ifs.dbrepo.core.test.utils.ArrayUtils;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import org.springframework.core.io.InputStreamResource;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 import org.springframework.security.core.GrantedAuthority;
 import org.springframework.security.core.authority.SimpleGrantedAuthority;
 import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.test.context.TestPropertySource;
 
+import java.io.File;
+import java.io.IOException;
 import java.io.InputStream;
 import java.math.BigDecimal;
 import java.math.BigInteger;
@@ -135,7 +139,13 @@ import static java.time.temporal.ChronoUnit.MINUTES;
  * <br />
  * User 3 (write-all)
  */
-public abstract class BaseTest {
+
+@TestPropertySource(locations = "classpath:application.properties")
+public class BaseTest {
+
+    private static final ObjectMapper objectMapper = new ObjectMapper();
+
+    private static final String resourcesPath = "./src/main/resources";
 
     public static final String MINIO_IMAGE = "minio/minio:RELEASE.2024-06-06T09-36-42Z";
 
@@ -145,6 +155,32 @@ public abstract class BaseTest {
 
     public static final String KEYCLOAK_IMAGE = "quay.io/keycloak/keycloak:26.0.4";
 
+    public static final QueryDto QUERY_1_DTO;
+    public static final QueryDto QUERY_2_DTO;
+    public static final QueryDto QUERY_3_DTO;
+    public static final QueryDto QUERY_4_DTO;
+    public static final QueryDto QUERY_5_DTO;
+    public static final QueryDto QUERY_6_DTO;
+    public static final QueryDto QUERY_7_DTO;
+    public static final QueryDto QUERY_8_DTO;
+    public static final QueryDto QUERY_9_DTO;
+
+    static {
+        try {
+            QUERY_1_DTO = objectMapper.readValue(new File(resourcesPath + "/query-1.json"), QueryDto.class);
+            QUERY_2_DTO = objectMapper.readValue(new File(resourcesPath + "/query-2.json"), QueryDto.class);
+            QUERY_3_DTO = objectMapper.readValue(new File(resourcesPath + "/query-3.json"), QueryDto.class);
+            QUERY_4_DTO = objectMapper.readValue(new File(resourcesPath + "/query-4.json"), QueryDto.class);
+            QUERY_5_DTO = objectMapper.readValue(new File(resourcesPath + "/query-5.json"), QueryDto.class);
+            QUERY_6_DTO = objectMapper.readValue(new File(resourcesPath + "/query-6.json"), QueryDto.class);
+            QUERY_7_DTO = objectMapper.readValue(new File(resourcesPath + "/query-7.json"), QueryDto.class);
+            QUERY_8_DTO = objectMapper.readValue(new File(resourcesPath + "/query-8.json"), QueryDto.class);
+            QUERY_9_DTO = objectMapper.readValue(new File(resourcesPath + "/query-9.json"), QueryDto.class);
+        } catch (IOException e) {
+            throw new RuntimeException("Failed to initialize core test library", e);
+        }
+    }
+
     public static final String[] DEFAULT_SEMANTICS_HANDLING = new String[]{"default-semantics-handling",
             "create-semantic-unit", "execute-semantic-query", "table-semantic-analyse", "create-semantic-concept"};
 
@@ -649,7 +685,7 @@ public abstract class BaseTest {
             .authorities(AUTHORITY_DEFAULT_RESEARCHER_AUTHORITIES)
             .build();
 
-    public static final at.ac.tuwien.ifs.dbrepo.api.amqp.UserDetailsDto USER_2_DETAILS_DTO = at.ac.tuwien.ifs.dbrepo.api.amqp.UserDetailsDto.builder()
+    public static final at.ac.tuwien.ifs.dbrepo.core.api.amqp.UserDetailsDto USER_2_DETAILS_DTO = at.ac.tuwien.ifs.dbrepo.core.api.amqp.UserDetailsDto.builder()
             .name(USER_2_USERNAME)
             .tags(new String[]{})
             .build();
@@ -723,7 +759,7 @@ public abstract class BaseTest {
     public static final Principal USER_3_PRINCIPAL = new UsernamePasswordAuthenticationToken(USER_3_DETAILS,
             USER_3_PASSWORD, USER_3_DETAILS.getAuthorities());
 
-    public static final at.ac.tuwien.ifs.dbrepo.api.amqp.UserDetailsDto USER_3_DETAILS_DTO = at.ac.tuwien.ifs.dbrepo.api.amqp.UserDetailsDto.builder()
+    public static final at.ac.tuwien.ifs.dbrepo.core.api.amqp.UserDetailsDto USER_3_DETAILS_DTO = at.ac.tuwien.ifs.dbrepo.core.api.amqp.UserDetailsDto.builder()
             .name(USER_3_USERNAME)
             .tags(new String[]{})
             .build();
@@ -1191,7 +1227,7 @@ public abstract class BaseTest {
             .cid(CONTAINER_1_ID)
             .build();
 
-    public static final at.ac.tuwien.ifs.dbrepo.api.database.internal.CreateDatabaseDto DATABASE_1_CREATE_INTERNAL = at.ac.tuwien.ifs.dbrepo.api.database.internal.CreateDatabaseDto.builder()
+    public static final at.ac.tuwien.ifs.dbrepo.core.api.database.internal.CreateDatabaseDto DATABASE_1_CREATE_INTERNAL = at.ac.tuwien.ifs.dbrepo.core.api.database.internal.CreateDatabaseDto.builder()
             .internalName(DATABASE_1_INTERNALNAME)
             .containerId(CONTAINER_1_ID)
             .username(USER_1_USERNAME)
@@ -2183,7 +2219,7 @@ public abstract class BaseTest {
             .constraints(TABLE_4_CONSTRAINTS_CREATE_DTO)
             .build();
 
-    public static final at.ac.tuwien.ifs.dbrepo.api.database.table.internal.TableCreateDto TABLE_4_CREATE_INTERNAL_DTO = at.ac.tuwien.ifs.dbrepo.api.database.table.internal.TableCreateDto.builder()
+    public static final at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal.TableCreateDto TABLE_4_CREATE_INTERNAL_DTO = at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal.TableCreateDto.builder()
             .name(TABLE_4_NAME)
             .description(TABLE_4_DESCRIPTION)
             .columns(TABLE_4_COLUMNS_CREATE_DTO)
@@ -2454,19 +2490,6 @@ public abstract class BaseTest {
     public static final Long QUERY_9_RESULT_NUMBER = 6L;
     public static final Boolean QUERY_9_PERSISTED = true;
 
-    public static final QueryDto QUERY_9_DTO = QueryDto.builder()
-            .id(QUERY_9_ID)
-            .databaseId(DATABASE_3_ID)
-            .query(QUERY_9_STATEMENT)
-            .queryNormalized(QUERY_9_STATEMENT)
-            .resultNumber(QUERY_9_RESULT_NUMBER)
-            .resultHash(QUERY_9_RESULT_HASH)
-            .queryHash(QUERY_9_QUERY_HASH)
-            .execution(QUERY_9_EXECUTION)
-            .isPersisted(QUERY_9_PERSISTED)
-            .owner(USER_1_BRIEF_DTO)
-            .build();
-
     public static final SubsetDto QUERY_9_SUBSET_DTO = SubsetDto.builder()
             .tableId(TABLE_9_ID)
             .columns(new LinkedList<>(List.of(COLUMN_9_2_ID, COLUMN_9_3_ID)))
@@ -2894,19 +2917,6 @@ public abstract class BaseTest {
                 put("value", 23.1);
             }}));
 
-    public static final QueryDto QUERY_4_DTO = QueryDto.builder()
-            .id(QUERY_4_ID)
-            .databaseId(DATABASE_3_ID)
-            .query(QUERY_4_STATEMENT)
-            .queryNormalized(QUERY_4_STATEMENT)
-            .resultNumber(QUERY_4_RESULT_NUMBER)
-            .resultHash(QUERY_4_RESULT_HASH)
-            .queryHash(QUERY_4_QUERY_HASH)
-            .execution(QUERY_4_EXECUTION)
-            .isPersisted(QUERY_4_PERSISTED)
-            .owner(USER_1_BRIEF_DTO)
-            .build();
-
     public static final UUID QUERY_5_ID = UUID.fromString("1a39f775-e3d5-4865-b4f5-dbbb5693b637");
     public static final String QUERY_5_STATEMENT = "SELECT `id`, `value` FROM `mfcc` WHERE `value` > 0";
     public static final String QUERY_5_QUERY_HASH = "6d6dc48b12cdfd959d39a62887334a6bbd529b93eed4f211f3f671bd9e7d6225";
@@ -2917,19 +2927,6 @@ public abstract class BaseTest {
     public static final Long QUERY_5_RESULT_NUMBER = 6L;
     public static final Boolean QUERY_5_PERSISTED = true;
 
-    public static final QueryDto QUERY_5_DTO = QueryDto.builder()
-            .id(QUERY_5_ID)
-            .databaseId(DATABASE_3_ID)
-            .query(QUERY_5_STATEMENT)
-            .queryNormalized(QUERY_5_STATEMENT)
-            .resultNumber(QUERY_5_RESULT_NUMBER)
-            .resultHash(QUERY_5_RESULT_HASH)
-            .queryHash(QUERY_5_QUERY_HASH)
-            .execution(QUERY_5_EXECUTION)
-            .isPersisted(QUERY_5_PERSISTED)
-            .owner(USER_1_BRIEF_DTO)
-            .build();
-
     public static final SubsetDto QUERY_5_SUBSET_DTO = SubsetDto.builder()
             .tableId(TABLE_8_ID)
             .columns(new LinkedList<>(List.of(COLUMN_8_1_ID, COLUMN_8_2_ID)))
@@ -3090,14 +3087,14 @@ public abstract class BaseTest {
             .constraints(TABLE_1_CONSTRAINTS_CREATE_DTO)
             .build();
 
-    public static final at.ac.tuwien.ifs.dbrepo.api.database.table.internal.TableCreateDto TABLE_1_CREATE_INTERNAL_DTO = at.ac.tuwien.ifs.dbrepo.api.database.table.internal.TableCreateDto.builder()
+    public static final at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal.TableCreateDto TABLE_1_CREATE_INTERNAL_DTO = at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal.TableCreateDto.builder()
             .name(TABLE_1_NAME)
             .description(TABLE_1_DESCRIPTION)
             .columns(TABLE_1_COLUMNS_CREATE_DTO)
             .constraints(TABLE_1_CONSTRAINTS_CREATE_DTO)
             .build();
 
-    public static final at.ac.tuwien.ifs.dbrepo.api.database.table.internal.TableCreateDto TABLE_1_CREATE_INTERNAL_INVALID_DTO = at.ac.tuwien.ifs.dbrepo.api.database.table.internal.TableCreateDto.builder()
+    public static final at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal.TableCreateDto TABLE_1_CREATE_INTERNAL_INVALID_DTO = at.ac.tuwien.ifs.dbrepo.core.api.database.table.internal.TableCreateDto.builder()
             .name(TABLE_1_NAME)
             .description(TABLE_1_DESCRIPTION)
             .columns(TABLE_1_COLUMNS_CREATE_DTO)
@@ -8310,85 +8307,4 @@ public abstract class BaseTest {
             .resource(new InputStreamResource(InputStream.nullInputStream()))
             .build();
 
-    public static final QueryDto QUERY_1_DTO = QueryDto.builder()
-            .id(QUERY_1_ID)
-            .databaseId(DATABASE_1_ID)
-            .query(QUERY_1_STATEMENT)
-            .queryHash(QUERY_1_QUERY_HASH)
-            .resultHash(QUERY_1_RESULT_HASH)
-            .execution(QUERY_1_EXECUTION)
-            .owner(USER_1_BRIEF_DTO)
-            .isPersisted(QUERY_1_PERSISTED)
-            .resultNumber(3L)
-            .build();
-
-    public static final QueryDto QUERY_2_DTO = QueryDto.builder()
-            .id(QUERY_2_ID)
-            .databaseId(DATABASE_1_ID)
-            .query(QUERY_2_STATEMENT)
-            .queryNormalized(QUERY_2_STATEMENT)
-            .resultNumber(QUERY_2_RESULT_NUMBER)
-            .resultHash(QUERY_2_RESULT_HASH)
-            .owner(USER_1_BRIEF_DTO)
-            .queryHash(QUERY_2_QUERY_HASH)
-            .execution(QUERY_2_EXECUTION)
-            .isPersisted(QUERY_2_PERSISTED)
-            .resultNumber(3L)
-            .build();
-
-    public static final QueryDto QUERY_3_DTO = QueryDto.builder()
-            .id(QUERY_3_ID)
-            .databaseId(DATABASE_1_ID)
-            .query(QUERY_3_STATEMENT)
-            .queryNormalized(QUERY_3_STATEMENT)
-            .resultNumber(QUERY_3_RESULT_NUMBER)
-            .resultHash(QUERY_3_RESULT_HASH)
-            .owner(USER_1_BRIEF_DTO)
-            .queryHash(QUERY_3_QUERY_HASH)
-            .execution(QUERY_3_EXECUTION)
-            .isPersisted(QUERY_3_PERSISTED)
-            .resultNumber(2L)
-            .build();
-
-    public static final QueryDto QUERY_7_DTO = QueryDto.builder()
-            .id(QUERY_7_ID)
-            .databaseId(DATABASE_4_ID)
-            .query(QUERY_7_STATEMENT)
-            .queryNormalized(QUERY_7_STATEMENT)
-            .resultNumber(QUERY_7_RESULT_NUMBER)
-            .resultHash(QUERY_7_RESULT_HASH)
-            .owner(USER_1_BRIEF_DTO)
-            .queryHash(QUERY_7_QUERY_HASH)
-            .execution(QUERY_7_EXECUTION)
-            .isPersisted(QUERY_7_PERSISTED)
-            .resultNumber(2L)
-            .build();
-
-    public static final QueryDto QUERY_6_DTO = QueryDto.builder()
-            .id(QUERY_6_ID)
-            .databaseId(DATABASE_1_ID)
-            .query(QUERY_6_STATEMENT)
-            .queryNormalized(QUERY_6_STATEMENT)
-            .resultNumber(QUERY_6_RESULT_NUMBER)
-            .resultHash(QUERY_6_RESULT_HASH)
-            .owner(USER_1_BRIEF_DTO)
-            .queryHash(QUERY_6_QUERY_HASH)
-            .execution(QUERY_6_EXECUTION)
-            .isPersisted(QUERY_6_PERSISTED)
-            .build();
-
-    public static final QueryDto QUERY_8_DTO = QueryDto.builder()
-            .id(QUERY_8_ID)
-            .databaseId(DATABASE_2_ID)
-            .query(QUERY_8_STATEMENT)
-            .queryNormalized(QUERY_8_STATEMENT)
-            .resultNumber(QUERY_8_RESULT_NUMBER)
-            .resultHash(QUERY_8_RESULT_HASH)
-            .owner(USER_1_BRIEF_DTO)
-            .queryHash(QUERY_8_QUERY_HASH)
-            .execution(QUERY_8_EXECUTION)
-            .isPersisted(QUERY_8_PERSISTED)
-            .resultNumber(3L)
-            .build();
-
 }
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/dto/LocaleDto.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/dto/LocaleDto.java
similarity index 86%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/dto/LocaleDto.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/dto/LocaleDto.java
index 4c0cbc2e75..bec6d7ea05 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/dto/LocaleDto.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/dto/LocaleDto.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.test.dto;
+package at.ac.tuwien.ifs.dbrepo.core.test.dto;
 
 import lombok.*;
 
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/pom.xml b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/pom.xml
similarity index 100%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/pom.xml
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/pom.xml
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/utils/ArrayUtils.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/utils/ArrayUtils.java
similarity index 87%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/utils/ArrayUtils.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/utils/ArrayUtils.java
index 5a45c0b02d..c30116295f 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/utils/ArrayUtils.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/utils/ArrayUtils.java
@@ -1,4 +1,4 @@
-package at.ac.tuwien.ifs.dbrepo.test.utils;
+package at.ac.tuwien.ifs.dbrepo.core.test.utils;
 
 import java.util.Arrays;
 import java.util.LinkedList;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/utils/EndpointUtils.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/utils/EndpointUtils.java
similarity index 94%
rename from lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/utils/EndpointUtils.java
rename to lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/utils/EndpointUtils.java
index 04e9f4149f..56adf110c9 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/utils/EndpointUtils.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/utils/EndpointUtils.java
@@ -1,6 +1,6 @@
-package at.ac.tuwien.ifs.dbrepo.test.utils;
+package at.ac.tuwien.ifs.dbrepo.core.test.utils;
 
-import at.ac.tuwien.ifs.dbrepo.test.dto.LocaleDto;
+import at.ac.tuwien.ifs.dbrepo.core.test.dto.LocaleDto;
 import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.springframework.beans.factory.config.BeanDefinition;
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/AbstractUnitTest.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/AbstractUnitTest.java
deleted file mode 100644
index 6c5dff507a..0000000000
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/test/AbstractUnitTest.java
+++ /dev/null
@@ -1,168 +0,0 @@
-package at.ac.tuwien.ifs.dbrepo.test;
-
-import at.ac.tuwien.ifs.dbrepo.entity.database.AccessType;
-import at.ac.tuwien.ifs.dbrepo.entity.identifier.IdentifierStatusType;
-import org.springframework.test.context.TestPropertySource;
-
-import java.util.LinkedList;
-import java.util.List;
-
-@TestPropertySource(locations = "classpath:application.properties")
-public abstract class AbstractUnitTest extends BaseTest {
-
-    public void genesis() {
-        BANNER_MESSAGE_1.setDisplayStart(BANNER_MESSAGE_1_START);
-        IMAGE_1_DTO.setOperators(IMAGE_1_OPERATORS_DTO);
-        CONTAINER_1_DTO.setImage(IMAGE_1_DTO);
-        IMAGE_1.setOperators(new LinkedList<>(IMAGE_1_OPERATORS));
-        CONTAINER_1.setDatabases(new LinkedList<>(List.of(DATABASE_1, DATABASE_2, DATABASE_3)));
-        /* USER_1 */
-        USER_1.setAccesses(new LinkedList<>());
-        USER_1.setTheme(USER_1_THEME);
-        /* USER_2 */
-        USER_2.setAccesses(new LinkedList<>());
-        /* USER_3 */
-        USER_3.setAccesses(new LinkedList<>());
-        /* USER_4 */
-        USER_4.setAccesses(new LinkedList<>());
-        /* USER_4 */
-        USER_5.setAccesses(new LinkedList<>());
-        /* DATABASE 1 */
-        TABLE_1_COLUMNS.get(0).setUnit(null);
-        TABLE_1_COLUMNS.get(0).setConcept(null);
-        DATABASE_1.setOwner(USER_1);
-        DATABASE_1.setSubsets(new LinkedList<>());
-        DATABASE_1.setIsPublic(DATABASE_1_PUBLIC);
-        DATABASE_1.setIsSchemaPublic(DATABASE_1_SCHEMA_PUBLIC);
-        DATABASE_1.setIsDashboardEnabled(DATABASE_1_DASHBOARD_ENABLED);
-        DATABASE_1_USER_1_READ_ACCESS.setType(AccessType.READ);
-        DATABASE_1.setAccesses(new LinkedList<>(List.of(DATABASE_1_USER_1_READ_ACCESS, DATABASE_1_USER_2_WRITE_OWN_ACCESS, DATABASE_1_USER_3_WRITE_ALL_ACCESS)));
-        DATABASE_1_DTO.setAccesses(new LinkedList<>(List.of(DATABASE_1_USER_1_READ_ACCESS_DTO, DATABASE_1_USER_2_WRITE_OWN_ACCESS_DTO, DATABASE_1_USER_3_WRITE_ALL_ACCESS_DTO)));
-        DATABASE_1_PRIVILEGED_DTO.setAccesses(new LinkedList<>(List.of(DATABASE_1_USER_1_READ_ACCESS_DTO, DATABASE_1_USER_2_WRITE_OWN_ACCESS_DTO, DATABASE_1_USER_3_WRITE_ALL_ACCESS_DTO)));
-        UNIT_1.setId(UNIT_1_ID);
-        VIEW_1_DTO.setIdentifiers(VIEW_1_DTO_IDENTIFIERS);
-        DATABASE_1.setIdentifiers(new LinkedList<>(List.of(IDENTIFIER_1, IDENTIFIER_2, IDENTIFIER_3, IDENTIFIER_4)));
-        IDENTIFIER_1.setDatabase(DATABASE_1);
-        IDENTIFIER_2.setDatabase(DATABASE_1);
-        IDENTIFIER_3.setDatabase(DATABASE_1);
-        IDENTIFIER_4.setDatabase(DATABASE_1);
-        DATABASE_1.setTables(new LinkedList<>(List.of(TABLE_1, TABLE_2, TABLE_3, TABLE_4)));
-        DATABASE_1.setViews(new LinkedList<>(List.of(VIEW_1, VIEW_2, VIEW_3)));
-        DATABASE_1_DTO.setContainer(CONTAINER_1_DTO);
-        DATABASE_1_DTO.setIdentifiers(new LinkedList<>(List.of(IDENTIFIER_1_DTO, IDENTIFIER_2_DTO, IDENTIFIER_3_DTO, IDENTIFIER_4_DTO)));
-        DATABASE_1_DTO.setTables(new LinkedList<>(List.of(TABLE_1_DTO, TABLE_2_DTO, TABLE_3_DTO, TABLE_4_DTO)));
-        DATABASE_1_DTO.setViews(new LinkedList<>(List.of(VIEW_1_DTO, VIEW_2_DTO, VIEW_3_DTO)));
-        TABLE_1.setDatabase(DATABASE_1);
-        TABLE_1.setColumns(new LinkedList<>(TABLE_1_COLUMNS));
-        TABLE_1.setConstraints(TABLE_1_CONSTRAINTS);
-        TABLE_1.setIsSchemaPublic(TABLE_1_SCHEMA_PUBLIC);
-        TABLE_1_DTO.setColumns(new LinkedList<>(TABLE_1_COLUMNS_DTO));
-        TABLE_1_DTO.setConstraints(TABLE_1_CONSTRAINTS_DTO);
-        TABLE_2.setDatabase(DATABASE_1);
-        TABLE_2.setColumns(new LinkedList<>(TABLE_2_COLUMNS));
-        TABLE_2_CONSTRAINTS.getForeignKeys().get(0).getReferences().get(0).setForeignKey(TABLE_2_CONSTRAINTS.getForeignKeys().get(0));
-        TABLE_2.setConstraints(TABLE_2_CONSTRAINTS);
-        TABLE_2_DTO.setColumns(new LinkedList<>(TABLE_2_COLUMNS_DTO));
-        TABLE_2_DTO.setConstraints(TABLE_2_CONSTRAINTS_DTO);
-        TABLE_3.setDatabase(DATABASE_1);
-        TABLE_3.setColumns(new LinkedList<>(TABLE_3_COLUMNS));
-        TABLE_3.setConstraints(TABLE_3_CONSTRAINTS);
-        TABLE_3.setIsSchemaPublic(TABLE_3_SCHEMA_PUBLIC);
-        TABLE_3_DTO.setColumns(new LinkedList<>(TABLE_3_COLUMNS_DTO));
-        TABLE_3_DTO.setConstraints(TABLE_3_CONSTRAINTS_DTO);
-        TABLE_4.setDatabase(DATABASE_1);
-        TABLE_4.setColumns(new LinkedList<>(TABLE_4_COLUMNS));
-        TABLE_4.setConstraints(TABLE_4_CONSTRAINTS);
-        TABLE_4.setIsSchemaPublic(TABLE_4_SCHEMA_PUBLIC);
-        TABLE_4_DTO.setColumns(TABLE_4_COLUMNS_DTO);
-        TABLE_4_DTO.setConstraints(TABLE_4_CONSTRAINTS_DTO);
-        VIEW_1.setDatabase(DATABASE_1);
-        VIEW_1.setColumns(new LinkedList<>(VIEW_1_COLUMNS));
-        VIEW_1.setIdentifiers(new LinkedList<>(List.of(IDENTIFIER_3)));
-        VIEW_2.setDatabase(DATABASE_1);
-        VIEW_2.setColumns(new LinkedList<>(VIEW_2_COLUMNS));
-        VIEW_3.setDatabase(DATABASE_1);
-        VIEW_3.setColumns(new LinkedList<>(VIEW_3_COLUMNS));
-        IDENTIFIER_1.setDatabase(DATABASE_1);
-        IDENTIFIER_2.setDatabase(DATABASE_1);
-        IDENTIFIER_3.setDatabase(DATABASE_1);
-        IDENTIFIER_4.setDatabase(DATABASE_1);
-        /* DATABASE 2 */
-        DATABASE_2.setSubsets(new LinkedList<>());
-        DATABASE_2.setAccesses(new LinkedList<>(List.of(DATABASE_2_USER_2_WRITE_ALL_ACCESS, DATABASE_2_USER_3_READ_ACCESS)));
-        DATABASE_2.setTables(new LinkedList<>(List.of(TABLE_5, TABLE_6, TABLE_7)));
-        VIEW_4.setColumns(new LinkedList<>(VIEW_4_COLUMNS));
-        DATABASE_2.setViews(new LinkedList<>(List.of(VIEW_4)));
-        DATABASE_2.setIdentifiers(new LinkedList<>(List.of(IDENTIFIER_5)));
-        DATABASE_2_DTO.setAccesses(new LinkedList<>(List.of(DATABASE_2_USER_2_WRITE_ALL_ACCESS_DTO, DATABASE_2_USER_3_READ_ACCESS_DTO)));
-        DATABASE_2_DTO.setTables(new LinkedList<>(List.of(TABLE_5_DTO, TABLE_6_DTO, TABLE_7_DTO)));
-        DATABASE_2_DTO.setViews(new LinkedList<>(List.of(VIEW_4_DTO)));
-        DATABASE_2_DTO.setIdentifiers(new LinkedList<>(List.of(IDENTIFIER_5_DTO)));
-        DATABASE_2_PRIVILEGED_DTO.setAccesses(new LinkedList<>(List.of(DATABASE_2_USER_2_WRITE_ALL_ACCESS_DTO, DATABASE_2_USER_3_READ_ACCESS_DTO)));
-        DATABASE_2_PRIVILEGED_DTO.setTables(new LinkedList<>(List.of(TABLE_5_DTO, TABLE_6_DTO, TABLE_7_DTO)));
-        DATABASE_2_PRIVILEGED_DTO.setViews(new LinkedList<>(List.of(VIEW_4_DTO)));
-        DATABASE_2_PRIVILEGED_DTO.setIdentifiers(new LinkedList<>(List.of(IDENTIFIER_5_DTO)));
-        TABLE_5.setDatabase(DATABASE_2);
-        TABLE_5.setColumns(new LinkedList<>(TABLE_5_COLUMNS));
-        TABLE_5.setConstraints(TABLE_5_CONSTRAINTS);
-        TABLE_5_DTO.setColumns(new LinkedList<>(TABLE_5_COLUMNS_DTO));
-        TABLE_5_DTO.setConstraints(TABLE_5_CONSTRAINTS_DTO);
-        TABLE_6.setDatabase(DATABASE_2);
-        TABLE_6.setColumns(new LinkedList<>(TABLE_6_COLUMNS));
-        TABLE_6.setConstraints(TABLE_6_CONSTRAINTS);
-        TABLE_7.setDatabase(DATABASE_2);
-        TABLE_7.setColumns(new LinkedList<>(TABLE_7_COLUMNS));
-        TABLE_7.setConstraints(TABLE_7_CONSTRAINTS);
-        TABLE_7_CONSTRAINTS.getForeignKeys().get(0).getReferences().get(0).setForeignKey(TABLE_7_CONSTRAINTS.getForeignKeys().get(0));
-        TABLE_7_CONSTRAINTS.getForeignKeys().get(1).getReferences().get(0).setForeignKey(TABLE_7_CONSTRAINTS.getForeignKeys().get(1));
-        TABLE_7_DTO.setColumns(TABLE_7_COLUMNS_DTO);
-        TABLE_7_DTO.setConstraints(TABLE_7_CONSTRAINTS_DTO);
-        TABLE_7_CONSTRAINTS_DTO.getForeignKeys().get(0).getReferences().get(0).setForeignKey(TABLE_7_CONSTRAINTS_FOREIGN_KEY_BRIEF_0_DTO);
-        TABLE_7_CONSTRAINTS_DTO.getForeignKeys().get(1).getReferences().get(0).setForeignKey(TABLE_7_CONSTRAINTS_FOREIGN_KEY_BRIEF_1_DTO);
-        VIEW_4.setDatabase(DATABASE_2);
-        IDENTIFIER_5.setDatabase(DATABASE_2);
-        /* DATABASE 3 */
-        DATABASE_3.setSubsets(new LinkedList<>());
-        DATABASE_3.setTables(new LinkedList<>(List.of(TABLE_8)));
-        DATABASE_3.setViews(new LinkedList<>(List.of(VIEW_5)));
-        DATABASE_3.setIdentifiers(new LinkedList<>(List.of(IDENTIFIER_6)));
-        DATABASE_3.setAccesses(new LinkedList<>(List.of(DATABASE_3_USER_1_WRITE_ALL_ACCESS)));
-        DATABASE_3_DTO.setTables(new LinkedList<>(List.of(TABLE_8_DTO)));
-        DATABASE_3_DTO.setViews(new LinkedList<>(List.of(VIEW_5_DTO)));
-        DATABASE_3_DTO.setIdentifiers(new LinkedList<>(List.of(IDENTIFIER_6_DTO)));
-        DATABASE_3_DTO.setAccesses(new LinkedList<>(List.of(DATABASE_3_USER_1_WRITE_ALL_ACCESS_DTO)));
-        DATABASE_3_PRIVILEGED_DTO.setAccesses(new LinkedList<>(List.of(DATABASE_3_USER_1_WRITE_ALL_ACCESS_DTO)));
-        DATABASE_3_PRIVILEGED_DTO.setTables(new LinkedList<>(List.of(TABLE_8_DTO)));
-        DATABASE_3_PRIVILEGED_DTO.setViews(new LinkedList<>(List.of(VIEW_5_DTO)));
-        DATABASE_3_PRIVILEGED_DTO.setIdentifiers(new LinkedList<>(List.of(IDENTIFIER_6_DTO)));
-        TABLE_8.setDatabase(DATABASE_3);
-        TABLE_8.setColumns(new LinkedList<>(TABLE_8_COLUMNS));
-        TABLE_8.setConstraints(TABLE_8_CONSTRAINTS);
-        TABLE_8.setIsSchemaPublic(TABLE_8_SCHEMA_PUBLIC);
-        TABLE_8_DTO.setColumns(new LinkedList<>(TABLE_8_COLUMNS_DTO));
-        TABLE_8_DTO.setConstraints(TABLE_8_CONSTRAINTS_DTO);
-        VIEW_5.setDatabase(DATABASE_3);
-        VIEW_5.setColumns(VIEW_5_COLUMNS);
-        VIEW_5_DTO.setColumns(VIEW_5_COLUMNS_DTO);
-        IDENTIFIER_6.setDatabase(DATABASE_3);
-        /* DATABASE 4 */
-        DATABASE_4.setSubsets(new LinkedList<>());
-        DATABASE_4.setAccesses(new LinkedList<>(List.of(DATABASE_4_USER_1_READ_ACCESS, DATABASE_4_USER_2_WRITE_OWN_ACCESS, DATABASE_4_USER_3_WRITE_ALL_ACCESS)));
-        DATABASE_4.setIdentifiers(new LinkedList<>(List.of(IDENTIFIER_7)));
-        DATABASE_4_DTO.setTables(new LinkedList<>(List.of(TABLE_9_DTO)));
-        DATABASE_4_DTO.setIdentifiers(new LinkedList<>(List.of(IDENTIFIER_7_DTO)));
-        DATABASE_4_PRIVILEGED_DTO.setTables(new LinkedList<>(List.of(TABLE_9_DTO)));
-        DATABASE_4_PRIVILEGED_DTO.setIdentifiers(new LinkedList<>(List.of(IDENTIFIER_7_DTO)));
-        TABLE_9.setDatabase(DATABASE_4);
-        TABLE_9.setColumns(TABLE_9_COLUMNS);
-        TABLE_9.setConstraints(TABLE_9_CONSTRAINTS);
-        TABLE_9_DTO.setColumns(TABLE_9_COLUMNS_DTO);
-        TABLE_9_DTO.setConstraints(TABLE_9_CONSTRAINTS_DTO);
-        IDENTIFIER_7.setStatus(IdentifierStatusType.DRAFT);
-        IDENTIFIER_7.setDatabase(DATABASE_4);
-        CONTAINER_2.setDatabases(new LinkedList<>());
-        CONTAINER_3.setDatabases(new LinkedList<>());
-        CONTAINER_4.setDatabases(new LinkedList<>(List.of(DATABASE_4)));
-    }
-
-}
diff --git a/lib/java/dbrepo-core/src/main/resources/concept-1.json b/lib/java/dbrepo-core/src/main/resources/concept-1.json
new file mode 100644
index 0000000000..d02fe4b952
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/concept-1.json
@@ -0,0 +1,5 @@
+{
+  "id" : "8cabc011-4bdf-44d4-9d33-b2648e2ddbf1",
+  "uri" : "http://www.wikidata.org/entity/Q25257",
+  "name" : "precipitation"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/concept-2.json b/lib/java/dbrepo-core/src/main/resources/concept-2.json
new file mode 100644
index 0000000000..6dc11fa1d5
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/concept-2.json
@@ -0,0 +1,6 @@
+{
+  "id" : "c5cf9914-15c1-4813-af11-eb2a070d59a9",
+  "uri" : "http://www.wikidata.org/entity/Q29032648",
+  "name" : "FAIR data",
+  "description" : "data compliant with the terms of the FAIR Data Principles"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/database-1-user-1-read-access.json b/lib/java/dbrepo-core/src/main/resources/database-1-user-1-read-access.json
new file mode 100644
index 0000000000..bc6d208be2
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/database-1-user-1-read-access.json
@@ -0,0 +1,12 @@
+{
+  "user" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "type" : "read"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/database-1-user-2-write-own-access.json b/lib/java/dbrepo-core/src/main/resources/database-1-user-2-write-own-access.json
new file mode 100644
index 0000000000..5c710b95f7
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/database-1-user-2-write-own-access.json
@@ -0,0 +1,12 @@
+{
+  "user" : {
+    "id" : "eeb9a51b-4cd8-4039-90bf-e24f17372f7c",
+    "username" : "junit2",
+    "name" : "Jane Doe",
+    "orcid" : "https://orcid.org/0000-0002-9272-6225",
+    "qualified_name" : "Jane Doe — @junit2",
+    "given_name" : "Jane",
+    "family_name" : "Doe"
+  },
+  "type" : "write_own"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/database-1-user-3-write-all-access.json b/lib/java/dbrepo-core/src/main/resources/database-1-user-3-write-all-access.json
new file mode 100644
index 0000000000..3e614580b1
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/database-1-user-3-write-all-access.json
@@ -0,0 +1,11 @@
+{
+  "user" : {
+    "id" : "7b080e33-d8db-4276-9d53-47208e657006",
+    "username" : "junit3",
+    "name" : "System System",
+    "qualified_name" : "System System — @junit3",
+    "given_name" : "System",
+    "family_name" : "System"
+  },
+  "type" : "write_all"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/database-2-user-2-write-all-access.json b/lib/java/dbrepo-core/src/main/resources/database-2-user-2-write-all-access.json
new file mode 100644
index 0000000000..9f81c28fb3
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/database-2-user-2-write-all-access.json
@@ -0,0 +1,12 @@
+{
+  "user" : {
+    "id" : "eeb9a51b-4cd8-4039-90bf-e24f17372f7c",
+    "username" : "junit2",
+    "name" : "Jane Doe",
+    "orcid" : "https://orcid.org/0000-0002-9272-6225",
+    "qualified_name" : "Jane Doe — @junit2",
+    "given_name" : "Jane",
+    "family_name" : "Doe"
+  },
+  "type" : "write_all"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/database-2-user-3-read-access.json b/lib/java/dbrepo-core/src/main/resources/database-2-user-3-read-access.json
new file mode 100644
index 0000000000..0016a966c8
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/database-2-user-3-read-access.json
@@ -0,0 +1,11 @@
+{
+  "user" : {
+    "id" : "7b080e33-d8db-4276-9d53-47208e657006",
+    "username" : "junit3",
+    "name" : "System System",
+    "qualified_name" : "System System — @junit3",
+    "given_name" : "System",
+    "family_name" : "System"
+  },
+  "type" : "read"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/database-3-user-1-write-all-access.json b/lib/java/dbrepo-core/src/main/resources/database-3-user-1-write-all-access.json
new file mode 100644
index 0000000000..faf76afc55
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/database-3-user-1-write-all-access.json
@@ -0,0 +1,12 @@
+{
+  "user" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "type" : "write_all"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/database-4-user-1-read-access.json b/lib/java/dbrepo-core/src/main/resources/database-4-user-1-read-access.json
new file mode 100644
index 0000000000..1be927f701
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/database-4-user-1-read-access.json
@@ -0,0 +1,3 @@
+{
+  "type" : "read"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/database-4-user-2-write-own-access.json b/lib/java/dbrepo-core/src/main/resources/database-4-user-2-write-own-access.json
new file mode 100644
index 0000000000..059e1d6379
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/database-4-user-2-write-own-access.json
@@ -0,0 +1,3 @@
+{
+  "type" : "write_own"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/database-4-user-3-write-all-access.json b/lib/java/dbrepo-core/src/main/resources/database-4-user-3-write-all-access.json
new file mode 100644
index 0000000000..1659906509
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/database-4-user-3-write-all-access.json
@@ -0,0 +1,3 @@
+{
+  "type" : "write_all"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/identifier-1.json b/lib/java/dbrepo-core/src/main/resources/identifier-1.json
new file mode 100644
index 0000000000..8fc668dc10
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/identifier-1.json
@@ -0,0 +1,69 @@
+{
+  "id" : "679a83f2-ef23-4b4b-98f7-ad77b9d68733",
+  "links" : {
+    "self" : "/api/identifier/679a83f2-ef23-4b4b-98f7-ad77b9d68733",
+    "self_html" : "/pid/679a83f2-ef23-4b4b-98f7-ad77b9d68733"
+  },
+  "type" : "database",
+  "titles" : [ {
+    "id" : "3df6b286-9bd2-4ae3-b8f4-29c217544bef",
+    "title" : "Austrian weather data",
+    "language" : "en"
+  }, {
+    "id" : "903a7e5b-8014-4b8a-b8fd-44f477880905",
+    "title" : "Österreichische Wetterdaten",
+    "language" : "en",
+    "type" : "TranslatedTitle"
+  } ],
+  "descriptions" : [ {
+    "id" : "1c438756-93f0-4797-983c-175a17e18c2c",
+    "description" : "Selecting all from the weather Austrian table",
+    "language" : "en"
+  } ],
+  "funders" : [ {
+    "id" : "8deb273d-6dd6-407d-970a-01534035ac01",
+    "funder_name" : "European Commission",
+    "funder_identifier" : "https://doi.org/10.13039/501100000780",
+    "funder_identifier_type" : "Crossref Funder ID",
+    "award_title" : "Institutionalizing global genetic-resource commons. Global Strategies for accessing and using essential public knowledge assets in the life science"
+  } ],
+  "query" : "SELECT `id`, `date`, `location`, `mintemp`, `rainfall` FROM `weather_aus` ORDER BY id ASC",
+  "execution" : "2018-11-07T10:59:12.000Z",
+  "doi" : "10.12345/183",
+  "publisher" : "Austrian Government",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "licenses" : [ {
+    "identifier" : "MIT",
+    "uri" : "https://opensource.org/license/mit/"
+  } ],
+  "creators" : [ {
+    "id" : "667cd1d6-4f94-4808-b5cb-12e5ec0788d8",
+    "firstname" : "Max",
+    "lastname" : "Mustermann",
+    "affiliation" : "TU Graz",
+    "creator_name" : "Mustermann, Max",
+    "name_type" : "Personal",
+    "name_identifier" : "00000-00000-00000",
+    "name_identifier_scheme" : "ORCID",
+    "affiliation_identifier" : "https://ror.org/04wn28048",
+    "affiliation_identifier_scheme" : "ROR",
+    "affiliation_identifier_scheme_uri" : "https://ror.org/"
+  } ],
+  "status" : "published",
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "query_id" : "60494137-f000-459e-acd3-4fcadbdf14ca",
+  "query_normalized" : "SELECT `id`, `date`, `location`, `mintemp`, `rainfall` FROM `weather_aus` ORDER BY id ASC",
+  "query_hash" : "a3b8ac39e38167d14cf3a9c20a69e4b6954d049525390b973a2c23064953a992",
+  "result_hash" : "8358c8ade4849d2094ab5bb29127afdae57e6bb5acb1db7af603813d406c467a",
+  "result_number" : 2,
+  "publication_month" : 5,
+  "publication_year" : 2022
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/identifier-2.json b/lib/java/dbrepo-core/src/main/resources/identifier-2.json
new file mode 100644
index 0000000000..73bd849cc2
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/identifier-2.json
@@ -0,0 +1,38 @@
+{
+  "id" : "fdb95f60-48e7-4e74-8122-d3c8d079c889",
+  "links" : {
+    "self" : "/api/identifier/fdb95f60-48e7-4e74-8122-d3c8d079c889",
+    "data" : "/api/database/b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425/subset/60494137-f000-459e-acd3-4fcadbdf14ca/data",
+    "self_html" : "/pid/fdb95f60-48e7-4e74-8122-d3c8d079c889"
+  },
+  "type" : "subset",
+  "titles" : [ ],
+  "descriptions" : [ ],
+  "query" : "SELECT `id`, `date`, `location`, `mintemp`, `rainfall` FROM `weather_aus` ORDER BY id ASC",
+  "execution" : "2019-03-03T04:45:52.000Z",
+  "publisher" : "Swedish Government",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "licenses" : [ {
+    "identifier" : "MIT",
+    "uri" : "https://opensource.org/license/mit/"
+  } ],
+  "creators" : [ ],
+  "status" : "published",
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "query_id" : "60494137-f000-459e-acd3-4fcadbdf14ca",
+  "query_normalized" : "SELECT `id`, `date`, `location`, `mintemp`, `rainfall` FROM `weather_aus` ORDER BY id ASC",
+  "query_hash" : "a3b8ac39e38167d14cf3a9c20a69e4b6954d049525390b973a2c23064953a992",
+  "result_hash" : "8358c8ade4849d2094ab5bb29127afdae57e6bb5acb1db7af603813d406c467a",
+  "result_number" : 2,
+  "publication_day" : 10,
+  "publication_month" : 7,
+  "publication_year" : 2023
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/identifier-3.json b/lib/java/dbrepo-core/src/main/resources/identifier-3.json
new file mode 100644
index 0000000000..e7c835c959
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/identifier-3.json
@@ -0,0 +1,36 @@
+{
+  "id" : "e2d831c2-3694-4fdc-8c48-7a7e94b73c43",
+  "links" : {
+    "self" : "/api/identifier/e2d831c2-3694-4fdc-8c48-7a7e94b73c43",
+    "data" : "/api/database/b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425/view/7d712cf7-78c7-4a47-90b0-d6b9f7f19b70/data",
+    "self_html" : "/pid/e2d831c2-3694-4fdc-8c48-7a7e94b73c43"
+  },
+  "type" : "view",
+  "titles" : [ ],
+  "descriptions" : [ ],
+  "query" : "SELECT `location`, `lat`, `lng` FROM `weather_location`",
+  "execution" : "2019-03-03T04:45:52.000Z",
+  "publisher" : "Polish Government",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "licenses" : [ {
+    "identifier" : "MIT",
+    "uri" : "https://opensource.org/license/mit/"
+  } ],
+  "creators" : [ ],
+  "status" : "published",
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "view_id" : "7d712cf7-78c7-4a47-90b0-d6b9f7f19b70",
+  "query_normalized" : "SELECT `location`, `lat`, `lng` FROM `weather_location`",
+  "query_hash" : "dc81a6877c7c51a6a6f406e1fc2a255e44a0d49a20548596e0d583c3eb849c23",
+  "publication_day" : 10,
+  "publication_month" : 7,
+  "publication_year" : 2023
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/identifier-4.json b/lib/java/dbrepo-core/src/main/resources/identifier-4.json
new file mode 100644
index 0000000000..474a520d26
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/identifier-4.json
@@ -0,0 +1,33 @@
+{
+  "id" : "3bd69bb8-f7e3-48e4-9717-823787e7ba23",
+  "links" : {
+    "self" : "/api/identifier/3bd69bb8-f7e3-48e4-9717-823787e7ba23",
+    "data" : "/api/database/b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425/table/666d0b6b-f017-4f7c-80d8-a47174d8b539/data",
+    "self_html" : "/pid/3bd69bb8-f7e3-48e4-9717-823787e7ba23"
+  },
+  "type" : "table",
+  "titles" : [ ],
+  "descriptions" : [ ],
+  "execution" : "2019-03-03T04:45:52.000Z",
+  "publisher" : "Example Publisher",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "licenses" : [ {
+    "identifier" : "MIT",
+    "uri" : "https://opensource.org/license/mit/"
+  } ],
+  "creators" : [ ],
+  "status" : "published",
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "table_id" : "666d0b6b-f017-4f7c-80d8-a47174d8b539",
+  "publication_day" : 10,
+  "publication_month" : 7,
+  "publication_year" : 2023
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/identifier-5.json b/lib/java/dbrepo-core/src/main/resources/identifier-5.json
new file mode 100644
index 0000000000..e10ff809f2
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/identifier-5.json
@@ -0,0 +1,65 @@
+{
+  "id" : "e05bb4c9-ed26-48c9-bd91-5c48a93a04bd",
+  "links" : {
+    "self" : "/api/identifier/e05bb4c9-ed26-48c9-bd91-5c48a93a04bd",
+    "data" : "/api/database/dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe/subset/4e0ac92a-7cb3-4222-9b85-0498c73e0afd/data",
+    "self_html" : "/pid/e05bb4c9-ed26-48c9-bd91-5c48a93a04bd",
+    "dashboard_html" : "/d/7779bc9207daeae7e5a7"
+  },
+  "type" : "subset",
+  "titles" : [ {
+    "id" : "1a0ae9c2-61c6-44f8-b886-26a4f4dabc52",
+    "title" : "Australische Wetterdaten",
+    "language" : "de",
+    "type" : "Subtitle"
+  } ],
+  "descriptions" : [ {
+    "id" : "ab49bdca-f373-4823-9947-2a0cbfa88350",
+    "description" : "Alle Wetterdaten in Australien",
+    "language" : "de",
+    "type" : "Abstract"
+  } ],
+  "query" : "SELECT `location` FROM `weather_aus`",
+  "execution" : "2018-11-07T10:59:12.000Z",
+  "doi" : "10.12345/13/50BBFCFE08A12",
+  "publisher" : "Australian Government",
+  "owner" : {
+    "id" : "eeb9a51b-4cd8-4039-90bf-e24f17372f7c",
+    "username" : "junit2",
+    "name" : "Jane Doe",
+    "orcid" : "https://orcid.org/0000-0002-9272-6225",
+    "qualified_name" : "Jane Doe — @junit2",
+    "given_name" : "Jane",
+    "family_name" : "Doe"
+  },
+  "creators" : [ {
+    "id" : "6844b684-93e4-47d2-a615-5939127fdafe",
+    "firstname" : "Max",
+    "lastname" : "Mustermann",
+    "affiliation" : "TU Graz",
+    "creator_name" : "Mustermann, Max",
+    "name_identifier" : "00000-00000-00000",
+    "name_identifier_scheme" : "ORCID",
+    "affiliation_identifier" : "https://ror.org/04wn28048",
+    "affiliation_identifier_scheme" : "ROR",
+    "affiliation_identifier_scheme_uri" : "https://ror.org/"
+  }, {
+    "id" : "14943ad6-a935-49f5-b07e-f9eb789b8604",
+    "firstname" : "Martina",
+    "lastname" : "Mustermann",
+    "affiliation" : "TU Wien",
+    "creator_name" : "Mustermann, Martina",
+    "name_identifier" : "00000-00000-00000",
+    "name_identifier_scheme" : "ORCID"
+  } ],
+  "status" : "draft",
+  "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+  "query_id" : "4e0ac92a-7cb3-4222-9b85-0498c73e0afd",
+  "query_normalized" : "SELECT `location` FROM `weather_aus`",
+  "query_hash" : "a2d2dd94ebc7653bb5a3b55dd8ed5e91d3d13c225c6855a1eb4eb7ca14c36ced",
+  "result_hash" : "ff3f7cbe1b96d296957f6e39e55b8b1b577fa3d205d4795af99594cfd20cb80d",
+  "result_number" : 2,
+  "publication_day" : 14,
+  "publication_month" : 7,
+  "publication_year" : 2022
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/identifier-6.json b/lib/java/dbrepo-core/src/main/resources/identifier-6.json
new file mode 100644
index 0000000000..3beed2b1e8
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/identifier-6.json
@@ -0,0 +1,76 @@
+{
+  "id" : "a244204d-9671-42a0-be07-9b14402238fd",
+  "links" : {
+    "self" : "/api/identifier/a244204d-9671-42a0-be07-9b14402238fd",
+    "data" : "/api/database/9d8cb9a9-9468-4801-a2e0-2dac8bc67c31/subset/a9849020-45a7-40a8-9a19-d4ae2b28dd46/data",
+    "self_html" : "/pid/a244204d-9671-42a0-be07-9b14402238fd",
+    "dashboard_html" : "/d/18d25f581fb272ac260b"
+  },
+  "type" : "subset",
+  "titles" : [ {
+    "id" : "0449011c-1490-4c8e-b46c-c1f862126aea",
+    "title" : "Norwegian weather data",
+    "language" : "en"
+  } ],
+  "descriptions" : [ {
+    "id" : "aac03bbd-27e6-419d-8118-f996d594f00f",
+    "description" : "Selecting all from the weather Norwegian table",
+    "language" : "en"
+  } ],
+  "query" : "SELECT `location`, `mintemp` FROM `weather_aus` WHERE `mintemp` > 10",
+  "execution" : "2018-11-07T10:59:12.000Z",
+  "publisher" : "Norwegian Government",
+  "owner" : {
+    "id" : "7b080e33-d8db-4276-9d53-47208e657006",
+    "username" : "junit3",
+    "name" : "System System",
+    "qualified_name" : "System System — @junit3",
+    "given_name" : "System",
+    "family_name" : "System"
+  },
+  "licenses" : [ {
+    "identifier" : "MIT",
+    "uri" : "https://opensource.org/license/mit/"
+  } ],
+  "creators" : [ {
+    "id" : "f8a52dca-8aec-46c1-b0e1-603dbe6a1a65",
+    "firstname" : "Max",
+    "lastname" : "Mustermann",
+    "affiliation" : "TU Graz",
+    "creator_name" : "Mustermann, Max",
+    "name_identifier" : "00000-00000-00000",
+    "name_identifier_scheme" : "ORCID",
+    "affiliation_identifier" : "https://ror.org/04wn28048",
+    "affiliation_identifier_scheme" : "ROR",
+    "affiliation_identifier_scheme_uri" : "https://ror.org/"
+  }, {
+    "id" : "eeae78cb-75a1-42e2-b608-7082e5fbecc6",
+    "firstname" : "Martina",
+    "lastname" : "Mustermann",
+    "affiliation" : "TU Wien",
+    "creator_name" : "Mustermann, Martina",
+    "name_identifier" : "00000-00000-00000",
+    "name_identifier_scheme" : "ORCID"
+  }, {
+    "id" : "700058f1-6314-4cd1-9c0c-62e75c8f422b",
+    "firstname" : "Max",
+    "lastname" : "Mustermann",
+    "affiliation" : "TU Graz",
+    "creator_name" : "Mustermann, Max",
+    "name_identifier" : "00000-00000-00000",
+    "name_identifier_scheme" : "ORCID",
+    "affiliation_identifier" : "https://ror.org/04wn28048",
+    "affiliation_identifier_scheme" : "ROR",
+    "affiliation_identifier_scheme_uri" : "https://ror.org/"
+  } ],
+  "status" : "published",
+  "database_id" : "9d8cb9a9-9468-4801-a2e0-2dac8bc67c31",
+  "query_id" : "a9849020-45a7-40a8-9a19-d4ae2b28dd46",
+  "query_normalized" : "SELECT `location`, `mintemp` FROM `weather_aus` WHERE `mintemp` > 10",
+  "query_hash" : "a3d3dd94ebc7653bb5a3b55dd8ed5e91d3d13c335c6855a1eb4eb7ca14c36ced",
+  "result_hash" : "ff3f7cbe1b96d396957f6e39e55b8b1b577fa3d305d4795af99594cfd30cb80d",
+  "result_number" : 2,
+  "publication_day" : 14,
+  "publication_month" : 7,
+  "publication_year" : 2022
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/identifier-7.json b/lib/java/dbrepo-core/src/main/resources/identifier-7.json
new file mode 100644
index 0000000000..4353b2714a
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/identifier-7.json
@@ -0,0 +1,42 @@
+{
+  "id" : "b216ae00-a31d-4ecb-95fb-37eb4da3946f",
+  "links" : {
+    "self" : "/api/identifier/b216ae00-a31d-4ecb-95fb-37eb4da3946f",
+    "self_html" : "/pid/b216ae00-a31d-4ecb-95fb-37eb4da3946f",
+    "dashboard_html" : "/d/456a3760f69821a0f944"
+  },
+  "type" : "database",
+  "titles" : [ ],
+  "descriptions" : [ ],
+  "funders" : [ ],
+  "execution" : "2018-11-07T10:59:12.000Z",
+  "publisher" : "Swedish Government",
+  "owner" : {
+    "id" : "791d58c5-bfab-4520-b4fc-b44d4ab9feb0",
+    "username" : "junit4",
+    "name" : "JUnit 4",
+    "qualified_name" : "JUnit 4 — @junit4",
+    "given_name" : "JUnit",
+    "family_name" : "4"
+  },
+  "licenses" : [ ],
+  "creators" : [ {
+    "id" : "b899c367-06c7-4f47-8aea-5f15061ee3ee",
+    "firstname" : "Max",
+    "lastname" : "Mustermann",
+    "affiliation" : "TU Graz",
+    "creator_name" : "Mustermann, Max",
+    "name_identifier" : "00000-00000-00000",
+    "name_identifier_scheme" : "ORCID",
+    "affiliation_identifier" : "https://ror.org/04wn28048",
+    "affiliation_identifier_scheme" : "ROR",
+    "affiliation_identifier_scheme_uri" : "https://ror.org/"
+  } ],
+  "status" : "draft",
+  "database_id" : "c503d7f3-5952-4d97-b26a-da86bea4c20d",
+  "related_identifiers" : [ ],
+  "result_number" : 2,
+  "publication_day" : 14,
+  "publication_month" : 7,
+  "publication_year" : 2022
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/ontology-1.json b/lib/java/dbrepo-core/src/main/resources/ontology-1.json
new file mode 100644
index 0000000000..d53c1f5065
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/ontology-1.json
@@ -0,0 +1,9 @@
+{
+  "id" : "dc195d01-0a45-4583-aa83-fd270b874353",
+  "uri" : "http://www.ontology-of-units-of-measure.org/resource/om-2/",
+  "prefix" : "om2",
+  "sparql" : false,
+  "rdf" : true,
+  "uri_pattern" : "http://www.ontology-of-units-of-measure.org/resource/om-2/.*",
+  "rdf_path" : "rdf/om-2.0.rdf"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/ontology-2.json b/lib/java/dbrepo-core/src/main/resources/ontology-2.json
new file mode 100644
index 0000000000..0e7e995a04
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/ontology-2.json
@@ -0,0 +1,8 @@
+{
+  "id" : "41d902a1-f9f8-4d51-ad64-618b72acf5ed",
+  "uri" : "http://www.wikidata.org/",
+  "prefix" : "wd",
+  "sparql" : true,
+  "rdf" : false,
+  "sparql_endpoint" : "https://query.wikidata.org/sparql"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/ontology-3.json b/lib/java/dbrepo-core/src/main/resources/ontology-3.json
new file mode 100644
index 0000000000..41795ea7e0
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/ontology-3.json
@@ -0,0 +1,7 @@
+{
+  "id" : "5b41390b-d2d2-45c6-8038-1258c4b2725f",
+  "uri" : "http://www.w3.org/2000/01/rdf-schema#",
+  "prefix" : "rdfs",
+  "sparql" : false,
+  "rdf" : false
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/ontology-4.json b/lib/java/dbrepo-core/src/main/resources/ontology-4.json
new file mode 100644
index 0000000000..3f0a8e8fe4
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/ontology-4.json
@@ -0,0 +1,7 @@
+{
+  "id" : "d6992475-9b71-4a4a-a6eb-bc1fe6a34443",
+  "uri" : "http://schema.org/",
+  "prefix" : "schema",
+  "sparql" : false,
+  "rdf" : false
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/ontology-5.json b/lib/java/dbrepo-core/src/main/resources/ontology-5.json
new file mode 100644
index 0000000000..8af111a895
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/ontology-5.json
@@ -0,0 +1,8 @@
+{
+  "id" : "f95d1330-762e-4f5a-875a-3c64da5808a1",
+  "uri" : "http://dbpedia.org",
+  "prefix" : "db",
+  "sparql" : true,
+  "rdf" : false,
+  "sparql_endpoint" : "http://dbpedia.org/sparql"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/query-1.json b/lib/java/dbrepo-core/src/main/resources/query-1.json
new file mode 100644
index 0000000000..dc559d73c1
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/query-1.json
@@ -0,0 +1,19 @@
+{
+  "id" : "60494137-f000-459e-acd3-4fcadbdf14ca",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "execution" : "2025-03-24T12:31:48.081Z",
+  "query" : "SELECT `id`, `date`, `location`, `mintemp`, `rainfall` FROM `weather_aus` ORDER BY id ASC",
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "query_hash" : "a3b8ac39e38167d14cf3a9c20a69e4b6954d049525390b973a2c23064953a992",
+  "is_persisted" : true,
+  "result_hash" : "8358c8ade4849d2094ab5bb29127afdae57e6bb5acb1db7af603813d406c467a",
+  "result_number" : 3
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/query-2.json b/lib/java/dbrepo-core/src/main/resources/query-2.json
new file mode 100644
index 0000000000..aaf30ab56f
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/query-2.json
@@ -0,0 +1,20 @@
+{
+  "id" : "4e0ac92a-7cb3-4222-9b85-0498c73e0afd",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "execution" : "2025-03-24T12:30:48.084Z",
+  "query" : "SELECT `location` FROM `weather_aus`",
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "query_normalized" : "SELECT `location` FROM `weather_aus`",
+  "query_hash" : "a2d2dd94ebc7653bb5a3b55dd8ed5e91d3d13c225c6855a1eb4eb7ca14c36ced",
+  "is_persisted" : false,
+  "result_hash" : "ff3f7cbe1b96d296957f6e39e55b8b1b577fa3d205d4795af99594cfd20cb80d",
+  "result_number" : 3
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/query-3.json b/lib/java/dbrepo-core/src/main/resources/query-3.json
new file mode 100644
index 0000000000..1b831c1b78
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/query-3.json
@@ -0,0 +1,20 @@
+{
+  "id" : "a9849020-45a7-40a8-9a19-d4ae2b28dd46",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "execution" : "2025-03-24T12:30:48.084Z",
+  "query" : "SELECT `location`, `mintemp` FROM `weather_aus` WHERE `mintemp` > 10",
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "query_normalized" : "SELECT `location`, `mintemp` FROM `weather_aus` WHERE `mintemp` > 10",
+  "query_hash" : "a3d3dd94ebc7653bb5a3b55dd8ed5e91d3d13c335c6855a1eb4eb7ca14c36ced",
+  "is_persisted" : true,
+  "result_hash" : "ff3f7cbe1b96d396957f6e39e55b8b1b577fa3d305d4795af99594cfd30cb80d",
+  "result_number" : 2
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/query-4.json b/lib/java/dbrepo-core/src/main/resources/query-4.json
new file mode 100644
index 0000000000..f3449b06bc
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/query-4.json
@@ -0,0 +1,20 @@
+{
+  "id" : "18a98197-51ff-4011-9f40-914a11675a6d",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "execution" : "2025-03-24T12:30:48.085Z",
+  "query" : "SELECT `id`, `value` FROM `mfcc`",
+  "database_id" : "9d8cb9a9-9468-4801-a2e0-2dac8bc67c31",
+  "query_normalized" : "SELECT `id`, `value` FROM `mfcc`",
+  "query_hash" : "df7da3801dfb5c191ff6711d79ce6455f3c09ec8323ce1ff7208ab85387263f5",
+  "is_persisted" : false,
+  "result_hash" : "ff4f7cbe1b96d496957f6e49e55b8b1b577fa4d405d4795af99594cfd40cb80d",
+  "result_number" : 6
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/query-5.json b/lib/java/dbrepo-core/src/main/resources/query-5.json
new file mode 100644
index 0000000000..5a09de8e1e
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/query-5.json
@@ -0,0 +1,20 @@
+{
+  "id" : "1a39f775-e3d5-4865-b4f5-dbbb5693b637",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "execution" : "2025-03-24T12:30:48.086Z",
+  "query" : "SELECT `id`, `value` FROM `mfcc` WHERE `value` > 0",
+  "database_id" : "9d8cb9a9-9468-4801-a2e0-2dac8bc67c31",
+  "query_normalized" : "SELECT `id`, `value` FROM `mfcc` WHERE `value` > 0",
+  "query_hash" : "6d6dc48b12cdfd959d39a62887334a6bbd529b93eed4f211f3f671bd9e7d6225",
+  "is_persisted" : true,
+  "result_hash" : "ff5f7cbe1b96d596957f6e59e55b8b1b577fa5d505d5795af99595cfd50cb80d",
+  "result_number" : 6
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/query-6.json b/lib/java/dbrepo-core/src/main/resources/query-6.json
new file mode 100644
index 0000000000..b391a52fd9
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/query-6.json
@@ -0,0 +1,20 @@
+{
+  "id" : "7463412a-20c4-4fc1-8a33-948aea026f49",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "execution" : "2025-03-24T12:30:48.087Z",
+  "query" : "SELECT `location` FROM `weather_aus` WHERE `id` = 1",
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "query_normalized" : "SELECT `location` FROM `weather_aus` WHERE `id` = 1",
+  "query_hash" : "6d6dc48b12cdfd959d39a62887334a6bbd529b93eed4f211f3f671bd9e7d6225",
+  "is_persisted" : true,
+  "result_hash" : "ff5f7cbe1b96d596957f6e59e55b8b1b577fa5d505d5795af99595cfd50cb80d",
+  "result_number" : 1
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/query-7.json b/lib/java/dbrepo-core/src/main/resources/query-7.json
new file mode 100644
index 0000000000..1677fd4224
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/query-7.json
@@ -0,0 +1,20 @@
+{
+  "id" : "fe73a325-30a0-444c-b74f-23ce1533e55f",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "execution" : "2025-03-24T12:30:48.084Z",
+  "query" : "SELECT id, date, a.location, lat, lng FROM weather_aus a JOIN weather_location l on a.location = l.location WHERE date = '2008-12-01'",
+  "database_id" : "c503d7f3-5952-4d97-b26a-da86bea4c20d",
+  "query_normalized" : "SELECT id, date, a.location, lat, lng FROM weather_aus a JOIN weather_location l on a.location = l.location WHERE date = '2008-12-01'",
+  "query_hash" : "df7da3801dfb5c191ff6711d79ce6455f3c09ec8323ce1ff7208ab85387263f5",
+  "is_persisted" : false,
+  "result_hash" : "ff4f7cbe1b96d496957f6e49e55b8b1b577fa4d405d4795af99594cfd40cb80d",
+  "result_number" : 2
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/query-8.json b/lib/java/dbrepo-core/src/main/resources/query-8.json
new file mode 100644
index 0000000000..dab0c6ff98
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/query-8.json
@@ -0,0 +1,20 @@
+{
+  "id" : "1c466eee-d551-4ef9-a7e0-b5a2d1b15473",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "execution" : "2025-03-24T12:30:48.098Z",
+  "query" : "SELECT `id`, `animal_name` FROM `zoo` WHERE `hair` = TRUE AND `feathers` = FALSE;",
+  "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+  "query_normalized" : "SELECT `id`, `animal_name` FROM `zoo` WHERE `hair` = TRUE AND `feathers` = FALSE;",
+  "query_hash" : "f0ee0d6dd45e092fca120c4f0eab089f91ed26ccf8dc34a03c6b9c6bb4141271",
+  "is_persisted" : true,
+  "result_hash" : "b5f9cae916d32deff81c5f2e9f8ff43904034bc084b12320730953d120698bed",
+  "result_number" : 3
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/query-9.json b/lib/java/dbrepo-core/src/main/resources/query-9.json
new file mode 100644
index 0000000000..0ec3210c0b
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/query-9.json
@@ -0,0 +1,20 @@
+{
+  "id" : "df34f0b9-b64c-406c-9109-7a031f4a7f27",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "execution" : "2025-03-24T12:30:48.067Z",
+  "query" : "SELECT `lat`, `lng` FROM `mfcc` WHERE `location` = 'Fuji'",
+  "database_id" : "9d8cb9a9-9468-4801-a2e0-2dac8bc67c31",
+  "query_normalized" : "SELECT `lat`, `lng` FROM `mfcc` WHERE `location` = 'Fuji'",
+  "query_hash" : "dfcdec827b2ea74d89415f8d1ce39354f59ef304444ba4e12e4f3d9d3f35abe3",
+  "is_persisted" : true,
+  "result_hash" : "f0aba070a1fd29e96230d12d7c0b4d08b89820b3cc2dda0575680492010016e7",
+  "result_number" : 6
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/table-1.json b/lib/java/dbrepo-core/src/main/resources/table-1.json
new file mode 100644
index 0000000000..002a4f1518
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/table-1.json
@@ -0,0 +1,117 @@
+{
+  "id" : "666d0b6b-f017-4f7c-80d8-a47174d8b539",
+  "name" : "Weather AUS",
+  "identifiers" : [ ],
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "description" : "Weather in Australia",
+  "columns" : [ {
+    "id" : "377c0a6e-938e-458c-ad2b-bbbd75d46412",
+    "name" : "id",
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "666d0b6b-f017-4f7c-80d8-a47174d8b539",
+    "ord" : 0,
+    "internal_name" : "id",
+    "type" : "serial",
+    "is_null_allowed" : false
+  }, {
+    "id" : "dbca4821-3023-479b-a25a-c08eb0ec02ce",
+    "name" : "Date",
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "666d0b6b-f017-4f7c-80d8-a47174d8b539",
+    "ord" : 1,
+    "internal_name" : "date",
+    "type" : "date",
+    "is_null_allowed" : true
+  }, {
+    "id" : "8ff0351e-4882-4948-94af-598e4b264b25",
+    "name" : "Location",
+    "size" : 255,
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "666d0b6b-f017-4f7c-80d8-a47174d8b539",
+    "ord" : 2,
+    "internal_name" : "location",
+    "type" : "varchar",
+    "is_null_allowed" : true
+  }, {
+    "id" : "9ab256eb-3324-4e76-af3b-e3e2a58ce161",
+    "name" : "MinTemp",
+    "size" : 10,
+    "d" : 0,
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "666d0b6b-f017-4f7c-80d8-a47174d8b539",
+    "ord" : 3,
+    "internal_name" : "mintemp",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  }, {
+    "id" : "619e9355-51aa-438f-8579-80cec30f35cb",
+    "name" : "Rainfall",
+    "size" : 10,
+    "d" : 0,
+    "concept" : {
+      "id" : "8cabc011-4bdf-44d4-9d33-b2648e2ddbf1",
+      "uri" : "http://www.wikidata.org/entity/Q25257",
+      "name" : "precipitation"
+    },
+    "unit" : {
+      "id" : "1fee60e4-42f8-4883-85a8-e282fddf6a62",
+      "uri" : "http://www.ontology-of-units-of-measure.org/resource/om-2/millimetre",
+      "name" : "millimetre",
+      "description" : "The millimetre is a unit of length defined as 1.0e-3 metre."
+    },
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "666d0b6b-f017-4f7c-80d8-a47174d8b539",
+    "ord" : 4,
+    "internal_name" : "rainfall",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  } ],
+  "constraints" : {
+    "uniques" : [ ],
+    "checks" : [ ],
+    "foreign_keys" : [ ],
+    "primary_key" : [ {
+      "id" : "377c0a6e-938e-458c-ad2b-bbbd75d46412",
+      "table" : {
+        "id" : "666d0b6b-f017-4f7c-80d8-a47174d8b539",
+        "name" : "Weather AUS",
+        "description" : "Weather in Australia",
+        "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+        "internal_name" : "weather_aus",
+        "is_versioned" : true,
+        "is_public" : false,
+        "is_schema_public" : false,
+        "owned_by" : "cd5bab0d-7799-4069-85fb-c5d738572a0b"
+      },
+      "column" : {
+        "id" : "377c0a6e-938e-458c-ad2b-bbbd75d46412",
+        "name" : "id",
+        "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+        "table_id" : "666d0b6b-f017-4f7c-80d8-a47174d8b539",
+        "internal_name" : "id",
+        "type" : "serial"
+      }
+    } ]
+  },
+  "created" : "2023-02-26 08:26:15",
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "internal_name" : "weather_aus",
+  "is_versioned" : true,
+  "is_schema_public" : false,
+  "queue_name" : "weather_aus",
+  "queue_type" : "quorum",
+  "routing_key" : "dbrepo.b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425.666d0b6b-f017-4f7c-80d8-a47174d8b539",
+  "is_public" : false,
+  "num_rows" : 3,
+  "data_length" : 2000,
+  "max_data_length" : 9223372036854775807,
+  "avg_row_length" : 3
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/table-2.json b/lib/java/dbrepo-core/src/main/resources/table-2.json
new file mode 100644
index 0000000000..3549be3313
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/table-2.json
@@ -0,0 +1,159 @@
+{
+  "id" : "0cc067b6-4e81-4871-b47e-17a38228a574",
+  "name" : "Weather Location",
+  "identifiers" : [ ],
+  "owner" : {
+    "id" : "eeb9a51b-4cd8-4039-90bf-e24f17372f7c",
+    "username" : "junit2",
+    "name" : "Jane Doe",
+    "orcid" : "https://orcid.org/0000-0002-9272-6225",
+    "qualified_name" : "Jane Doe — @junit2",
+    "given_name" : "Jane",
+    "family_name" : "Doe"
+  },
+  "description" : "Weather location",
+  "columns" : [ {
+    "id" : "795faa78-7ebb-4dd5-9eb1-e54a9192d0b5",
+    "name" : "location",
+    "size" : 255,
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "0cc067b6-4e81-4871-b47e-17a38228a574",
+    "ord" : 0,
+    "internal_name" : "location",
+    "type" : "varchar",
+    "is_null_allowed" : false
+  }, {
+    "id" : "f316ced5-7774-4656-aa7f-a874622d99b3",
+    "name" : "lat",
+    "size" : 10,
+    "d" : 0,
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "0cc067b6-4e81-4871-b47e-17a38228a574",
+    "ord" : 1,
+    "internal_name" : "lat",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  }, {
+    "id" : "11cb1aa2-8582-45ef-a3bb-7056aa94cdf1",
+    "name" : "lng",
+    "size" : 10,
+    "d" : 0,
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "0cc067b6-4e81-4871-b47e-17a38228a574",
+    "ord" : 2,
+    "internal_name" : "lng",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  } ],
+  "constraints" : {
+    "uniques" : [ {
+      "id" : "408e398f-d157-49a1-8b45-87a070f3b4de",
+      "name" : "uk_1",
+      "table" : {
+        "id" : "0cc067b6-4e81-4871-b47e-17a38228a574",
+        "name" : "Weather Location",
+        "description" : "Weather location",
+        "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+        "internal_name" : "weather_location",
+        "is_versioned" : true,
+        "is_public" : false,
+        "is_schema_public" : true,
+        "owned_by" : "eeb9a51b-4cd8-4039-90bf-e24f17372f7c"
+      },
+      "columns" : [ {
+        "id" : "f316ced5-7774-4656-aa7f-a874622d99b3",
+        "name" : "lat",
+        "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+        "table_id" : "0cc067b6-4e81-4871-b47e-17a38228a574",
+        "internal_name" : "lat",
+        "type" : "decimal"
+      } ]
+    } ],
+    "checks" : [ "`mintemp` > 0" ],
+    "foreign_keys" : [ {
+      "id" : "d79f0fb1-05d6-4f3e-a5e2-8559982b8516",
+      "name" : "fk_location",
+      "references" : [ {
+        "id" : "a4da8f2f-2999-4621-8066-801a2fb73c8d",
+        "column" : {
+          "id" : "11cb1aa2-8582-45ef-a3bb-7056aa94cdf1",
+          "name" : "lng",
+          "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+          "table_id" : "0cc067b6-4e81-4871-b47e-17a38228a574",
+          "internal_name" : "lng",
+          "type" : "decimal"
+        },
+        "foreign_key" : {
+          "id" : "d79f0fb1-05d6-4f3e-a5e2-8559982b8516"
+        },
+        "referenced_column" : {
+          "id" : "377c0a6e-938e-458c-ad2b-bbbd75d46412",
+          "name" : "id",
+          "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+          "table_id" : "666d0b6b-f017-4f7c-80d8-a47174d8b539",
+          "internal_name" : "id",
+          "type" : "serial"
+        }
+      } ],
+      "table" : {
+        "id" : "0cc067b6-4e81-4871-b47e-17a38228a574",
+        "name" : "Weather Location",
+        "description" : "Weather location",
+        "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+        "internal_name" : "weather_location",
+        "is_versioned" : true,
+        "is_public" : false,
+        "is_schema_public" : true,
+        "owned_by" : "eeb9a51b-4cd8-4039-90bf-e24f17372f7c"
+      },
+      "referenced_table" : {
+        "id" : "666d0b6b-f017-4f7c-80d8-a47174d8b539",
+        "name" : "Weather AUS",
+        "description" : "Weather in Australia",
+        "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+        "internal_name" : "weather_aus",
+        "is_versioned" : true,
+        "is_public" : false,
+        "is_schema_public" : false,
+        "owned_by" : "cd5bab0d-7799-4069-85fb-c5d738572a0b"
+      },
+      "on_update" : "no_action",
+      "on_delete" : "no_action"
+    } ],
+    "primary_key" : [ {
+      "id" : "795faa78-7ebb-4dd5-9eb1-e54a9192d0b5",
+      "table" : {
+        "id" : "0cc067b6-4e81-4871-b47e-17a38228a574",
+        "name" : "Weather Location",
+        "description" : "Weather location",
+        "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+        "internal_name" : "weather_location",
+        "is_versioned" : true,
+        "is_public" : false,
+        "is_schema_public" : true,
+        "owned_by" : "eeb9a51b-4cd8-4039-90bf-e24f17372f7c"
+      },
+      "column" : {
+        "id" : "795faa78-7ebb-4dd5-9eb1-e54a9192d0b5",
+        "name" : "location",
+        "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+        "table_id" : "0cc067b6-4e81-4871-b47e-17a38228a574",
+        "internal_name" : "location",
+        "type" : "varchar"
+      }
+    } ]
+  },
+  "created" : "2023-02-26 08:26:47",
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "internal_name" : "weather_location",
+  "is_versioned" : true,
+  "is_schema_public" : true,
+  "queue_name" : "weather_location",
+  "queue_type" : "quorum",
+  "routing_key" : "dbrepo.b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425.0cc067b6-4e81-4871-b47e-17a38228a574",
+  "is_public" : false,
+  "num_rows" : 3,
+  "data_length" : 2000,
+  "max_data_length" : 9223372036854775807,
+  "avg_row_length" : 3
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/table-3.json b/lib/java/dbrepo-core/src/main/resources/table-3.json
new file mode 100644
index 0000000000..6e314165bb
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/table-3.json
@@ -0,0 +1,440 @@
+{
+  "id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+  "name" : "Sensor",
+  "identifiers" : [ ],
+  "owner" : {
+    "id" : "7b080e33-d8db-4276-9d53-47208e657006",
+    "username" : "junit3",
+    "name" : "System System",
+    "qualified_name" : "System System — @junit3",
+    "given_name" : "System",
+    "family_name" : "System"
+  },
+  "description" : "Some sensor data",
+  "columns" : [ {
+    "id" : "49cc2735-ba75-4e12-8ac7-8aec87ed7724",
+    "name" : "id",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 0,
+    "internal_name" : "id",
+    "type" : "bigint",
+    "is_null_allowed" : false
+  }, {
+    "id" : "2c240d64-3052-4a74-b696-e7490fdff3ea",
+    "name" : "linie",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 1,
+    "internal_name" : "linie",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "6fbb0a56-f23a-4aa4-b158-c614a0a30f86",
+    "name" : "richtung",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 2,
+    "internal_name" : "richtung",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "9b01f925-93ee-4f28-bf31-9902900a7099",
+    "name" : "betriebsdatum",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 3,
+    "internal_name" : "betriebsdatum",
+    "type" : "date",
+    "is_null_allowed" : true
+  }, {
+    "id" : "9bbd66f1-0d94-401c-b7f7-6e329bb9ee21",
+    "name" : "fahrzeug",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 4,
+    "internal_name" : "fahrzeug",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "19ad93d7-b298-495b-9678-9aac80678ff9",
+    "name" : "kurs",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 5,
+    "internal_name" : "kurs",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "4d27d9f4-645f-4222-b5a8-4a91fa6e4275",
+    "name" : "seq_von",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 6,
+    "internal_name" : "seq_von",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "b4f8fcf8-5824-45ec-8c58-43f20e6dffc5",
+    "name" : "halt_diva_von",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 7,
+    "internal_name" : "halt_diva_von",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "87247218-369e-484a-9a8f-d758478d8dfc",
+    "name" : "halt_punkt_diva_von",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 8,
+    "internal_name" : "halt_punkt_diva_von",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "6e191b97-189a-4d88-901e-888ca889e280",
+    "name" : "halt_kurz_von1",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 9,
+    "internal_name" : "halt_kurz_von1",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "6ac356ff-9be5-4259-9b62-83b6707be7fe",
+    "name" : "datum_von",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 10,
+    "internal_name" : "datum_von",
+    "type" : "date",
+    "is_null_allowed" : true
+  }, {
+    "id" : "0665b384-c824-4358-b6c5-f17706d46ea4",
+    "name" : "soll_an_von",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 11,
+    "internal_name" : "soll_an_von",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "22d3676e-d28e-4075-b223-91a7ac767bcf",
+    "name" : "ist_an_von",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 12,
+    "internal_name" : "ist_an_von",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "673326e3-ee2b-4c2f-902f-982e2abce1c2",
+    "name" : "soll_ab_von",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 13,
+    "internal_name" : "soll_ab_von",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "8dcacf4a-736b-4e67-9618-74998cba8940",
+    "name" : "ist_ab_von",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 14,
+    "internal_name" : "ist_ab_von",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "2b2f5359-76d3-4763-a53f-d18ca6b793fb",
+    "name" : "seq_nach",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 15,
+    "internal_name" : "seq_nach",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "674b6120-06cf-4624-b006-1ed48898bd69",
+    "name" : "halt_diva_nach",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 16,
+    "internal_name" : "halt_diva_nach",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "13edd7c9-6c88-44d7-b206-34774e49c5af",
+    "name" : "halt_punkt_diva_nach",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 17,
+    "internal_name" : "halt_punkt_diva_nach",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "6977bb3f-4ae2-43ea-bb82-c7f68454c538",
+    "name" : "halt_kurz_nach1",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 18,
+    "internal_name" : "halt_kurz_nach1",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "c03d2429-53e1-42eb-a1f5-ce342fa23336",
+    "name" : "datum_nach",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 19,
+    "internal_name" : "datum_nach",
+    "type" : "date",
+    "is_null_allowed" : true
+  }, {
+    "id" : "06edd332-750e-4aa1-b61b-e757fb2312c3",
+    "name" : "soll_an_nach",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 20,
+    "internal_name" : "soll_an_nach",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "b6b8631d-f283-49da-8d5e-4bb24def2a40",
+    "name" : "ist_an_nach1",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 21,
+    "internal_name" : "ist_an_nach1",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "0393ee00-31ba-44ab-9e82-1f5034a9f57b",
+    "name" : "soll_ab_nach",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 22,
+    "internal_name" : "soll_ab_nach",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "a63784ea-f70d-4bda-ace6-1c6a88edf831",
+    "name" : "ist_ab_nach",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 23,
+    "internal_name" : "ist_ab_nach",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "720fe829-802c-420b-8e41-bdbb636db43c",
+    "name" : "fahrt_id",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 24,
+    "internal_name" : "fahrt_id",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "5bce38ef-7d49-43b5-9054-068750684b5f",
+    "name" : "fahrweg_id",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 25,
+    "internal_name" : "fahrweg_id",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "92097c02-3dd3-40ea-bd03-a9135f45a557",
+    "name" : "fw_no",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 26,
+    "internal_name" : "fw_no",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "7361a38a-828b-495e-8a57-b36cca17d7db",
+    "name" : "fw_typ",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 27,
+    "internal_name" : "fw_typ",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "a06812db-03b7-484c-92a6-45d94eef3bb9",
+    "name" : "fw_kurz",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 28,
+    "internal_name" : "fw_kurz",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "05614d89-9216-47ea-96f0-acffc4674acf",
+    "name" : "fw_lang",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 29,
+    "internal_name" : "fw_lang",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "05ada13d-361a-48e7-9a0f-1191499509f1",
+    "name" : "umlauf_von",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 30,
+    "internal_name" : "umlauf_von",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "b3f259f6-700a-4b60-8eac-dceaa0dcda9d",
+    "name" : "halt_id_von",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 31,
+    "internal_name" : "halt_id_von",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "9160af06-e168-4b10-a7f9-520f41ae7955",
+    "name" : "halt_id_nach",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 32,
+    "internal_name" : "halt_id_nach",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "fde20c99-ed9c-4a60-8c18-f46e8603ebb5",
+    "name" : "halt_punkt_id_von",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 33,
+    "internal_name" : "halt_punkt_id_von",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "071c7f27-1cdd-4af9-b4d6-f932c27c7287",
+    "name" : "halt_punkt_id_nach",
+    "enums" : [ ],
+    "sets" : [ ],
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+    "ord" : 34,
+    "internal_name" : "halt_punkt_id_nach",
+    "type" : "int",
+    "is_null_allowed" : true
+  } ],
+  "constraints" : {
+    "uniques" : [ ],
+    "checks" : [ ],
+    "foreign_keys" : [ ],
+    "primary_key" : [ {
+      "id" : "49cc2735-ba75-4e12-8ac7-8aec87ed7724",
+      "table" : {
+        "id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+        "name" : "Sensor",
+        "description" : "Some sensor data",
+        "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+        "internal_name" : "sensor",
+        "is_versioned" : true,
+        "is_public" : false,
+        "is_schema_public" : false,
+        "owned_by" : "7b080e33-d8db-4276-9d53-47208e657006"
+      },
+      "column" : {
+        "id" : "49cc2735-ba75-4e12-8ac7-8aec87ed7724",
+        "name" : "id",
+        "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+        "table_id" : "a94ee518-c235-496b-8613-b0c643bc1b11",
+        "internal_name" : "id",
+        "type" : "bigint"
+      }
+    } ]
+  },
+  "created" : "2023-02-26 08:27:11",
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "internal_name" : "sensor",
+  "is_versioned" : true,
+  "is_schema_public" : false,
+  "queue_name" : "sensor",
+  "queue_type" : "quorum",
+  "routing_key" : "dbrepo.b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425.a94ee518-c235-496b-8613-b0c643bc1b11",
+  "is_public" : false,
+  "num_rows" : 6,
+  "data_length" : 1800,
+  "max_data_length" : 9223372036854775807,
+  "avg_row_length" : 6
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/table-4.json b/lib/java/dbrepo-core/src/main/resources/table-4.json
new file mode 100644
index 0000000000..1547b1d8fd
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/table-4.json
@@ -0,0 +1,74 @@
+{
+  "id" : "6c87cbcf-5043-404f-9bf1-b09ddbac25a2",
+  "name" : "Sensor 2",
+  "identifiers" : [ ],
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "description" : "Hello sensor",
+  "columns" : [ {
+    "id" : "c8ec8a56-dea1-4316-895f-56e6d289cbf7",
+    "name" : "Timestamp",
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "6c87cbcf-5043-404f-9bf1-b09ddbac25a2",
+    "ord" : 0,
+    "internal_name" : "timestamp",
+    "type" : "timestamp",
+    "is_null_allowed" : false
+  }, {
+    "id" : "d06956ae-aabd-474f-a47d-47af1ba043d1",
+    "name" : "Value",
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "table_id" : "6c87cbcf-5043-404f-9bf1-b09ddbac25a2",
+    "ord" : 1,
+    "internal_name" : "value",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  } ],
+  "constraints" : {
+    "uniques" : [ ],
+    "checks" : [ ],
+    "foreign_keys" : [ ],
+    "primary_key" : [ {
+      "id" : "c8ec8a56-dea1-4316-895f-56e6d289cbf7",
+      "table" : {
+        "id" : "6c87cbcf-5043-404f-9bf1-b09ddbac25a2",
+        "name" : "Sensor 2",
+        "description" : "Hello sensor",
+        "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+        "internal_name" : "sensor_2",
+        "is_versioned" : true,
+        "is_public" : true,
+        "is_schema_public" : false,
+        "owned_by" : "cd5bab0d-7799-4069-85fb-c5d738572a0b"
+      },
+      "column" : {
+        "id" : "c8ec8a56-dea1-4316-895f-56e6d289cbf7",
+        "name" : "Timestamp",
+        "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+        "table_id" : "6c87cbcf-5043-404f-9bf1-b09ddbac25a2",
+        "internal_name" : "timestamp",
+        "type" : "timestamp"
+      }
+    } ]
+  },
+  "created" : "2023-02-26 08:29:35",
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "internal_name" : "sensor_2",
+  "is_versioned" : true,
+  "is_schema_public" : false,
+  "queue_name" : "sensor_2",
+  "queue_type" : "quorum",
+  "routing_key" : "dbrepo.b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425.6c87cbcf-5043-404f-9bf1-b09ddbac25a2",
+  "is_public" : true,
+  "num_rows" : 0,
+  "data_length" : 1000,
+  "max_data_length" : 9223372036854775807,
+  "avg_row_length" : 0
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/table-5.json b/lib/java/dbrepo-core/src/main/resources/table-5.json
new file mode 100644
index 0000000000..8be799126a
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/table-5.json
@@ -0,0 +1,241 @@
+{
+  "id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+  "name" : "zoo",
+  "identifiers" : [ ],
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "description" : "Some Kaggle dataset",
+  "columns" : [ {
+    "id" : "4efd4cbb-ca2e-48e2-8f40-37514956aa67",
+    "name" : "id",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 0,
+    "internal_name" : "id",
+    "type" : "bigint",
+    "is_null_allowed" : false
+  }, {
+    "id" : "53061685-c1db-4df6-ad4e-8f384a200104",
+    "name" : "Animal Name",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 1,
+    "internal_name" : "animal_name",
+    "type" : "varchar",
+    "is_null_allowed" : true
+  }, {
+    "id" : "643f9cda-8db1-47a4-bb08-c10e78e54c10",
+    "name" : "Hair",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 2,
+    "internal_name" : "hair",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "efeacc15-3b31-4a9f-9dba-f07d62dcddd6",
+    "name" : "Feathers",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 3,
+    "internal_name" : "feathers",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "0319db31-473a-47bc-bb9d-fa1edf82fcd5",
+    "name" : "Bread",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 4,
+    "internal_name" : "bread",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "9ba789ca-59cf-4480-b9f6-3b957b1d7f5c",
+    "name" : "Eggs",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 5,
+    "internal_name" : "eggs",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "81c42954-fd1a-4fef-adb1-bc4945469e26",
+    "name" : "Milk",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 6,
+    "internal_name" : "milk",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "49a38905-52a2-4a9b-b7b9-5e1dcf799b2a",
+    "name" : "Water",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 7,
+    "internal_name" : "water",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "1e1a9b6b-5aee-4773-b52d-ea56a5d1e2c8",
+    "name" : "Airborne",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 8,
+    "internal_name" : "airborne",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "42ede62a-ae98-4a14-ba54-76b8ba1c580f",
+    "name" : "Waterborne",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 9,
+    "internal_name" : "waterborne",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "0af0f84a-5a58-418a-8bbc-bde29ed0cda0",
+    "name" : "Aquantic",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 10,
+    "internal_name" : "aquantic",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "d9cb30a2-1566-4bd1-899d-060a8ba47722",
+    "name" : "Predator",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 11,
+    "internal_name" : "predator",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "e69f7f75-3731-4706-8193-0393aa0c08a7",
+    "name" : "Backbone",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 12,
+    "internal_name" : "backbone",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "4441630e-7dfa-4046-8bc2-929860f1c66e",
+    "name" : "Breathes",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 13,
+    "internal_name" : "breathes",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "f0a12be0-0b26-4686-bf7e-539cdc7e71b4",
+    "name" : "Venomous",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 14,
+    "internal_name" : "venomous",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "b60abdcc-5786-40f8-a309-e4467f7d963c",
+    "name" : "Fin",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 15,
+    "internal_name" : "fin",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "6d5877e2-daef-43d6-a1b6-1aff3ab1a9a2",
+    "name" : "Legs",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 16,
+    "internal_name" : "legs",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "bb45455f-d449-496e-94f8-eac4d46ba9c0",
+    "name" : "Tail",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 17,
+    "internal_name" : "tail",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  }, {
+    "id" : "44c5484b-b57d-48a4-8f24-d2074de98e1a",
+    "name" : "Domestic",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 18,
+    "internal_name" : "domestic",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "6475b937-71fc-4331-bc85-8ee71fa68d99",
+    "name" : "Catsize",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 19,
+    "internal_name" : "catsize",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "92ff472f-e203-4c8e-b243-81640229ca19",
+    "name" : "Class Type",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+    "ord" : 20,
+    "internal_name" : "class_type",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  } ],
+  "constraints" : {
+    "uniques" : [ ],
+    "checks" : [ ],
+    "foreign_keys" : [ ],
+    "primary_key" : [ {
+      "id" : "4efd4cbb-ca2e-48e2-8f40-37514956aa67",
+      "table" : {
+        "id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+        "name" : "zoo",
+        "description" : "Some Kaggle dataset",
+        "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+        "internal_name" : "zoo",
+        "is_versioned" : true,
+        "is_public" : true,
+        "is_schema_public" : true,
+        "owned_by" : "cd5bab0d-7799-4069-85fb-c5d738572a0b"
+      },
+      "column" : {
+        "id" : "4efd4cbb-ca2e-48e2-8f40-37514956aa67",
+        "name" : "id",
+        "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+        "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+        "internal_name" : "id",
+        "type" : "bigint"
+      }
+    } ]
+  },
+  "created" : "2025-03-24 12:31:48",
+  "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+  "internal_name" : "zoo",
+  "is_versioned" : true,
+  "is_schema_public" : true,
+  "queue_name" : "zoo",
+  "queue_type" : "quorum",
+  "routing_key" : "dbrepo.dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe.91306cbd-c51f-47d3-8722-debfdbd8a77e",
+  "is_public" : true
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/table-6.json b/lib/java/dbrepo-core/src/main/resources/table-6.json
new file mode 100644
index 0000000000..ee2e26b6b7
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/table-6.json
@@ -0,0 +1,106 @@
+{
+  "id" : "ae84d169-d36c-4f5a-a390-153d090f9574",
+  "name" : "names",
+  "identifiers" : [ ],
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "description" : "Some names dataset",
+  "columns" : [ {
+    "id" : "27b04a64-2849-4fae-b295-858c3e50361f",
+    "name" : "id",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "ae84d169-d36c-4f5a-a390-153d090f9574",
+    "ord" : 0,
+    "internal_name" : "id",
+    "type" : "bigint",
+    "is_null_allowed" : false
+  }, {
+    "id" : "1ea62e32-5719-4152-94da-45d37eb88b6f",
+    "name" : "firstname",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "ae84d169-d36c-4f5a-a390-153d090f9574",
+    "ord" : 1,
+    "internal_name" : "firstname",
+    "type" : "varchar",
+    "is_null_allowed" : false
+  }, {
+    "id" : "f523f9f5-42f7-4695-841e-a5fd30fa6879",
+    "name" : "lastname",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "ae84d169-d36c-4f5a-a390-153d090f9574",
+    "ord" : 2,
+    "internal_name" : "lastname",
+    "type" : "varchar",
+    "is_null_allowed" : false
+  }, {
+    "id" : "f57ea880-f917-4127-bcbb-202a34831383",
+    "name" : "birth",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "ae84d169-d36c-4f5a-a390-153d090f9574",
+    "ord" : 3,
+    "internal_name" : "birth",
+    "type" : "year",
+    "is_null_allowed" : false
+  }, {
+    "id" : "38aaeb63-b94b-4d90-8eae-a626dfb1f092",
+    "name" : "reminder",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "ae84d169-d36c-4f5a-a390-153d090f9574",
+    "ord" : 4,
+    "internal_name" : "reminder",
+    "type" : "time",
+    "is_null_allowed" : false
+  }, {
+    "id" : "f788cf6f-66ed-4f28-8b24-d9d173c4d340",
+    "name" : "ref_id",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "ae84d169-d36c-4f5a-a390-153d090f9574",
+    "ord" : 5,
+    "internal_name" : "ref_id",
+    "type" : "bigint",
+    "is_null_allowed" : true
+  } ],
+  "constraints" : {
+    "uniques" : [ ],
+    "checks" : [ ],
+    "foreign_keys" : [ ],
+    "primary_key" : [ {
+      "id" : "27b04a64-2849-4fae-b295-858c3e50361f",
+      "table" : {
+        "id" : "ae84d169-d36c-4f5a-a390-153d090f9574",
+        "name" : "names",
+        "description" : "Some names dataset",
+        "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+        "internal_name" : "names",
+        "is_versioned" : true,
+        "is_public" : true,
+        "is_schema_public" : false,
+        "owned_by" : "cd5bab0d-7799-4069-85fb-c5d738572a0b"
+      },
+      "column" : {
+        "id" : "27b04a64-2849-4fae-b295-858c3e50361f",
+        "name" : "id",
+        "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+        "table_id" : "ae84d169-d36c-4f5a-a390-153d090f9574",
+        "internal_name" : "id",
+        "type" : "bigint"
+      }
+    } ]
+  },
+  "created" : "2023-02-26 08:28:37",
+  "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+  "internal_name" : "names",
+  "is_versioned" : true,
+  "is_schema_public" : false,
+  "queue_name" : "names",
+  "queue_type" : "quorum",
+  "routing_key" : "dbrepo.dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe.ae84d169-d36c-4f5a-a390-153d090f9574",
+  "is_public" : true
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/table-7.json b/lib/java/dbrepo-core/src/main/resources/table-7.json
new file mode 100644
index 0000000000..c280bf116a
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/table-7.json
@@ -0,0 +1,168 @@
+{
+  "id" : "e5d10200-3e4f-45f4-9f36-ff3ca39c6c29",
+  "name" : "likes",
+  "identifiers" : [ ],
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "description" : "Some likes dataset",
+  "columns" : [ {
+    "id" : "395b44a4-0e31-41ea-94ad-c4f2d5e912c6",
+    "name" : "name_id",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "e5d10200-3e4f-45f4-9f36-ff3ca39c6c29",
+    "ord" : 0,
+    "internal_name" : "name_id",
+    "type" : "bigint",
+    "is_null_allowed" : false
+  }, {
+    "id" : "5713333b-872a-44c5-ab94-4d0ab62f5663",
+    "name" : "zoo_id",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "table_id" : "e5d10200-3e4f-45f4-9f36-ff3ca39c6c29",
+    "ord" : 1,
+    "internal_name" : "zoo_id",
+    "type" : "bigint",
+    "is_null_allowed" : false
+  } ],
+  "constraints" : {
+    "uniques" : [ ],
+    "checks" : [ ],
+    "foreign_keys" : [ {
+      "id" : "421c3dd8-ae09-4c72-a6ca-09de009e755f",
+      "name" : "fk_name_id",
+      "references" : [ {
+        "id" : "7c0e4a3c-88b8-4276-8924-403fd122fbf1",
+        "column" : {
+          "id" : "27b04a64-2849-4fae-b295-858c3e50361f",
+          "name" : "id",
+          "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+          "table_id" : "e5d10200-3e4f-45f4-9f36-ff3ca39c6c29",
+          "internal_name" : "id",
+          "type" : "bigint"
+        },
+        "foreign_key" : {
+          "id" : "421c3dd8-ae09-4c72-a6ca-09de009e755f"
+        },
+        "referenced_column" : {
+          "id" : "395b44a4-0e31-41ea-94ad-c4f2d5e912c6",
+          "name" : "name_id",
+          "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+          "table_id" : "ae84d169-d36c-4f5a-a390-153d090f9574",
+          "internal_name" : "name_id",
+          "type" : "bigint"
+        }
+      } ],
+      "table" : {
+        "id" : "e5d10200-3e4f-45f4-9f36-ff3ca39c6c29",
+        "name" : "likes",
+        "description" : "Some likes dataset",
+        "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+        "internal_name" : "likes",
+        "is_versioned" : true,
+        "is_public" : true,
+        "is_schema_public" : true,
+        "owned_by" : "cd5bab0d-7799-4069-85fb-c5d738572a0b"
+      },
+      "referenced_table" : {
+        "id" : "ae84d169-d36c-4f5a-a390-153d090f9574",
+        "name" : "names",
+        "description" : "Some names dataset",
+        "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+        "internal_name" : "names",
+        "is_versioned" : true,
+        "is_public" : true,
+        "is_schema_public" : false,
+        "owned_by" : "cd5bab0d-7799-4069-85fb-c5d738572a0b"
+      },
+      "on_update" : "no_action",
+      "on_delete" : "no_action"
+    }, {
+      "id" : "fce75207-6009-49ff-a646-d3e18aed787a",
+      "name" : "fk_zoo_id",
+      "references" : [ {
+        "id" : "e6cb1daa-a210-41c4-bb79-2c98ef25a02c",
+        "column" : {
+          "id" : "4efd4cbb-ca2e-48e2-8f40-37514956aa67",
+          "name" : "id",
+          "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+          "table_id" : "e5d10200-3e4f-45f4-9f36-ff3ca39c6c29",
+          "internal_name" : "id",
+          "type" : "bigint"
+        },
+        "foreign_key" : {
+          "id" : "fce75207-6009-49ff-a646-d3e18aed787a"
+        },
+        "referenced_column" : {
+          "id" : "5713333b-872a-44c5-ab94-4d0ab62f5663",
+          "name" : "zoo_id",
+          "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+          "table_id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+          "internal_name" : "zoo_id",
+          "type" : "bigint"
+        }
+      } ],
+      "table" : {
+        "id" : "e5d10200-3e4f-45f4-9f36-ff3ca39c6c29",
+        "name" : "likes",
+        "description" : "Some likes dataset",
+        "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+        "internal_name" : "likes",
+        "is_versioned" : true,
+        "is_public" : true,
+        "is_schema_public" : true,
+        "owned_by" : "cd5bab0d-7799-4069-85fb-c5d738572a0b"
+      },
+      "referenced_table" : {
+        "id" : "91306cbd-c51f-47d3-8722-debfdbd8a77e",
+        "name" : "zoo",
+        "description" : "Some Kaggle dataset",
+        "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+        "internal_name" : "zoo",
+        "is_versioned" : true,
+        "is_public" : true,
+        "is_schema_public" : true,
+        "owned_by" : "cd5bab0d-7799-4069-85fb-c5d738572a0b"
+      },
+      "on_update" : "no_action",
+      "on_delete" : "no_action"
+    } ],
+    "primary_key" : [ {
+      "id" : "395b44a4-0e31-41ea-94ad-c4f2d5e912c6",
+      "table" : {
+        "id" : "e5d10200-3e4f-45f4-9f36-ff3ca39c6c29",
+        "name" : "likes",
+        "description" : "Some likes dataset",
+        "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+        "internal_name" : "likes",
+        "is_versioned" : true,
+        "is_public" : true,
+        "is_schema_public" : true,
+        "owned_by" : "cd5bab0d-7799-4069-85fb-c5d738572a0b"
+      },
+      "column" : {
+        "id" : "395b44a4-0e31-41ea-94ad-c4f2d5e912c6",
+        "name" : "name_id",
+        "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+        "table_id" : "e5d10200-3e4f-45f4-9f36-ff3ca39c6c29",
+        "internal_name" : "name_id",
+        "type" : "bigint"
+      }
+    } ]
+  },
+  "created" : "2023-02-26 08:29:07",
+  "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+  "internal_name" : "likes",
+  "is_versioned" : true,
+  "is_schema_public" : true,
+  "queue_name" : "likes",
+  "queue_type" : "quorum",
+  "routing_key" : "dbrepo.dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe.e5d10200-3e4f-45f4-9f36-ff3ca39c6c29",
+  "is_public" : true
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/table-8.json b/lib/java/dbrepo-core/src/main/resources/table-8.json
new file mode 100644
index 0000000000..7103bf211f
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/table-8.json
@@ -0,0 +1,81 @@
+{
+  "id" : "2e039d0d-3257-4083-8b32-76d7cfa1f7fd",
+  "name" : "location",
+  "identifiers" : [ ],
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "description" : "Hello mfcc",
+  "columns" : [ {
+    "id" : "af362ac6-5dbb-4ede-83ea-5d94b39641c8",
+    "name" : "ID",
+    "database_id" : "9d8cb9a9-9468-4801-a2e0-2dac8bc67c31",
+    "table_id" : "2e039d0d-3257-4083-8b32-76d7cfa1f7fd",
+    "ord" : 0,
+    "internal_name" : "id",
+    "type" : "bigint",
+    "is_null_allowed" : false
+  }, {
+    "id" : "7ada597b-0766-4612-9ace-67eeee94e2da",
+    "name" : "Value",
+    "size" : 10,
+    "d" : 10,
+    "database_id" : "9d8cb9a9-9468-4801-a2e0-2dac8bc67c31",
+    "table_id" : "2e039d0d-3257-4083-8b32-76d7cfa1f7fd",
+    "ord" : 1,
+    "internal_name" : "value",
+    "type" : "decimal",
+    "is_null_allowed" : false
+  }, {
+    "id" : "8bcd9ef8-f7b8-4730-acc1-a3d43ba69a56",
+    "name" : "raw",
+    "database_id" : "9d8cb9a9-9468-4801-a2e0-2dac8bc67c31",
+    "table_id" : "2e039d0d-3257-4083-8b32-76d7cfa1f7fd",
+    "ord" : 2,
+    "internal_name" : "raw",
+    "type" : "longblob",
+    "is_null_allowed" : true
+  } ],
+  "constraints" : {
+    "uniques" : [ ],
+    "checks" : [ ],
+    "foreign_keys" : [ ],
+    "primary_key" : [ {
+      "id" : "cd23b601-966c-4aa7-9722-6bcb009200cc",
+      "table" : {
+        "id" : "2e039d0d-3257-4083-8b32-76d7cfa1f7fd",
+        "name" : "location",
+        "description" : "Hello mfcc",
+        "database_id" : "9d8cb9a9-9468-4801-a2e0-2dac8bc67c31",
+        "internal_name" : "mfcc",
+        "is_versioned" : true,
+        "is_public" : false,
+        "is_schema_public" : false,
+        "owned_by" : "cd5bab0d-7799-4069-85fb-c5d738572a0b"
+      },
+      "column" : {
+        "id" : "af362ac6-5dbb-4ede-83ea-5d94b39641c8",
+        "name" : "ID",
+        "database_id" : "9d8cb9a9-9468-4801-a2e0-2dac8bc67c31",
+        "table_id" : "2e039d0d-3257-4083-8b32-76d7cfa1f7fd",
+        "internal_name" : "id",
+        "type" : "bigint"
+      }
+    } ]
+  },
+  "created" : "2023-07-03 16:03:05",
+  "database_id" : "9d8cb9a9-9468-4801-a2e0-2dac8bc67c31",
+  "internal_name" : "mfcc",
+  "is_versioned" : true,
+  "is_schema_public" : false,
+  "queue_name" : "mfcc",
+  "queue_type" : "quorum",
+  "routing_key" : "dbrepo.9d8cb9a9-9468-4801-a2e0-2dac8bc67c31.2e039d0d-3257-4083-8b32-76d7cfa1f7fd",
+  "is_public" : false
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/table-9.json b/lib/java/dbrepo-core/src/main/resources/table-9.json
new file mode 100644
index 0000000000..dbe1948187
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/table-9.json
@@ -0,0 +1,84 @@
+{
+  "id" : "9314294f-04fc-4354-8b1f-2a8aeb566453",
+  "name" : "Weather Location",
+  "identifiers" : [ ],
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "description" : "Location",
+  "columns" : [ {
+    "id" : "e03c7578-2d1a-4599-9b11-7174f40efc0a",
+    "name" : "location",
+    "size" : 255,
+    "database_id" : "c503d7f3-5952-4d97-b26a-da86bea4c20d",
+    "table_id" : "9314294f-04fc-4354-8b1f-2a8aeb566453",
+    "ord" : 0,
+    "internal_name" : "location",
+    "type" : "varchar",
+    "is_null_allowed" : false
+  }, {
+    "id" : "03c07223-17e1-4af5-b1ae-ef9ab434fe2d",
+    "name" : "lat",
+    "size" : 10,
+    "d" : 0,
+    "database_id" : "c503d7f3-5952-4d97-b26a-da86bea4c20d",
+    "table_id" : "9314294f-04fc-4354-8b1f-2a8aeb566453",
+    "ord" : 1,
+    "internal_name" : "lat",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  }, {
+    "id" : "ee6590db-923b-4234-beb8-3120da055cf6",
+    "name" : "lng",
+    "size" : 10,
+    "d" : 0,
+    "database_id" : "c503d7f3-5952-4d97-b26a-da86bea4c20d",
+    "table_id" : "9314294f-04fc-4354-8b1f-2a8aeb566453",
+    "ord" : 2,
+    "internal_name" : "lng",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  } ],
+  "constraints" : {
+    "uniques" : [ ],
+    "checks" : [ ],
+    "foreign_keys" : [ ],
+    "primary_key" : [ {
+      "id" : "e03c7578-2d1a-4599-9b11-7174f40efc0a",
+      "table" : {
+        "id" : "9314294f-04fc-4354-8b1f-2a8aeb566453",
+        "name" : "Weather Location",
+        "description" : "Location",
+        "database_id" : "c503d7f3-5952-4d97-b26a-da86bea4c20d",
+        "internal_name" : "weather_location",
+        "is_versioned" : true,
+        "is_public" : false,
+        "is_schema_public" : true,
+        "owned_by" : "cd5bab0d-7799-4069-85fb-c5d738572a0b"
+      },
+      "column" : {
+        "id" : "e03c7578-2d1a-4599-9b11-7174f40efc0a",
+        "name" : "location",
+        "database_id" : "c503d7f3-5952-4d97-b26a-da86bea4c20d",
+        "table_id" : "9314294f-04fc-4354-8b1f-2a8aeb566453",
+        "internal_name" : "location",
+        "type" : "varchar"
+      }
+    } ]
+  },
+  "created" : "2023-07-03 16:03:05",
+  "database_id" : "c503d7f3-5952-4d97-b26a-da86bea4c20d",
+  "internal_name" : "weather_location",
+  "is_versioned" : true,
+  "is_schema_public" : true,
+  "queue_name" : "weather_location",
+  "queue_type" : "quorum",
+  "routing_key" : "dbrepo.c503d7f3-5952-4d97-b26a-da86bea4c20d.9314294f-04fc-4354-8b1f-2a8aeb566453",
+  "is_public" : false
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/unit-1.json b/lib/java/dbrepo-core/src/main/resources/unit-1.json
new file mode 100644
index 0000000000..69d0d63483
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/unit-1.json
@@ -0,0 +1,6 @@
+{
+  "id" : "1fee60e4-42f8-4883-85a8-e282fddf6a62",
+  "uri" : "http://www.ontology-of-units-of-measure.org/resource/om-2/millimetre",
+  "name" : "millimetre",
+  "description" : "The millimetre is a unit of length defined as 1.0e-3 metre."
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/unit-2.json b/lib/java/dbrepo-core/src/main/resources/unit-2.json
new file mode 100644
index 0000000000..5e555d39a1
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/unit-2.json
@@ -0,0 +1,6 @@
+{
+  "id" : "d88591a9-5171-4b12-8381-bcff1cfe7442",
+  "uri" : "http://www.ontology-of-units-of-measure.org/resource/om-2/tonne",
+  "name" : "tonne",
+  "description" : "The tonne is a unit of mass defined as 1000 kilogram."
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/user-1.json b/lib/java/dbrepo-core/src/main/resources/user-1.json
new file mode 100644
index 0000000000..3eebc1e484
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/user-1.json
@@ -0,0 +1,14 @@
+{
+  "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+  "name" : "John Doe",
+  "username" : "junit1",
+  "attributes" : {
+    "theme" : "light",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "affiliation" : "TU Graz",
+    "language" : "en"
+  },
+  "qualified_name" : "John Doe — @junit1",
+  "given_name" : "John",
+  "family_name" : "Doe"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/user-2.json b/lib/java/dbrepo-core/src/main/resources/user-2.json
new file mode 100644
index 0000000000..e935687704
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/user-2.json
@@ -0,0 +1,14 @@
+{
+  "id" : "eeb9a51b-4cd8-4039-90bf-e24f17372f7c",
+  "name" : "Jane Doe",
+  "username" : "junit2",
+  "attributes" : {
+    "theme" : "light",
+    "orcid" : "https://orcid.org/0000-0002-9272-6225",
+    "affiliation" : "TU Wien",
+    "language" : "de"
+  },
+  "qualified_name" : "Jane Doe — @junit2",
+  "given_name" : "Jane",
+  "family_name" : "Doe"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/user-3.json b/lib/java/dbrepo-core/src/main/resources/user-3.json
new file mode 100644
index 0000000000..73f468c457
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/user-3.json
@@ -0,0 +1,12 @@
+{
+  "id" : "7b080e33-d8db-4276-9d53-47208e657006",
+  "name" : "System System",
+  "username" : "junit3",
+  "attributes" : {
+    "theme" : "light",
+    "affiliation" : "TU Wien"
+  },
+  "qualified_name" : "System System — @junit3",
+  "given_name" : "System",
+  "family_name" : "System"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/user-4.json b/lib/java/dbrepo-core/src/main/resources/user-4.json
new file mode 100644
index 0000000000..587e6f5500
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/user-4.json
@@ -0,0 +1,12 @@
+{
+  "id" : "791d58c5-bfab-4520-b4fc-b44d4ab9feb0",
+  "name" : "JUnit 4",
+  "username" : "junit4",
+  "attributes" : {
+    "theme" : "light",
+    "affiliation" : "TU Wien"
+  },
+  "qualified_name" : "JUnit 4 — @junit4",
+  "given_name" : "JUnit",
+  "family_name" : "4"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/user-5.json b/lib/java/dbrepo-core/src/main/resources/user-5.json
new file mode 100644
index 0000000000..1139183680
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/user-5.json
@@ -0,0 +1,12 @@
+{
+  "id" : "28ff851d-d7bc-4422-959c-edd7a5b15630",
+  "name" : "No Body",
+  "username" : "nobody",
+  "attributes" : {
+    "theme" : "dark",
+    "affiliation" : "TU Wien"
+  },
+  "qualified_name" : "No Body — @nobody",
+  "given_name" : "No",
+  "family_name" : "Body"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/view-1.json b/lib/java/dbrepo-core/src/main/resources/view-1.json
new file mode 100644
index 0000000000..aafefbbb03
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/view-1.json
@@ -0,0 +1,86 @@
+{
+  "id" : "7d712cf7-78c7-4a47-90b0-d6b9f7f19b70",
+  "name" : "JUnit",
+  "identifiers" : [ {
+    "id" : "e2d831c2-3694-4fdc-8c48-7a7e94b73c43",
+    "links" : {
+      "self" : "/api/identifier/e2d831c2-3694-4fdc-8c48-7a7e94b73c43",
+      "data" : "/api/database/b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425/view/7d712cf7-78c7-4a47-90b0-d6b9f7f19b70/data",
+      "self_html" : "/pid/e2d831c2-3694-4fdc-8c48-7a7e94b73c43"
+    },
+    "type" : "view",
+    "titles" : [ ],
+    "descriptions" : [ ],
+    "query" : "SELECT `location`, `lat`, `lng` FROM `weather_location`",
+    "execution" : "2019-03-03T04:45:52.000Z",
+    "publisher" : "Polish Government",
+    "owner" : {
+      "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+      "username" : "junit1",
+      "name" : "John Doe",
+      "orcid" : "https://orcid.org/0000-0003-4216-302X",
+      "qualified_name" : "John Doe — @junit1",
+      "given_name" : "John",
+      "family_name" : "Doe"
+    },
+    "licenses" : [ {
+      "identifier" : "MIT",
+      "uri" : "https://opensource.org/license/mit/"
+    } ],
+    "creators" : [ ],
+    "status" : "published",
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "view_id" : "7d712cf7-78c7-4a47-90b0-d6b9f7f19b70",
+    "query_normalized" : "SELECT `location`, `lat`, `lng` FROM `weather_location`",
+    "query_hash" : "dc81a6877c7c51a6a6f406e1fc2a255e44a0d49a20548596e0d583c3eb849c23",
+    "publication_day" : 10,
+    "publication_month" : 7,
+    "publication_year" : 2023
+  } ],
+  "query" : "SELECT `location`, `lat`, `lng` FROM `weather_location`",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "columns" : [ {
+    "id" : "ebf2c5ce-4deb-4cc6-b6f6-61f5d3f6fc98",
+    "name" : "location",
+    "size" : 255,
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "ord" : 0,
+    "internal_name" : "location",
+    "type" : "varchar",
+    "is_null_allowed" : false
+  }, {
+    "id" : "d6ba3475-cefa-4771-aaa1-9274f16335ee",
+    "name" : "lat",
+    "size" : 10,
+    "d" : 0,
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "ord" : 1,
+    "internal_name" : "lat",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  }, {
+    "id" : "4f189a5f-c9ca-4518-9758-1a0730f6276b",
+    "name" : "lng",
+    "size" : 10,
+    "d" : 0,
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "ord" : 2,
+    "internal_name" : "lng",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  } ],
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "internal_name" : "junit",
+  "is_public" : false,
+  "is_schema_public" : false,
+  "initial_view" : false,
+  "query_hash" : "dc81a6877c7c51a6a6f406e1fc2a255e44a0d49a20548596e0d583c3eb849c23"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/view-2.json b/lib/java/dbrepo-core/src/main/resources/view-2.json
new file mode 100644
index 0000000000..908f92557a
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/view-2.json
@@ -0,0 +1,58 @@
+{
+  "id" : "1921a0a0-e4b0-4d12-a05f-be920af9b5ce",
+  "name" : "JUnit2",
+  "query" : "select `date`, `location` as loc, `mintemp`, `rainfall` from `weather_aus` where `location` = 'Albury'",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "columns" : [ {
+    "id" : "8fb30bce-04a8-4e9a-9c6b-0776eda3aab8",
+    "name" : "Date",
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "ord" : 0,
+    "internal_name" : "date",
+    "type" : "date",
+    "is_null_allowed" : true
+  }, {
+    "id" : "d43f9940-ae27-4d81-b17b-ccbaf578186c",
+    "name" : "loc",
+    "size" : 255,
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "ord" : 1,
+    "internal_name" : "loc",
+    "type" : "varchar",
+    "is_null_allowed" : true
+  }, {
+    "id" : "b47733bb-aeea-414d-811e-405c64463730",
+    "name" : "Rainfall",
+    "size" : 10,
+    "d" : 0,
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "ord" : 2,
+    "internal_name" : "rainfall",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  }, {
+    "id" : "2b467e3a-acef-4944-be19-b4b0680874c2",
+    "name" : "MinTemp",
+    "size" : 10,
+    "d" : 0,
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "ord" : 3,
+    "internal_name" : "mintemp",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  } ],
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "internal_name" : "junit2",
+  "is_public" : true,
+  "is_schema_public" : true,
+  "initial_view" : false,
+  "query_hash" : "987fc946772ffb6d85060262dcb5df419692a1f6772ea995e3dedb53c191e984"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/view-3.json b/lib/java/dbrepo-core/src/main/resources/view-3.json
new file mode 100644
index 0000000000..43369a4a84
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/view-3.json
@@ -0,0 +1,58 @@
+{
+  "id" : "88940939-d456-4aae-88a6-f2b6b343c614",
+  "name" : "JUnit3",
+  "query" : "select w.`mintemp`, w.`rainfall`, w.`location`, m.`date` from `weather_aus` w join `junit2` m on m.`location` = w.`location` and m.`date` = w.`date`",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "columns" : [ {
+    "id" : "129839cb-dbd7-492d-8fd0-ee44a8f51c4d",
+    "name" : "MinTemp",
+    "size" : 10,
+    "d" : 0,
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "ord" : 0,
+    "internal_name" : "mintemp",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  }, {
+    "id" : "e229d80a-c25c-4fbe-8f31-bbb2e1dff3d5",
+    "name" : "Rainfall",
+    "size" : 10,
+    "d" : 0,
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "ord" : 1,
+    "internal_name" : "rainfall",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  }, {
+    "id" : "12083a5d-fdd3-41db-9f92-d1298558e477",
+    "name" : "Location",
+    "size" : 255,
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "ord" : 2,
+    "internal_name" : "location",
+    "type" : "varchar",
+    "is_null_allowed" : true
+  }, {
+    "id" : "668f8a87-1fa6-4be7-9761-1844aa8315a4",
+    "name" : "Date",
+    "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+    "ord" : 3,
+    "internal_name" : "date",
+    "type" : "date",
+    "is_null_allowed" : true
+  } ],
+  "database_id" : "b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425",
+  "internal_name" : "junit3",
+  "is_public" : true,
+  "is_schema_public" : false,
+  "initial_view" : false,
+  "query_hash" : "bbbaa56a5206b3dc3e6cf9301b0db9344eb6f19b100c7b88550ffb597a0bd255"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/view-4.json b/lib/java/dbrepo-core/src/main/resources/view-4.json
new file mode 100644
index 0000000000..7469c70a8e
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/view-4.json
@@ -0,0 +1,157 @@
+{
+  "id" : "13b36fa0-a65a-4ccf-80b1-5b3a2444a41a",
+  "name" : "Mock View",
+  "query" : "SELECT `animal_name`, `hair`, `feathers`, `eggs`, `milk`, `airborne`, `aquatic`, `predator`, `backbone`, `breathes`, `venomous`, `fins`, `legs`, `tail`, `domestic`, `catsize`, `class_type` FROM `zoo` WHERE `class_type` = 1",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "columns" : [ {
+    "id" : "4efd4cbb-ca2e-48e2-8f40-37514956aa67",
+    "name" : "Animal Name",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 0,
+    "internal_name" : "animal_name",
+    "type" : "varchar",
+    "is_null_allowed" : true
+  }, {
+    "id" : "53061685-c1db-4df6-ad4e-8f384a200104",
+    "name" : "Hair",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 1,
+    "internal_name" : "hair",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "643f9cda-8db1-47a4-bb08-c10e78e54c10",
+    "name" : "Feathers",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 2,
+    "internal_name" : "feathers",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "efeacc15-3b31-4a9f-9dba-f07d62dcddd6",
+    "name" : "Eggs",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 3,
+    "internal_name" : "eggs",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "0319db31-473a-47bc-bb9d-fa1edf82fcd5",
+    "name" : "Milk",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 4,
+    "internal_name" : "milk",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "9ba789ca-59cf-4480-b9f6-3b957b1d7f5c",
+    "name" : "Airborne",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 5,
+    "internal_name" : "airborne",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "81c42954-fd1a-4fef-adb1-bc4945469e26",
+    "name" : "Aquantic",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 6,
+    "internal_name" : "aquantic",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "49a38905-52a2-4a9b-b7b9-5e1dcf799b2a",
+    "name" : "Predator",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 7,
+    "internal_name" : "predator",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "1e1a9b6b-5aee-4773-b52d-ea56a5d1e2c8",
+    "name" : "Backbone",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 8,
+    "internal_name" : "backbone",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "42ede62a-ae98-4a14-ba54-76b8ba1c580f",
+    "name" : "Breathes",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 9,
+    "internal_name" : "breathes",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "0af0f84a-5a58-418a-8bbc-bde29ed0cda0",
+    "name" : "Venomous",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 10,
+    "internal_name" : "venomous",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "d9cb30a2-1566-4bd1-899d-060a8ba47722",
+    "name" : "Fin",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 11,
+    "internal_name" : "fin",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "e69f7f75-3731-4706-8193-0393aa0c08a7",
+    "name" : "Legs",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 12,
+    "internal_name" : "legs",
+    "type" : "int",
+    "is_null_allowed" : true
+  }, {
+    "id" : "4441630e-7dfa-4046-8bc2-929860f1c66e",
+    "name" : "Tail",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 13,
+    "internal_name" : "tail",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  }, {
+    "id" : "f0a12be0-0b26-4686-bf7e-539cdc7e71b4",
+    "name" : "Domestic",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 14,
+    "internal_name" : "domestic",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "b60abdcc-5786-40f8-a309-e4467f7d963c",
+    "name" : "Catsize",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 15,
+    "internal_name" : "catsize",
+    "type" : "bool",
+    "is_null_allowed" : true
+  }, {
+    "id" : "6d5877e2-daef-43d6-a1b6-1aff3ab1a9a2",
+    "name" : "Class Type",
+    "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+    "ord" : 16,
+    "internal_name" : "class_type",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  } ],
+  "database_id" : "dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe",
+  "internal_name" : "mock_view",
+  "is_public" : true,
+  "is_schema_public" : false,
+  "initial_view" : false,
+  "query_hash" : "3561cd0bb0b0e94d6f15ae602134252a5760d09d660a71a4fb015b6991c8ba0b"
+}
\ No newline at end of file
diff --git a/lib/java/dbrepo-core/src/main/resources/view-5.json b/lib/java/dbrepo-core/src/main/resources/view-5.json
new file mode 100644
index 0000000000..105b5b88a3
--- /dev/null
+++ b/lib/java/dbrepo-core/src/main/resources/view-5.json
@@ -0,0 +1,50 @@
+{
+  "id" : "bc6b8507-51f1-4d05-bb0c-1f619a991dec",
+  "name" : "Mock View",
+  "query" : "SELECT `location`, `lat`, `lng` FROM `weather_location` WHERE `location` = 'Albury'",
+  "owner" : {
+    "id" : "cd5bab0d-7799-4069-85fb-c5d738572a0b",
+    "username" : "junit1",
+    "name" : "John Doe",
+    "orcid" : "https://orcid.org/0000-0003-4216-302X",
+    "qualified_name" : "John Doe — @junit1",
+    "given_name" : "John",
+    "family_name" : "Doe"
+  },
+  "columns" : [ {
+    "id" : "795faa78-7ebb-4dd5-9eb1-e54a9192d0b5",
+    "name" : "location",
+    "size" : 255,
+    "database_id" : "9d8cb9a9-9468-4801-a2e0-2dac8bc67c31",
+    "ord" : 0,
+    "internal_name" : "location",
+    "type" : "varchar",
+    "is_null_allowed" : false
+  }, {
+    "id" : "f316ced5-7774-4656-aa7f-a874622d99b3",
+    "name" : "lat",
+    "size" : 10,
+    "d" : 0,
+    "database_id" : "9d8cb9a9-9468-4801-a2e0-2dac8bc67c31",
+    "ord" : 1,
+    "internal_name" : "lat",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  }, {
+    "id" : "11cb1aa2-8582-45ef-a3bb-7056aa94cdf1",
+    "name" : "lng",
+    "size" : 10,
+    "d" : 0,
+    "database_id" : "9d8cb9a9-9468-4801-a2e0-2dac8bc67c31",
+    "ord" : 2,
+    "internal_name" : "lng",
+    "type" : "decimal",
+    "is_null_allowed" : true
+  } ],
+  "database_id" : "9d8cb9a9-9468-4801-a2e0-2dac8bc67c31",
+  "internal_name" : "mock_view",
+  "is_public" : true,
+  "is_schema_public" : true,
+  "initial_view" : false,
+  "query_hash" : "120f32478aaff874c25ab32eceb9f00b64cc9d422831046f2f5d43953aca01e7"
+}
\ No newline at end of file
-- 
GitLab