diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/controller/SubmissionController.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/controller/SubmissionController.java
index adced7f95a0438a9c4c5be1e040effc00f1ddaf1..2b59c012e99c64dcc108ffe3ae77f56387940e68 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/controller/SubmissionController.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/controller/SubmissionController.java
@@ -132,8 +132,8 @@ public class SubmissionController implements ISubmission {
                 // no similar element
                 case 0:
                     if (!hasOverlappingBoundaries(submissionPartPostRequest.getFullSubmissionId(), submissionPartPostRequest.getCategory(), element)) {
-                        requestElement = "INSERT IGNORE INTO submissionpartbodyelements (`fullSubmissionId`, `category`, `text`, `startCharacter`, `endCharacter`) VALUES (?,?,?,?,?);";
-                        connection.issueInsertOrDeleteStatement(requestElement, submissionPartPostRequest.getFullSubmissionId(), submissionPartPostRequest.getCategory().toString().toUpperCase(), element.getText(), element.getStartCharacter(), element.getEndCharacter());
+                        requestElement = "INSERT IGNORE INTO submissionpartbodyelements (`fullSubmissionId`, `category`, `startCharacter`, `endCharacter`) VALUES (?,?,?,?);";
+                        connection.issueInsertOrDeleteStatement(requestElement, submissionPartPostRequest.getFullSubmissionId(), submissionPartPostRequest.getCategory().toString().toUpperCase(), element.getStartCharacter(), element.getEndCharacter());
                     }
                     break;
                 // similar element on the right side
@@ -181,31 +181,47 @@ public class SubmissionController implements ISubmission {
         MysqlConnect connection = new MysqlConnect();
         connection.connect();
 
-        // build and execute request
-        String request = "SELECT * FROM submissionparts s " +
-                "LEFT JOIN submissionpartbodyelements b " +
-                "ON s.fullSubmissionId = b.fullSubmissionId " +
-                "AND s.category = b.category " +
-                "WHERE s.fullSubmissionId = ? " +
-                "AND s.category = ?;";
-        VereinfachtesResultSet rs = connection.issueSelectStatement(request, fullSubmissionId, category);
+        // declare text
+        String text;
 
-        if (rs.next()) {
-            // save submission
-            SubmissionPart submissionPart = getSubmissionPartFromResultSet(rs);
+        // build and execute request to receive text
+        String requestText = "SELECT text " +
+                "FROM fullsubmissions " +
+                "WHERE id = ?";
+        VereinfachtesResultSet rsText = connection.issueSelectStatement(requestText, fullSubmissionId);
 
-            // close connection
-            connection.close();
+        if (rsText.next()) {
+            // save text
+            text = rsText.getString("text");
 
-            return submissionPart;
-        }
-        else {
-            // close connection
-            connection.close();
+            // build and execute request
+            String request = "SELECT * FROM submissionparts s " +
+                    "LEFT JOIN submissionpartbodyelements b " +
+                    "ON s.fullSubmissionId = b.fullSubmissionId " +
+                    "AND s.category = b.category " +
+                    "WHERE s.fullSubmissionId = ? " +
+                    "AND s.category = ?;";
+            VereinfachtesResultSet rs = connection.issueSelectStatement(request, fullSubmissionId, category);
 
-            return null;
+            if (rs.next()) {
+                // save submission
+                SubmissionPart submissionPart = getSubmissionPartFromResultSet(rs, text);
+
+                // close connection
+                connection.close();
+
+                return submissionPart;
+            }
+            else {
+                // close connection
+                connection.close();
+
+                return null;
+            }
         }
 
+        return null;
+
     }
 
     @Override
@@ -215,27 +231,46 @@ public class SubmissionController implements ISubmission {
         MysqlConnect connection = new MysqlConnect();
         connection.connect();
 
-        // build and execute request
-        String request = "SELECT * " +
-                "FROM submissionparts sp " +
-                "LEFT JOIN submissionpartbodyelements  spbe " +
-                "ON sp.fullSubmissionId = spbe.fullSubmissionId " +
-                "AND sp.category = spbe.category " +
-                "WHERE sp.fullSubmissionId = ? " +
-                "ORDER BY sp.timestamp;";
-        VereinfachtesResultSet rs = connection.issueSelectStatement(request, fullSubmissionId);
+        // declare text
+        String text;
+
+        // build and execute request to receive text
+        String requestText = "SELECT text " +
+                "FROM fullsubmissions " +
+                "WHERE id = ?";
+        VereinfachtesResultSet rsText = connection.issueSelectStatement(requestText, fullSubmissionId);
+
+        if (rsText.next()) {
+            // save text
+            text = rsText.getString("text");
+
+            // build and execute request
+            String request = "SELECT * " +
+                    "FROM submissionparts sp " +
+                    "LEFT JOIN submissionpartbodyelements  spbe " +
+                    "ON sp.fullSubmissionId = spbe.fullSubmissionId " +
+                    "AND sp.category = spbe.category " +
+                    "WHERE sp.fullSubmissionId = ? " +
+                    "ORDER BY sp.timestamp;";
+            VereinfachtesResultSet rs = connection.issueSelectStatement(request, fullSubmissionId);
+
+            ArrayList<SubmissionPart> submissionParts = new ArrayList<>();
+
+            if (rs.next()) {
+                // save submission
+                submissionParts = getAllSubmissionPartsFromResultSet(rs, text);
+            }
 
-        ArrayList<SubmissionPart> submissionParts = new ArrayList<>();
+            // close connection
+            connection.close();
 
-        if (rs.next()) {
-            // save submission
-            submissionParts = getAllSubmissionPartsFromResultSet(rs);
+            return submissionParts;
         }
 
         // close connection
         connection.close();
 
-        return submissionParts;
+        return null;
 
     }
 
@@ -322,8 +357,13 @@ public class SubmissionController implements ISubmission {
      * @param rs The result set from the database query
      * @return A new submission part object
      */
-    private SubmissionPart getSubmissionPartFromResultSet(VereinfachtesResultSet rs) {
+    private SubmissionPart getSubmissionPartFromResultSet(VereinfachtesResultSet rs, String text) {
 
+        // declare variables
+        int start, end;
+        String textPart;
+
+        // initialize variables
         long timestamp = rs.getTimestamp("timestamp").getTime();
         String userId = rs.getString("userId");
         String fullSubmissionId = rs.getString("fullSubmissionId");
@@ -333,15 +373,15 @@ public class SubmissionController implements ISubmission {
         ArrayList<SubmissionPartBodyElement> body = new ArrayList<>();
 
         do {
-            // only add it if the element is not empty
-            if (!Strings.isNullOrEmpty(rs.getString("text"))) {
-                SubmissionPartBodyElement element = new SubmissionPartBodyElement(
-                        rs.getString("text"),
-                        rs.getInt("startCharacter"),
-                        rs.getInt("endCharacter"));
-
-                body.add(element);
-            }
+            // initialize body variables
+            start = rs.getInt("startCharacter");
+            end = rs.getInt("endCharacter");
+            textPart = text.substring(start, end);
+
+            // build element
+            SubmissionPartBodyElement element = new SubmissionPartBodyElement(textPart, start, end);
+
+            body.add(element);
         } while (rs.next());
 
         return new SubmissionPart(timestamp, userId, fullSubmissionId, category, body);
@@ -353,7 +393,11 @@ public class SubmissionController implements ISubmission {
      * @param rs The result set from the database query, holding different submission parts
      * @return An array of submission parts
      */
-    private ArrayList<SubmissionPart> getAllSubmissionPartsFromResultSet(VereinfachtesResultSet rs) {
+    private ArrayList<SubmissionPart> getAllSubmissionPartsFromResultSet(VereinfachtesResultSet rs, String text) {
+
+        // declare variables
+        int start, end;
+        String textPart;
 
         ArrayList<SubmissionPart> submissionParts = new ArrayList<>();
         // tmp part
@@ -383,11 +427,12 @@ public class SubmissionController implements ISubmission {
                 );
             }
 
-            tmpElement = new SubmissionPartBodyElement(
-                    rs.getString("text"),
-                    rs.getInt("startCharacter"),
-                    rs.getInt("endCharacter")
-            );
+            // initialize body variables
+            start = rs.getInt("startCharacter");
+            end = rs.getInt("endCharacter");
+            textPart = text.substring(start, end);
+
+            tmpElement = new SubmissionPartBodyElement(textPart, start, end);
 
             tmpPart.getBody().add(tmpElement);
 
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/annotationRest.js b/gemeinsamforschen/src/main/webapp/assets/js/annotationRest.js
index 787ccd96b74c391cd417e4733b5281611012720b..76fd89c8f25a0d29e923f2e03d617e50890707df 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/annotationRest.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/annotationRest.js
@@ -81,10 +81,11 @@ function getAnnotation(id, responseHandler) {
  * GET: Get all annotations from database for a specific target
  *
  * @param targetId The target id
+ * @param targetCategory The category of the target
  * @param responseHandler The response handler
  */
-function getAnnotations(targetId, responseHandler) {
-    var url = "../rest/annotations/target/" + targetId;
+function getAnnotations(targetId, targetCategory, responseHandler) {
+    var url = "../rest/annotations/targetid/" + targetId + "/targetcategory/" + targetCategory;
     $.ajax({
         url: url,
         type: "GET",
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/annotationScript.js b/gemeinsamforschen/src/main/webapp/assets/js/annotationScript.js
index 5150c1f92e7e23ebe6045b9df333dce7667093a9..f1f7cceee7683b61b501bb70a15914c6419d677a 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/annotationScript.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/annotationScript.js
@@ -3,6 +3,7 @@ var userToken = getUserTokenFromUrl();
 var userColors = new Map();
 var userColorsDark = new Map();
 var targetId = 200;
+var targetCategory = "TITEL";
 
 // declare document text, start and end character
 var documentText, startCharacter, endCharacter;
@@ -15,6 +16,13 @@ $(document).ready(function() {
     // connect to websocket on page ready
     connect(targetId);
 
+    // receive text
+    getSubmissionPart("2f216683-5f13-4b5f-8a26-4ffa0566eca1", targetCategory, function (response) {
+        // todo success
+    }, function () {
+        // todo error
+    });
+
     /**
      * Context menu handler
      */
@@ -204,7 +212,7 @@ $(document).ready(function() {
     documentText = $('#documentText').html();
 
     // fetch annotations from server on page start
-    getAnnotations(targetId, function (response) {
+    getAnnotations(targetId, targetCategory, function (response) {
         // iterate over annotations and display each
         $.each(response, function (i, annotation) {
             displayAnnotation(annotation);
@@ -526,6 +534,7 @@ function saveNewAnnotation(title, comment, startCharacter, endCharacter) {
     var annotationPostRequest = {
         userToken: userToken,
         targetId: targetId,
+        targetCategory: targetCategory,
         body: {
             title: title,
             comment: comment,
diff --git a/gemeinsamforschen/src/main/webapp/pages/annotation-document.jsp b/gemeinsamforschen/src/main/webapp/pages/annotation-document.jsp
index 0feb17e00df908ca0fc388249264ee4a220b6bf3..4780336a2892c60367e12b6484ccd04012128bbf 100644
--- a/gemeinsamforschen/src/main/webapp/pages/annotation-document.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/annotation-document.jsp
@@ -24,6 +24,8 @@
     <script src="../assets/js/annotationWebsocket.js"></script>
     <!-- js - annotation REST script -->
     <script src="../assets/js/annotationRest.js"></script>
+    <!-- js - unstructuredRest -->
+    <script src="../assets/js/unstructuredRest.js"></script>
     <!-- js - annotationScript -->
     <script src="../assets/js/annotationScript.js"></script>
 </head>
diff --git a/gemeinsamforschen/src/scripts/dbschema/fltrail.sql b/gemeinsamforschen/src/scripts/dbschema/fltrail.sql
index 2ceb83f7d35fcb3ac250943353cca3de23b34342..5ef4d315577afa6631281e4a9aaef5f5504e2963 100644
--- a/gemeinsamforschen/src/scripts/dbschema/fltrail.sql
+++ b/gemeinsamforschen/src/scripts/dbschema/fltrail.sql
@@ -142,7 +142,6 @@ CREATE TABLE if not exists `submissionparts` (
 CREATE TABLE if not exists `submissionpartbodyelements` (
   `fullSubmissionId` VARCHAR(120) NOT NULL,
   `category` VARCHAR(30) NOT NULL,
-  `text` MEDIUMTEXT NOT NULL,
   `startCharacter` int(11) NOT NULL,
   `endCharacter` int(11) NOT NULL,
   PRIMARY KEY (`fullSubmissionId`, `category`, `startCharacter`, `endCharacter`)