diff --git a/fda-table-service/api/src/main/java/at/tuwien/CreateTableRawQuery.java b/fda-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableCreateRawQuery.java
similarity index 81%
rename from fda-table-service/api/src/main/java/at/tuwien/CreateTableRawQuery.java
rename to fda-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableCreateRawQuery.java
index 2b9c7a12769f1bc95c50a135d6b984a9f073a80f..a587587d2f9f6744df69f37468defc945f77fc06 100644
--- a/fda-table-service/api/src/main/java/at/tuwien/CreateTableRawQuery.java
+++ b/fda-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableCreateRawQuery.java
@@ -1,4 +1,4 @@
-package at.tuwien;
+package at.tuwien.api.database.table;
 
 import lombok.*;
 
@@ -10,7 +10,7 @@ import java.sql.PreparedStatement;
 @Builder
 @AllArgsConstructor
 @NoArgsConstructor
-public class CreateTableRawQuery {
+public class TableCreateRawQuery {
 
     private PreparedStatement preparedStatement;
 
diff --git a/fda-table-service/api/src/main/java/at/tuwien/InsertTableRawQuery.java b/fda-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableInsertRawQuery.java
similarity index 75%
rename from fda-table-service/api/src/main/java/at/tuwien/InsertTableRawQuery.java
rename to fda-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableInsertRawQuery.java
index 4541a7786d68ad227d7ce61ac78ac85e2adc1f10..66d09bb136800751d821414fd57ffb9cb45a4359 100644
--- a/fda-table-service/api/src/main/java/at/tuwien/InsertTableRawQuery.java
+++ b/fda-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableInsertRawQuery.java
@@ -1,4 +1,4 @@
-package at.tuwien;
+package at.tuwien.api.database.table;
 
 import lombok.*;
 
@@ -11,7 +11,7 @@ import java.util.List;
 @Builder
 @AllArgsConstructor
 @NoArgsConstructor
-public class InsertTableRawQuery {
+public class TableInsertRawQuery {
 
     private String query;
 
diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java
index 4c0faa00290150180161b7bfac7fbae639b077c1..9cf3d52728f767a76e85b8f8d2d738f5f0aaad2e 100644
--- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java
+++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java
@@ -2,8 +2,8 @@ package at.tuwien.entities.database.table.columns;
 
 import at.tuwien.entities.container.image.ContainerImageDate;
 import at.tuwien.entities.database.table.Table;
-import at.tuwien.entities.database.table.columns.concepts.Concept;
-import at.tuwien.entities.database.table.columns.concepts.Unit;
+import at.tuwien.entities.database.table.columns.concepts.ColumnConcept;
+import at.tuwien.entities.database.table.columns.units.ColumnUnit;
 import at.tuwien.entities.user.User;
 import lombok.*;
 import net.sf.jsqlparser.statement.select.SelectItem;
@@ -123,7 +123,7 @@ public class TableColumn implements Comparable<TableColumn> {
                     @JoinColumn(name = "cdbid", referencedColumnName = "cdbid", insertable = false, updatable = false)
             },
             inverseJoinColumns = @JoinColumn(name = "uri", referencedColumnName = "uri"))
-    private Concept concept;
+    private ColumnConcept concept;
 
     @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.MERGE)
     @JoinTable(name = "mdb_columns_units",
@@ -133,7 +133,7 @@ public class TableColumn implements Comparable<TableColumn> {
                     @JoinColumn(name = "cdbid", referencedColumnName = "cdbid", insertable = false, updatable = false)
             },
             inverseJoinColumns = @JoinColumn(name = "uri", referencedColumnName = "uri"))
-    private Unit unit;
+    private ColumnUnit unit;
 
     @Column
     @LastModifiedDate
diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/ColumnConcept.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/ColumnConcept.java
index 711a86286e860e2eee8d84d19fed8d14e53787c4..4d0e5f60482b4fb1bd4f43e998a08336791cf6b5 100644
--- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/ColumnConcept.java
+++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/ColumnConcept.java
@@ -1,43 +1,46 @@
 package at.tuwien.entities.database.table.columns.concepts;
 
+import at.tuwien.entities.database.table.columns.TableColumn;
 import lombok.*;
-import org.hibernate.annotations.GenericGenerator;
+import org.springframework.data.annotation.CreatedDate;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
 import javax.persistence.*;
-import java.io.Serializable;
+import java.time.Instant;
+import java.util.List;
 
-/**
- * Join Table
- */
 @Data
 @Entity
 @Builder
 @AllArgsConstructor
 @NoArgsConstructor
 @ToString
-@IdClass(ColumnConceptKey.class)
 @EntityListeners(AuditingEntityListener.class)
 @EqualsAndHashCode(onlyExplicitlyIncluded = true)
-@javax.persistence.Table(name = "mdb_columns_concepts")
-public class ColumnConcept implements Serializable {
+@javax.persistence.Table(name = "mdb_concepts")
+public class ColumnConcept {
 
     @Id
     @EqualsAndHashCode.Include
-    @GeneratedValue(generator = "columns-concepts-sequence")
-    @GenericGenerator(name = "columns-concepts-sequence", strategy = "increment")
-    @Column(updatable = false, nullable = false)
-    private Long cid;
+    @Column(nullable = false, columnDefinition = "TEXT")
+    private String uri;
 
-    @Id
-    @EqualsAndHashCode.Include
-    private Long tid;
+    @Column(name = "name", nullable = false)
+    private String name;
 
-    @Id
-    @EqualsAndHashCode.Include
-    private Long cdbid;
+    @org.springframework.data.annotation.Transient
+    @ToString.Exclude
+    @OneToMany(fetch = FetchType.LAZY)
+    @JoinTable(name = "mdb_columns_concepts",
+            joinColumns = @JoinColumn(name = "uri", referencedColumnName = "uri", insertable = false, updatable = false),
+            inverseJoinColumns = {
+                    @JoinColumn(name = "cid", referencedColumnName = "id", insertable = false, updatable = false),
+                    @JoinColumn(name = "tid", referencedColumnName = "tid", insertable = false, updatable = false),
+                    @JoinColumn(name = "cdbid", referencedColumnName = "cdbid", insertable = false, updatable = false)
+            })
+    private List<TableColumn> columns;
 
-    @EqualsAndHashCode.Include
-    @Column(columnDefinition = "TEXT")
-    private String uri;
+    @Column(nullable = false, updatable = false)
+    @CreatedDate
+    private Instant created;
 }
diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/ColumnConceptKey.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/ColumnConceptKey.java
deleted file mode 100644
index 7b0b79ee862529996f9418f4da963651e7d631f9..0000000000000000000000000000000000000000
--- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/ColumnConceptKey.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package at.tuwien.entities.database.table.columns.concepts;
-
-import lombok.EqualsAndHashCode;
-
-import java.io.Serializable;
-
-@EqualsAndHashCode
-public class ColumnConceptKey implements Serializable {
-
-    private Long cid;
-
-    private Long cdbid;
-
-    private Long tid;
-
-}
diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/Concept.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/Concept.java
deleted file mode 100644
index 1771719c74763802a4519b88bbd6935a9d357bdc..0000000000000000000000000000000000000000
--- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/Concept.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package at.tuwien.entities.database.table.columns.concepts;
-
-import at.tuwien.entities.database.table.columns.TableColumn;
-import lombok.*;
-import org.springframework.data.annotation.CreatedDate;
-import org.springframework.data.jpa.domain.support.AuditingEntityListener;
-
-import javax.persistence.*;
-import java.time.Instant;
-import java.util.List;
-
-@Data
-@Entity
-@Builder
-@AllArgsConstructor
-@NoArgsConstructor
-@ToString
-@EntityListeners(AuditingEntityListener.class)
-@EqualsAndHashCode(onlyExplicitlyIncluded = true)
-@javax.persistence.Table(name = "mdb_concepts")
-public class Concept {
-
-    @Id
-    @EqualsAndHashCode.Include
-    @Column(nullable = false, columnDefinition = "TEXT")
-    private String uri;
-
-    @Column(name = "name", nullable = false)
-    private String name;
-
-    @org.springframework.data.annotation.Transient
-    @ToString.Exclude
-    @OneToMany(fetch = FetchType.LAZY)
-    @JoinTable(name = "mdb_columns_concepts",
-            joinColumns = @JoinColumn(name = "uri", referencedColumnName = "uri", insertable = false, updatable = false),
-            inverseJoinColumns = {
-                    @JoinColumn(name = "cid", referencedColumnName = "id", insertable = false, updatable = false),
-                    @JoinColumn(name = "tid", referencedColumnName = "tid", insertable = false, updatable = false),
-                    @JoinColumn(name = "cdbid", referencedColumnName = "cdbid", insertable = false, updatable = false)
-            })
-    private List<TableColumn> columns;
-
-    @Column(nullable = false, updatable = false)
-    @CreatedDate
-    private Instant created;
-}
diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/Unit.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/units/ColumnUnit.java
similarity index 94%
rename from fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/Unit.java
rename to fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/units/ColumnUnit.java
index 699cdf7d89af4c8083078cc211a3d0d9cbee4609..6969bc7a87af23cdae7f56c783ec5930caabc8be 100644
--- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/Unit.java
+++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/units/ColumnUnit.java
@@ -1,4 +1,4 @@
-package at.tuwien.entities.database.table.columns.concepts;
+package at.tuwien.entities.database.table.columns.units;
 
 import at.tuwien.entities.database.table.columns.TableColumn;
 import lombok.*;
@@ -18,7 +18,7 @@ import java.util.List;
 @EntityListeners(AuditingEntityListener.class)
 @EqualsAndHashCode(onlyExplicitlyIncluded = true)
 @javax.persistence.Table(name = "mdb_units")
-public class Unit {
+public class ColumnUnit {
 
     @Id
     @EqualsAndHashCode.Include
diff --git a/fda-table-service/.dockerignore b/fda-table-service/.dockerignore
deleted file mode 100644
index fcdfe8de55e91b3b65fcf598c5980ae256087910..0000000000000000000000000000000000000000
--- a/fda-table-service/.dockerignore
+++ /dev/null
@@ -1 +0,0 @@
-rest-service/src/main/resources/*.csv
\ No newline at end of file
diff --git a/fda-table-service/.gitignore b/fda-table-service/.gitignore
index 8e5c311b11047e6a821fed6e279bf28c129ca3bd..7731f1adf24dc32351fdde402faa04b19e2f389f 100644
--- a/fda-table-service/.gitignore
+++ b/fda-table-service/.gitignore
@@ -4,12 +4,8 @@ target/
 !**/src/main/**/target/
 !**/src/test/**/target/
 
-### Environment ###
-.env
-
 ### Generated ###
 ready
-mapping.xml
 
 ### STS ###
 .apt_generated
diff --git a/fda-table-service/Dockerfile b/fda-table-service/Dockerfile
index ec1ab5c64e232d13cdd1a35f8e9ae221a2dc53a8..4752a4a140b1dd52e256350862067102131a78cd 100644
--- a/fda-table-service/Dockerfile
+++ b/fda-table-service/Dockerfile
@@ -14,7 +14,6 @@ COPY --from=dependency /root/.m2/repository/at/tuwien /root/.m2/repository/at/tu
 COPY ./rest-service ./rest-service
 COPY ./services ./services
 COPY ./report ./report
-COPY ./api ./api
 
 # Make sure it compiles
 RUN mvn -q clean package -DskipTests > /dev/null
@@ -27,9 +26,8 @@ ENV METADATA_USERNAME=root
 ENV METADATA_PASSWORD=dbrepo
 ENV BROKER_USERNAME=fda
 ENV BROKER_PASSWORD=fda
-ENV SEARCH_ENDPOINT=search-service
-ENV GATEWAY_ENDPOINT=http://gateway-service:9095
-ENV multipart.location=/tmp
+ENV SHARED_FILESYSTEM=/tmp
+ENV USER_NETWORK=userdb
 ENV LOG_LEVEL=debug
 
 COPY ./service_ready /usr/bin
@@ -37,8 +35,8 @@ RUN chmod +x /usr/bin/service_ready
 
 HEALTHCHECK --interval=10s --timeout=5s --retries=12 CMD service_ready
 
-COPY --from=build ./rest-service/target/rest-service-*.jar ./table-service.jar
+COPY --from=build ./rest-service/target/rest-service-*.jar ./container-service.jar
 
-EXPOSE 9094
+EXPOSE 9091
 
-ENTRYPOINT ["java", "-Dlog4j2.formatMsgNoLookups=true", "-jar", "./table-service.jar"]
+ENTRYPOINT ["java", "-Dlog4j2.formatMsgNoLookups=true", "-jar", "./container-service.jar"]
diff --git a/fda-table-service/README.md b/fda-table-service/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..986b2885e1bf0a1c49df81b9446c20e3c8d69e1f
--- /dev/null
+++ b/fda-table-service/README.md
@@ -0,0 +1,7 @@
+# FDA Container Service
+
+## Documentation
+
+- OpenAPI v3: http://localhost:9091/swagger-ui/index.html
+- OpenAPI v3 endpoint: http://localhost:9091/v3/api-docs/
+- OpenAPI v3 YAML: http://localhost:9091/v3/api-docs.yaml
\ No newline at end of file
diff --git a/fda-table-service/api/pom.xml b/fda-table-service/api/pom.xml
deleted file mode 100644
index 658d47e0060c0fbea1948d5a747da7b4886c1d54..0000000000000000000000000000000000000000
--- a/fda-table-service/api/pom.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <artifactId>fda-table-service</artifactId>
-        <groupId>at.tuwien</groupId>
-        <version>1.1.0-alpha</version>
-    </parent>
-
-    <artifactId>api</artifactId>
-    <name>fda-table-service-api</name>
-
-    <properties>
-        <jacoco.version>0.8.7</jacoco.version>
-    </properties>
-
-    <dependencies />
-
-</project>
\ No newline at end of file
diff --git a/fda-table-service/pom.xml b/fda-table-service/pom.xml
index 01d11e684692457c7a75484888d5354b153319ed..e9faf0cbb3ab3fde41b0829c7f6b808d0deac51e 100644
--- a/fda-table-service/pom.xml
+++ b/fda-table-service/pom.xml
@@ -19,7 +19,6 @@
         <module>rest-service</module>
         <module>services</module>
         <module>report</module>
-        <module>api</module>
     </modules>
 
     <properties>
diff --git a/fda-table-service/report/pom.xml b/fda-table-service/report/pom.xml
index 8b0c154b0fa72b821a567403a054908b4c664b10..1992c97aa94c5b023929ec61ba5a5764c0bf985b 100644
--- a/fda-table-service/report/pom.xml
+++ b/fda-table-service/report/pom.xml
@@ -4,13 +4,18 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
-        <artifactId>fda-table-service</artifactId>
         <groupId>at.tuwien</groupId>
+        <artifactId>fda-table-service</artifactId>
         <version>1.1.0-alpha</version>
     </parent>
 
     <artifactId>report</artifactId>
+    <version>1.1.0-alpha</version>
     <name>fda-table-service-report</name>
+    <description>
+        This module is only intended for the pipeline coverage report. See the detailed report in the
+        respective modules
+    </description>
 
     <properties>
         <jacoco.version>0.8.7</jacoco.version>
diff --git a/fda-table-service/rest-service/pom.xml b/fda-table-service/rest-service/pom.xml
index b73a6ef21685e3b3ca361f9f2acd70c981d851fa..0fd761d629356adda3683ebb5d2cd2d545761234 100644
--- a/fda-table-service/rest-service/pom.xml
+++ b/fda-table-service/rest-service/pom.xml
@@ -4,14 +4,18 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
-        <artifactId>fda-table-service</artifactId>
         <groupId>at.tuwien</groupId>
+        <artifactId>fda-table-service</artifactId>
         <version>1.1.0-alpha</version>
     </parent>
 
     <artifactId>rest-service</artifactId>
     <version>1.1.0-alpha</version>
-    <name>fda-table-service-rest</name>
+    <name>fda-table-service-rest-service</name>
+
+    <properties>
+        <jacoco.version>0.8.7</jacoco.version>
+    </properties>
 
     <dependencies>
         <dependency>
diff --git a/fda-table-service/rest-service/src/main/java/at/tuwien/FdaTableServiceApplication.java b/fda-table-service/rest-service/src/main/java/at/tuwien/FdaTableServiceApplication.java
index 627cfa68a4d342b87c9828be5289fe9410cb7144..ebc2e892715d0fba87700fc41870bb2e95fc7126 100644
--- a/fda-table-service/rest-service/src/main/java/at/tuwien/FdaTableServiceApplication.java
+++ b/fda-table-service/rest-service/src/main/java/at/tuwien/FdaTableServiceApplication.java
@@ -12,9 +12,9 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
 @EnableJpaAuditing
 @SpringBootApplication
 @EnableTransactionManagement
+@EntityScan(basePackages = {"at.tuwien.entities"})
 @EnableElasticsearchRepositories(basePackages = {"at.tuwien.repository.elastic"})
 @EnableJpaRepositories(basePackages = {"at.tuwien.repository.jpa"})
-@EntityScan(basePackages = {"at.tuwien.entities"})
 public class FdaTableServiceApplication {
 
     public static void main(String[] args) {
diff --git a/fda-table-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java b/fda-table-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java
index ce3c4aa05da48dbb9cc3addca3900eb936eaae0d..119eaa66881252b2696a1cf8adacd08c185f8cc7 100644
--- a/fda-table-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java
+++ b/fda-table-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java
@@ -7,7 +7,7 @@ import at.tuwien.api.database.table.columns.ColumnCreateDto;
 import at.tuwien.api.database.table.columns.ColumnTypeDto;
 import at.tuwien.api.user.UserDto;
 import at.tuwien.entities.container.image.*;
-import at.tuwien.entities.database.table.columns.concepts.Concept;
+import at.tuwien.entities.database.table.columns.concepts.ColumnConcept;
 import at.tuwien.entities.user.RoleType;
 import at.tuwien.entities.user.User;
 import at.tuwien.querystore.Query;
@@ -744,7 +744,7 @@ public abstract class BaseUnitTest {
     public final static String CONCEPT_1_NAME = "Temperature";
     public final static Instant CONCEPT_1_CREATED = Instant.now().minus(1, HOURS);
 
-    public final static Concept CONCEPT_1 = Concept.builder()
+    public final static ColumnConcept CONCEPT_1 = ColumnConcept.builder()
             .name(CONCEPT_1_NAME)
             .created(CONCEPT_1_CREATED)
             .uri("http://www.ontology-of-units-of-measure.org/resource/om-2/")
diff --git a/fda-table-service/rest-service/src/test/java/at/tuwien/hibernate/DbrepoSchemaFilter.java b/fda-table-service/rest-service/src/test/java/at/tuwien/hibernate/DbrepoSchemaFilter.java
index bdbe4aebe2ca11a97b0db67471872b1f2545a670..1f0ad27cc06da86c0849ebc5c9ef01dd7e1c0274 100644
--- a/fda-table-service/rest-service/src/test/java/at/tuwien/hibernate/DbrepoSchemaFilter.java
+++ b/fda-table-service/rest-service/src/test/java/at/tuwien/hibernate/DbrepoSchemaFilter.java
@@ -6,7 +6,7 @@ import org.hibernate.mapping.Table;
 import org.hibernate.tool.schema.spi.SchemaFilter;
 
 /**
- * Do not create table for class {@link at.tuwien.entities.database.table.columns.concepts.Concept} when using JUnit test
+ * Do not create table for class {@link at.tuwien.entities.database.table.columns.concepts.ColumnConcept} when using JUnit test
  */
 public class DbrepoSchemaFilter implements SchemaFilter {
 
diff --git a/fda-table-service/rest-service/src/test/resources/application.properties b/fda-table-service/rest-service/src/test/resources/application.properties
index ef996777c5f464998d4109c911a800c99a5ff527..d82af2fbd726ce9f2e14ce2d79c28db6cb034355 100644
--- a/fda-table-service/rest-service/src/test/resources/application.properties
+++ b/fda-table-service/rest-service/src/test/resources/application.properties
@@ -9,7 +9,7 @@ spring.cloud.config.discovery.enabled = false
 spring.cloud.config.enabled = false
 
 # internal datasource
-spring.datasource.url=jdbc:h2:mem:testdb;DATABASE_TO_UPPER=false;DB_CLOSE_ON_EXIT=FALSE;INIT=RUNSCRIPT FROM './src/test/resources/init.sql'
+spring.datasource.url=jdbc:h2:mem:fda;DATABASE_TO_UPPER=false;DB_CLOSE_ON_EXIT=FALSE;MODE=MYSQL;INIT=RUNSCRIPT FROM 'classpath:schema.sql'
 spring.datasource.driverClassName=org.h2.Driver
 spring.datasource.username=sa
 spring.datasource.password=password
diff --git a/fda-table-service/rest-service/src/test/resources/init.sql b/fda-table-service/rest-service/src/test/resources/init.sql
deleted file mode 100644
index e25e2d0d036efb4512fd7b5028ad0c5157d67cbd..0000000000000000000000000000000000000000
--- a/fda-table-service/rest-service/src/test/resources/init.sql
+++ /dev/null
@@ -1,10 +0,0 @@
-CREATE SCHEMA IF NOT EXISTS fda;
-DROP TABLE IF EXISTS fda.mdb_concepts CASCADE;
-CREATE TABLE IF NOT EXISTS fda.mdb_concepts
-(
-    uri        varchar(255) not null,
-    name       VARCHAR(255),
-    created    timestamp    NOT NULL DEFAULT NOW(),
-    created_by bigint,
-    PRIMARY KEY (uri)
-);
\ No newline at end of file
diff --git a/fda-table-service/rest-service/src/test/resources/schema.sql b/fda-table-service/rest-service/src/test/resources/schema.sql
new file mode 100644
index 0000000000000000000000000000000000000000..095a1096ea89d0955c64ee6e642a763dc802907d
--- /dev/null
+++ b/fda-table-service/rest-service/src/test/resources/schema.sql
@@ -0,0 +1,2 @@
+CREATE SCHEMA IF NOT EXISTS `fda`;
+SET SCHEMA `fda`;
\ No newline at end of file
diff --git a/fda-table-service/services/pom.xml b/fda-table-service/services/pom.xml
index 4a87bfe0d309df457c3d2182637f9f00c2f7ece4..8deff1d33ebe581651b23a0fe5ca05c6c9453f79 100644
--- a/fda-table-service/services/pom.xml
+++ b/fda-table-service/services/pom.xml
@@ -13,15 +13,6 @@
     <version>1.1.0-alpha</version>
     <name>fda-table-service-services</name>
 
-    <dependencies >
-        <dependency>
-            <groupId>at.tuwien</groupId>
-            <artifactId>api</artifactId>
-            <version>1.1.0-alpha</version>
-            <scope>compile</scope>
-        </dependency>
-    </dependencies>
-
     <build>
         <plugins>
             <plugin>
@@ -48,4 +39,4 @@
         </plugins>
     </build>
 
-</project>
+</project>
\ No newline at end of file
diff --git a/fda-table-service/services/src/main/java/at/tuwien/mapper/TableMapper.java b/fda-table-service/services/src/main/java/at/tuwien/mapper/TableMapper.java
index c4a316dd06edfe53ae2525127dcfa4300d03138b..a90f9517084bd27188d39aabe3edbccecf8421c9 100644
--- a/fda-table-service/services/src/main/java/at/tuwien/mapper/TableMapper.java
+++ b/fda-table-service/services/src/main/java/at/tuwien/mapper/TableMapper.java
@@ -1,8 +1,8 @@
 package at.tuwien.mapper;
 
-import at.tuwien.CreateTableRawQuery;
 import at.tuwien.api.database.table.TableBriefDto;
 import at.tuwien.api.database.table.TableCreateDto;
+import at.tuwien.api.database.table.TableCreateRawQuery;
 import at.tuwien.api.database.table.TableDto;
 import at.tuwien.api.database.table.columns.ColumnCreateDto;
 import at.tuwien.api.database.table.columns.ColumnDto;
@@ -72,7 +72,7 @@ public interface TableMapper {
             @Mapping(source = "data.dfid", target = "dfid"),
             @Mapping(source = "data.lastModified", target = "lastModified"),
     })
-    TableColumn tableColumnToTableColumn(Table table, TableColumn data, CreateTableRawQuery query);
+    TableColumn tableColumnToTableColumn(Table table, TableColumn data, TableCreateRawQuery query);
 
     @Named("internalMapping")
     default String nameToInternalName(String data) {
@@ -172,7 +172,7 @@ public interface TableMapper {
      * @param data     The table
      * @return The create table query
      */
-    default CreateTableRawQuery tableToCreateTableRawQuery(Connection connection, Database database, TableCreateDto data)
+    default TableCreateRawQuery tableToCreateTableRawQuery(Connection connection, Database database, TableCreateDto data)
             throws ImageNotSupportedException, TableMalformedException, QueryMalformedException {
         if (!database.getContainer().getImage().getRepository().equals("mariadb")) {
             log.error("Currently only MariaDB is supported");
@@ -263,7 +263,7 @@ public interface TableMapper {
         try {
             final PreparedStatement pstmt = connection.prepareStatement(query.toString());
             log.trace("prepared create table statement {}", query);
-            return CreateTableRawQuery.builder()
+            return TableCreateRawQuery.builder()
                     .preparedStatement(pstmt)
                     .generated(!primaryColumnExists)
                     .build();
diff --git a/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/ConceptRepository.java b/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/ConceptRepository.java
index 2f29e719624c80f020f87473412af58c58bbb121..61d4cfe57edf657dc9dfa582aedd8ccfbbddd802 100644
--- a/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/ConceptRepository.java
+++ b/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/ConceptRepository.java
@@ -1,10 +1,10 @@
 package at.tuwien.repository.jpa;
 
-import at.tuwien.entities.database.table.columns.concepts.Concept;
+import at.tuwien.entities.database.table.columns.concepts.ColumnConcept;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
 @Repository
-public interface ConceptRepository extends JpaRepository<Concept, String> {
+public interface ConceptRepository extends JpaRepository<ColumnConcept, String> {
 
 }
diff --git a/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/UnitRepository.java b/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/UnitRepository.java
index 01cbeeaa411eac1b349fd88c21565b0839fb0fe7..5408cc4961bdd35d1eff5cc6d8ab33d100b35ee9 100644
--- a/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/UnitRepository.java
+++ b/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/UnitRepository.java
@@ -1,10 +1,10 @@
 package at.tuwien.repository.jpa;
 
-import at.tuwien.entities.database.table.columns.concepts.Unit;
+import at.tuwien.entities.database.table.columns.units.ColumnUnit;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
 @Repository
-public interface UnitRepository extends JpaRepository<Unit, String> {
+public interface UnitRepository extends JpaRepository<ColumnUnit, String> {
 
 }
diff --git a/fda-table-service/services/src/main/java/at/tuwien/service/impl/TableServiceImpl.java b/fda-table-service/services/src/main/java/at/tuwien/service/impl/TableServiceImpl.java
index 542fd151369b9bcb715a51b846416aee2de51424..6c8d45d11ae14c5e629de0fb32499596374e8c50 100644
--- a/fda-table-service/services/src/main/java/at/tuwien/service/impl/TableServiceImpl.java
+++ b/fda-table-service/services/src/main/java/at/tuwien/service/impl/TableServiceImpl.java
@@ -1,14 +1,14 @@
 package at.tuwien.service.impl;
 
-import at.tuwien.CreateTableRawQuery;
 import at.tuwien.api.database.table.TableCreateDto;
+import at.tuwien.api.database.table.TableCreateRawQuery;
 import at.tuwien.api.database.table.columns.concepts.ColumnSemanticsUpdateDto;
 import at.tuwien.entities.container.Container;
 import at.tuwien.entities.database.Database;
 import at.tuwien.entities.database.table.Table;
 import at.tuwien.entities.database.table.columns.TableColumn;
-import at.tuwien.entities.database.table.columns.concepts.Concept;
-import at.tuwien.entities.database.table.columns.concepts.Unit;
+import at.tuwien.entities.database.table.columns.concepts.ColumnConcept;
+import at.tuwien.entities.database.table.columns.units.ColumnUnit;
 import at.tuwien.entities.user.User;
 import at.tuwien.exception.*;
 import at.tuwien.mapper.TableMapper;
@@ -134,7 +134,7 @@ public class TableServiceImpl extends HibernateConnector implements TableService
         }
         /* run query */
         final ComboPooledDataSource dataSource = getDataSource(database.getContainer().getImage(), database.getContainer(), database);
-        final CreateTableRawQuery query;
+        final TableCreateRawQuery query;
         try {
             final Connection connection = dataSource.getConnection();
             query = tableMapper.tableToCreateTableRawQuery(connection, database, createDto);
@@ -217,7 +217,7 @@ public class TableServiceImpl extends HibernateConnector implements TableService
         final TableColumn column = findColumn(table, columnId);
         /* assign */
         if (updateDto.getUnitUri() != null) {
-            final Unit unit = findUnit(updateDto.getUnitUri());
+            final ColumnUnit unit = findUnit(updateDto.getUnitUri());
             column.setUnit(unit);
             log.debug("update unit of column, unit={}, column={}", unit, column);
         } else {
@@ -225,12 +225,12 @@ public class TableServiceImpl extends HibernateConnector implements TableService
             log.debug("remove unit of column, column={}", column);
         }
         if (updateDto.getConceptUri() != null) {
-            final Concept concept = findConcept(updateDto.getConceptUri());
+            final ColumnConcept concept = findConcept(updateDto.getConceptUri());
             column.setConcept(concept);
-            log.debug("update concept of column, concept={}, column={}", concept, column);
+            log.debug("update ColumnConcept of column, concept={}, column={}", concept, column);
         } else {
             column.setConcept(null);
-            log.debug("remove concept of column, column={}", column);
+            log.debug("remove ColumnConcept of column, column={}", column);
         }
         final TableColumn out = tableColumnRepository.save(column);
         log.info("Updated table column with id {} of table with id {}", columnId, tableId);
@@ -259,16 +259,16 @@ public class TableServiceImpl extends HibernateConnector implements TableService
     }
 
     /**
-     * Finds a concept with given uri
+     * Finds a ColumnConcept with given uri
      *
      * @param uri The uri.
      * @return The concept, if successful.
-     * @throws ConceptNotFoundException The concept was not found in the metadata database.
+     * @throws ConceptNotFoundException The ColumnConcept was not found in the metadata database.
      */
-    protected Concept findConcept(String uri) throws ConceptNotFoundException {
-        final Optional<Concept> optional = conceptRepository.findById(uri);
+    protected ColumnConcept findConcept(String uri) throws ConceptNotFoundException {
+        final Optional<ColumnConcept> optional = conceptRepository.findById(uri);
         if (optional.isEmpty()) {
-            log.error("Failed to find concept with uri {}", uri);
+            log.error("Failed to find ColumnConcept with uri {}", uri);
             throw new ConceptNotFoundException("Failed to find concept");
         }
         return optional.get();
@@ -281,8 +281,8 @@ public class TableServiceImpl extends HibernateConnector implements TableService
      * @return The unit, if successful.
      * @throws UnitNotFoundException The unit was not found in the metadata database.
      */
-    protected Unit findUnit(String uri) throws UnitNotFoundException {
-        final Optional<Unit> optional = unitRepository.findById(uri);
+    protected ColumnUnit findUnit(String uri) throws UnitNotFoundException {
+        final Optional<ColumnUnit> optional = unitRepository.findById(uri);
         if (optional.isEmpty()) {
             log.error("Failed to find unit with uri {}", uri);
             throw new UnitNotFoundException("Failed to find unit");