diff --git a/MANIFEST.in b/MANIFEST.in
index dc986c52dabc1e97e76eca903857977d9ad706ab..bef1560b93334be6581597b9ccc12244ad866b7e 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -3,3 +3,4 @@ include requirements.txt
 include tests-requirements.txt
 include arkindex/documents/*.xsl
 recursive-include arkindex/templates *.html
+recursive-include arkindex/templates *.json
diff --git a/Makefile b/Makefile
index 7f050fb7b9c3e7cd1bb86eeba077250a0823a068..7271bf562615055b2e8783a30c0c2cf7fcf5f983 100644
--- a/Makefile
+++ b/Makefile
@@ -2,7 +2,6 @@ ROOT_DIR:=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
 
 VERSION=$(shell git rev-parse --short HEAD)
 TAG=arkindex-app
-
 .PHONY: build
 
 all: clean build
@@ -32,7 +31,8 @@ worker:
 	celery worker -A arkindex.project -l INFO --purge
 
 test-fixtures:
-	export PGPASSWORD=devdata
+	$(eval export PGPASSWORD=devdata)
+	psql -h 127.0.0.1 -p 9100 -U devuser -c 'DROP DATABASE IF EXISTS arkindex_tmp_fixtures' template1
 	psql -h 127.0.0.1 -p 9100 -U devuser -c 'ALTER DATABASE arkindex_dev RENAME TO arkindex_tmp_fixtures' template1
 	psql -h 127.0.0.1 -p 9100 -U devuser -c 'CREATE DATABASE arkindex_dev' template1
 	arkindex/manage.py migrate
diff --git a/arkindex/documents/admin.py b/arkindex/documents/admin.py
index a8f4b8f386d43f7b5656bb146da3e74a3c2b9e72..2f9d2c5734e163c52e782431c74ba50dbfa8b262 100644
--- a/arkindex/documents/admin.py
+++ b/arkindex/documents/admin.py
@@ -57,9 +57,11 @@ class ActAdmin(admin.ModelAdmin):
 
 
 class TranscriptionAdmin(admin.ModelAdmin):
-    list_display = ('id', 'line', 'text', 'score')
-    fields = ('id', 'line', 'text', 'score')
+    list_display = ('id', 'text', 'score', 'element', )
+    list_filter = [('type', EnumFieldListFilter), ]
+    fields = ('id', 'text', 'score', 'element', 'zone', )
     readonly_fields = ('id', )
+    raw_id_fields = ('element', 'zone', )
 
 
 admin.site.register(Corpus, CorpusAdmin)
diff --git a/arkindex/documents/api.py b/arkindex/documents/api.py
index b562625e6fd2dcb0f2aa419f93f4af787607e433..786dfbb94bdbcdea5ed09e79cd4a05bbaf871aa1 100644
--- a/arkindex/documents/api.py
+++ b/arkindex/documents/api.py
@@ -16,7 +16,7 @@ from arkindex.documents.serializers import \
     ActSerializer, SurfaceSerializer, \
     TranscriptionCreateSerializer, TranscriptionsSerializer
 from arkindex.documents.models import \
-    Element, ElementType, Page, Act, Transcription, Corpus
+    Element, ElementType, Page, Act, Transcription, Corpus, TranscriptionType
 from arkindex.documents.search import \
     search_transcriptions_post, search_acts_post, search_transcriptions_filter_post
 from arkindex.documents.indexer import Indexer
@@ -110,11 +110,7 @@ class ActEdit(RetrieveAPIView):
     def get_object(self):
         act = super().get_object()
         act.parent_elements = Element.objects.get_ascending_paths(act.id)
-        act.child_elements = Element.objects.get_descending(act.id) \
-            .exclude(type=ElementType.Paragraph) \
-            .exclude(type=ElementType.Line) \
-            .exclude(type=ElementType.Word) \
-            .exclude(type=ElementType.Character)
+        act.child_elements = Element.objects.get_descending(act.id)
         return act
 
 
@@ -160,13 +156,8 @@ class TranscriptionCreate(CreateAPIView):
     permission_classes = (IsAuthenticated, )
 
     def perform_create(self, serializer):
-        element_type = serializer.validated_data['type']
-        if element_type not in (
-                ElementType.Page,
-                ElementType.Paragraph,
-                ElementType.Line,
-                ElementType.Word,
-                ElementType.Character):
+        transcription_type = serializer.validated_data['type']
+        if transcription_type not in TranscriptionType:
             raise ValidationError("This endpoint can only import transcriptions.")
         element = serializer.validated_data['element']
 
@@ -186,8 +177,8 @@ class TranscriptionCreate(CreateAPIView):
             ).first()
 
         ts, created = Transcription.objects.get_or_create(
-            corpus=element.corpus,
-            type=serializer.validated_data['type'],
+            element=element,
+            type=transcription_type,
             zone=ts_zone,
             text=serializer.validated_data['text'],
             defaults={
@@ -198,9 +189,6 @@ class TranscriptionCreate(CreateAPIView):
             ts.score = serializer.validated_data['score']
             ts.save()
 
-        # Create element paths
-        ts.add_parent(element)
-
         # Index in ES
         Indexer().run_index(
             settings.ES_INDEX_TRANSCRIPTIONS,
diff --git a/arkindex/documents/fixtures/data.json b/arkindex/documents/fixtures/data.json
index 3bfd00dbe35da109af7f60928d53d9f086fd8621..331c405deff205654b3450437bdf84b50468e130 100644
--- a/arkindex/documents/fixtures/data.json
+++ b/arkindex/documents/fixtures/data.json
@@ -15,442 +15,289 @@
 },
 {
     "model": "documents.elementpath",
-    "pk": "06592ee7-fc2d-4477-aa47-1ce06268dd8e",
+    "pk": "13148923-6c36-43b1-aa8b-83d09036d887",
     "fields": {
-        "element": "ba22e17c-b93f-4683-b869-40588b483558",
-        "path": "[\"fa275cab-d830-4f08-a227-6dd4b70ee377\", \"c6b3f72f-1373-45c7-a218-c9b0bcf1c70f\"]",
-        "ordering": 2
-    }
-},
-{
-    "model": "documents.elementpath",
-    "pk": "09586b91-fed7-4a91-a4be-00a12d6b9b83",
-    "fields": {
-        "element": "cfd4952d-41ff-45f0-abe4-a904acf5350b",
-        "path": "[\"fa275cab-d830-4f08-a227-6dd4b70ee377\", \"c6b3f72f-1373-45c7-a218-c9b0bcf1c70f\"]",
-        "ordering": 0
+        "element": "6a91e3b1-35e7-4158-a7ff-c312f4ea29ce",
+        "path": "[\"0e1a64e4-a981-4410-8cd6-2e916edbc406\", \"890f289f-6d23-4b06-942a-1c4bd930bdea\"]",
+        "ordering": 1
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "11eb3635-8c5a-4dc4-97d9-906467d92cb9",
+    "pk": "1b10828f-3f58-4fc7-a667-560f7e7d66eb",
     "fields": {
-        "element": "c6b3f72f-1373-45c7-a218-c9b0bcf1c70f",
-        "path": "[\"fa275cab-d830-4f08-a227-6dd4b70ee377\"]",
-        "ordering": 0
+        "element": "cc28e0c6-1db4-4746-b224-8165cb59f604",
+        "path": "[\"0e1a64e4-a981-4410-8cd6-2e916edbc406\", \"890f289f-6d23-4b06-942a-1c4bd930bdea\"]",
+        "ordering": 2
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "157cfbab-6a6f-49cf-8dd3-212f5f277e68",
+    "pk": "2c8a68bd-a8f6-47e4-bee7-e54d24a6a4de",
     "fields": {
-        "element": "bc9f1cbd-0202-4075-9150-7e256bdbd485",
-        "path": "[\"fa275cab-d830-4f08-a227-6dd4b70ee377\", \"c6b3f72f-1373-45c7-a218-c9b0bcf1c70f\", \"a83083ae-6db0-4d3f-9dcb-c49e2a232696\"]",
+        "element": "7b643542-004d-4276-84d7-4cf37872be50",
+        "path": "[\"0e1a64e4-a981-4410-8cd6-2e916edbc406\", \"890f289f-6d23-4b06-942a-1c4bd930bdea\", \"c0bd8efc-42a8-41be-834d-9e6df6b16b69\"]",
         "ordering": 0
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "4391ca9f-fa02-4540-aacd-8eb81dc19b29",
+    "pk": "313fab14-a134-45b9-b229-4ddda660ab82",
     "fields": {
-        "element": "a83083ae-6db0-4d3f-9dcb-c49e2a232696",
-        "path": "[\"fa275cab-d830-4f08-a227-6dd4b70ee377\", \"c6b3f72f-1373-45c7-a218-c9b0bcf1c70f\"]",
-        "ordering": 4
+        "element": "c0bd8efc-42a8-41be-834d-9e6df6b16b69",
+        "path": "[\"0e1a64e4-a981-4410-8cd6-2e916edbc406\", \"890f289f-6d23-4b06-942a-1c4bd930bdea\"]",
+        "ordering": 3
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "4daddfe1-b994-4609-a7df-3119980c1b66",
+    "pk": "31fc904f-0a21-4d28-916c-73e27b14540f",
     "fields": {
-        "element": "f52d8907-aeac-45b1-b584-99c76a31f77b",
-        "path": "[\"fa275cab-d830-4f08-a227-6dd4b70ee377\", \"c6b3f72f-1373-45c7-a218-c9b0bcf1c70f\", \"ca3fa6e6-838b-4683-8cf9-f6ff75fa8e36\"]",
+        "element": "890f289f-6d23-4b06-942a-1c4bd930bdea",
+        "path": "[\"0e1a64e4-a981-4410-8cd6-2e916edbc406\"]",
         "ordering": 0
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "5039aafb-c74e-4658-9527-08f474fa1dd8",
+    "pk": "42d56c43-748a-4cde-8bbb-1a47dc6114c7",
     "fields": {
-        "element": "bb32de06-561c-4c0d-94e0-c43720079cc3",
-        "path": "[\"fa275cab-d830-4f08-a227-6dd4b70ee377\", \"c6b3f72f-1373-45c7-a218-c9b0bcf1c70f\", \"ba22e17c-b93f-4683-b869-40588b483558\"]",
+        "element": "1b1444a9-5171-4de9-9520-089978fd5c9e",
+        "path": "[\"364ac256-9c76-4849-903f-9893530aa73e\", \"1123645c-069e-4b82-ba2a-dfabc4659e91\"]",
         "ordering": 0
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "59e8a09c-865c-4846-af27-665c7501d74c",
+    "pk": "473e3d02-928f-4d1c-b246-cfc7449842c5",
     "fields": {
-        "element": "6bf20744-97fa-4372-bcc0-5458bb5de3ce",
-        "path": "[\"fa275cab-d830-4f08-a227-6dd4b70ee377\", \"c6b3f72f-1373-45c7-a218-c9b0bcf1c70f\", \"c21ff1e2-694d-4310-97b6-d4a31cf0bfa3\"]",
-        "ordering": 2
-    }
-},
-{
-    "model": "documents.elementpath",
-    "pk": "613d75de-cdf0-4303-90d0-98552d2fa2c6",
-    "fields": {
-        "element": "ca3fa6e6-838b-4683-8cf9-f6ff75fa8e36",
-        "path": "[\"fa275cab-d830-4f08-a227-6dd4b70ee377\", \"c6b3f72f-1373-45c7-a218-c9b0bcf1c70f\"]",
-        "ordering": 2
-    }
-},
-{
-    "model": "documents.elementpath",
-    "pk": "6373dce1-99c2-4405-8335-d5badae67780",
-    "fields": {
-        "element": "c31fa532-b498-4b22-9b81-5110ef02971d",
-        "path": "[\"fa275cab-d830-4f08-a227-6dd4b70ee377\", \"c6b3f72f-1373-45c7-a218-c9b0bcf1c70f\", \"c21ff1e2-694d-4310-97b6-d4a31cf0bfa3\"]",
+        "element": "c932cf9f-4305-4157-b723-31ba8d433941",
+        "path": "[\"0e1a64e4-a981-4410-8cd6-2e916edbc406\", \"890f289f-6d23-4b06-942a-1c4bd930bdea\", \"6a91e3b1-35e7-4158-a7ff-c312f4ea29ce\"]",
         "ordering": 1
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "671a39a9-a6c8-491b-a5fa-6ccec6b78358",
-    "fields": {
-        "element": "59741867-4b09-4874-afab-86f931d2e223",
-        "path": "[\"fa275cab-d830-4f08-a227-6dd4b70ee377\", \"c6b3f72f-1373-45c7-a218-c9b0bcf1c70f\", \"c21ff1e2-694d-4310-97b6-d4a31cf0bfa3\"]",
-        "ordering": 0
-    }
-},
-{
-    "model": "documents.elementpath",
-    "pk": "7426e036-a6f5-462e-bb3b-52a8d6750a56",
+    "pk": "4ef6cd94-7921-40df-82fe-a4efad26088e",
     "fields": {
-        "element": "4d9be55f-e873-4e21-81e8-144414dc4668",
-        "path": "[\"fa275cab-d830-4f08-a227-6dd4b70ee377\", \"c6b3f72f-1373-45c7-a218-c9b0bcf1c70f\", \"3901fbac-ab69-4fa5-9e8e-e973ec684873\"]",
-        "ordering": 0
-    }
-},
-{
-    "model": "documents.elementpath",
-    "pk": "83f8aa10-f2df-446e-8c79-a185f08ad499",
-    "fields": {
-        "element": "c6d1ae4d-5bf1-4167-ae28-6518c1b572c2",
-        "path": "[\"fa275cab-d830-4f08-a227-6dd4b70ee377\", \"c6b3f72f-1373-45c7-a218-c9b0bcf1c70f\", \"ab6fa45a-f1fc-4b95-a0fb-db59b5edd717\"]",
-        "ordering": 2
-    }
-},
-{
-    "model": "documents.elementpath",
-    "pk": "978cc83e-2a8e-4416-9db1-8d820007795e",
-    "fields": {
-        "element": "8069f69b-3f46-47bf-9492-4aeaca1d3a50",
-        "path": "[\"fa275cab-d830-4f08-a227-6dd4b70ee377\", \"c6b3f72f-1373-45c7-a218-c9b0bcf1c70f\", \"ba22e17c-b93f-4683-b869-40588b483558\"]",
+        "element": "d1f372a9-7fd7-45b2-8f2d-40e51c192900",
+        "path": "[\"0e1a64e4-a981-4410-8cd6-2e916edbc406\", \"890f289f-6d23-4b06-942a-1c4bd930bdea\"]",
         "ordering": 1
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "9d6e58d9-b44c-4764-ba98-f7b592c03a35",
+    "pk": "4fed58f1-732a-4fe4-876f-71e74952d55d",
     "fields": {
-        "element": "3901fbac-ab69-4fa5-9e8e-e973ec684873",
-        "path": "[\"fa275cab-d830-4f08-a227-6dd4b70ee377\", \"c6b3f72f-1373-45c7-a218-c9b0bcf1c70f\"]",
-        "ordering": 3
+        "element": "ba3d6cf3-7041-4acc-8c3e-8369e54f3061",
+        "path": "[\"364ac256-9c76-4849-903f-9893530aa73e\", \"1123645c-069e-4b82-ba2a-dfabc4659e91\"]",
+        "ordering": 2
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "a5416544-7779-4e08-973e-67f7f241b8a5",
+    "pk": "500d1d39-33c6-4198-8e23-408f9feb3900",
     "fields": {
-        "element": "280577a2-37ea-4283-bb8a-5a41bd4158be",
-        "path": "[\"fa275cab-d830-4f08-a227-6dd4b70ee377\", \"c6b3f72f-1373-45c7-a218-c9b0bcf1c70f\", \"fd3ee4b9-edd2-4f82-9216-a1160bf890d4\"]",
-        "ordering": 1
+        "element": "1123645c-069e-4b82-ba2a-dfabc4659e91",
+        "path": "[\"364ac256-9c76-4849-903f-9893530aa73e\"]",
+        "ordering": 0
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "ae129f4d-44cd-4521-a366-f1e6308c2c0e",
+    "pk": "5472bb04-45c1-4ce8-9a27-079fd8c0a74f",
     "fields": {
-        "element": "6c17e8e6-71af-4a7d-8bdb-f21532fc024d",
-        "path": "[\"1b2ea32f-6009-4a4f-aa78-fafebbbcbacb\", \"0a47d859-a5ac-41c6-97d8-878da5fefbf1\"]",
-        "ordering": 1
+        "element": "db398086-e6f9-45d1-bf4f-37bb9a8aab3c",
+        "path": "[\"0e1a64e4-a981-4410-8cd6-2e916edbc406\", \"890f289f-6d23-4b06-942a-1c4bd930bdea\", \"715b595a-54ed-4dd9-9109-f076683899d1\"]",
+        "ordering": 0
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "b493410b-c0fa-4a80-87b0-5ba50bff6440",
+    "pk": "6202ff54-e44d-425d-9494-52a24139cf2f",
     "fields": {
-        "element": "c21ff1e2-694d-4310-97b6-d4a31cf0bfa3",
-        "path": "[\"fa275cab-d830-4f08-a227-6dd4b70ee377\", \"c6b3f72f-1373-45c7-a218-c9b0bcf1c70f\"]",
+        "element": "62313e7d-b189-4f9b-9e3e-4d77a5ba4615",
+        "path": "[\"0e1a64e4-a981-4410-8cd6-2e916edbc406\", \"890f289f-6d23-4b06-942a-1c4bd930bdea\", \"6a91e3b1-35e7-4158-a7ff-c312f4ea29ce\"]",
         "ordering": 0
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "b92d349a-df0b-4451-8e28-8d6790af5e46",
+    "pk": "7687c99b-549e-40c4-91a1-a6cf304e7721",
     "fields": {
-        "element": "fd3ee4b9-edd2-4f82-9216-a1160bf890d4",
-        "path": "[\"fa275cab-d830-4f08-a227-6dd4b70ee377\", \"c6b3f72f-1373-45c7-a218-c9b0bcf1c70f\"]",
+        "element": "16204e20-9e67-4305-b48c-c836ca88a523",
+        "path": "[\"364ac256-9c76-4849-903f-9893530aa73e\", \"1123645c-069e-4b82-ba2a-dfabc4659e91\"]",
         "ordering": 1
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "ba4f90af-9d39-45f9-b2ba-6ac06780563e",
+    "pk": "85eefd92-e8a6-4221-ac05-acc2ebf4ce5b",
     "fields": {
-        "element": "9b857bbf-c8b6-4e8c-8783-18bf1f033290",
-        "path": "[\"fa275cab-d830-4f08-a227-6dd4b70ee377\", \"c6b3f72f-1373-45c7-a218-c9b0bcf1c70f\", \"fd3ee4b9-edd2-4f82-9216-a1160bf890d4\"]",
+        "element": "ca5ae7e4-80d4-48fb-8ae8-ee0908b4ce82",
+        "path": "[\"0e1a64e4-a981-4410-8cd6-2e916edbc406\", \"890f289f-6d23-4b06-942a-1c4bd930bdea\", \"ec08f852-b5fc-4c00-9237-3e246d6aa11f\"]",
         "ordering": 0
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "c256c25c-16d0-4ce1-9967-e95799b2c3c8",
+    "pk": "89f1d52c-3caa-4937-a71e-2d3876b75cca",
     "fields": {
-        "element": "478a271b-a93b-4730-89fc-8b486fd7b0f2",
-        "path": "[\"fa275cab-d830-4f08-a227-6dd4b70ee377\", \"c6b3f72f-1373-45c7-a218-c9b0bcf1c70f\", \"cfd4952d-41ff-45f0-abe4-a904acf5350b\"]",
+        "element": "5a7a8372-592c-46ce-adfb-c77484536eb8",
+        "path": "[\"0e1a64e4-a981-4410-8cd6-2e916edbc406\", \"890f289f-6d23-4b06-942a-1c4bd930bdea\", \"cc28e0c6-1db4-4746-b224-8165cb59f604\"]",
         "ordering": 0
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "c8176f15-12da-4fbf-a643-6b9b97ff3b3d",
+    "pk": "aa876e8c-281d-4faf-9853-6a93a6d6349b",
     "fields": {
-        "element": "0a47d859-a5ac-41c6-97d8-878da5fefbf1",
-        "path": "[\"1b2ea32f-6009-4a4f-aa78-fafebbbcbacb\"]",
-        "ordering": 0
+        "element": "715b595a-54ed-4dd9-9109-f076683899d1",
+        "path": "[\"0e1a64e4-a981-4410-8cd6-2e916edbc406\", \"890f289f-6d23-4b06-942a-1c4bd930bdea\"]",
+        "ordering": 4
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "ce847918-cffc-4665-bb5c-df93ee05aff5",
+    "pk": "c015d35d-ed58-4f22-8200-695d2bd0d767",
     "fields": {
-        "element": "87f549c2-581d-4290-b641-75e73926968e",
-        "path": "[\"1b2ea32f-6009-4a4f-aa78-fafebbbcbacb\", \"0a47d859-a5ac-41c6-97d8-878da5fefbf1\"]",
+        "element": "ec08f852-b5fc-4c00-9237-3e246d6aa11f",
+        "path": "[\"0e1a64e4-a981-4410-8cd6-2e916edbc406\", \"890f289f-6d23-4b06-942a-1c4bd930bdea\"]",
         "ordering": 0
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "d0d0e0c9-4712-420f-8026-c5994c476dd1",
-    "fields": {
-        "element": "ce80f464-5f47-4155-b596-bafe3465c102",
-        "path": "[\"1b2ea32f-6009-4a4f-aa78-fafebbbcbacb\", \"0a47d859-a5ac-41c6-97d8-878da5fefbf1\"]",
-        "ordering": 2
-    }
-},
-{
-    "model": "documents.elementpath",
-    "pk": "eb6d5273-ee51-4ffe-8a07-7d4e92b41368",
+    "pk": "c4869066-1807-4e14-8173-424b553d150e",
     "fields": {
-        "element": "1327dc18-e5c7-44b0-91e6-9dfee3417ce9",
-        "path": "[\"fa275cab-d830-4f08-a227-6dd4b70ee377\", \"c6b3f72f-1373-45c7-a218-c9b0bcf1c70f\", \"ab6fa45a-f1fc-4b95-a0fb-db59b5edd717\"]",
+        "element": "5d31c99a-1679-4010-bca2-7452bc7faae4",
+        "path": "[\"0e1a64e4-a981-4410-8cd6-2e916edbc406\", \"890f289f-6d23-4b06-942a-1c4bd930bdea\"]",
         "ordering": 0
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "f00c6557-0585-4535-88fa-34a5262dc9c6",
+    "pk": "e37b5057-b065-4195-9c72-5c3118896c1c",
     "fields": {
-        "element": "58343ea9-176f-434c-a9ed-22f975b79968",
-        "path": "[\"fa275cab-d830-4f08-a227-6dd4b70ee377\", \"c6b3f72f-1373-45c7-a218-c9b0bcf1c70f\", \"ba22e17c-b93f-4683-b869-40588b483558\"]",
+        "element": "e48098d8-4991-4770-93d8-ae2f9ce1cfaf",
+        "path": "[\"0e1a64e4-a981-4410-8cd6-2e916edbc406\", \"890f289f-6d23-4b06-942a-1c4bd930bdea\"]",
         "ordering": 2
     }
 },
-{
-    "model": "documents.elementpath",
-    "pk": "f230e413-de34-4d2b-9698-5816bc72eea5",
-    "fields": {
-        "element": "ab6fa45a-f1fc-4b95-a0fb-db59b5edd717",
-        "path": "[\"fa275cab-d830-4f08-a227-6dd4b70ee377\", \"c6b3f72f-1373-45c7-a218-c9b0bcf1c70f\"]",
-        "ordering": 1
-    }
-},
-{
-    "model": "documents.elementpath",
-    "pk": "f81727f5-1f9f-4d9b-b945-fd4b696bb1e1",
-    "fields": {
-        "element": "9ef69659-7f7c-4204-9ceb-dbdc2d8daec3",
-        "path": "[\"fa275cab-d830-4f08-a227-6dd4b70ee377\", \"c6b3f72f-1373-45c7-a218-c9b0bcf1c70f\", \"ab6fa45a-f1fc-4b95-a0fb-db59b5edd717\"]",
-        "ordering": 1
-    }
-},
 {
     "model": "documents.element",
-    "pk": "0a47d859-a5ac-41c6-97d8-878da5fefbf1",
+    "pk": "0e1a64e4-a981-4410-8cd6-2e916edbc406",
     "fields": {
-        "created": "2018-07-24T08:18:54.839Z",
-        "updated": "2018-07-24T08:18:54.839Z",
-        "corpus": "test",
-        "type": "register",
-        "name": "Register 2",
-        "zone": null
-    }
-},
-{
-    "model": "documents.element",
-    "pk": "1327dc18-e5c7-44b0-91e6-9dfee3417ce9",
-    "fields": {
-        "created": "2018-07-24T08:18:54.980Z",
-        "updated": "2018-07-24T08:18:54.980Z",
-        "corpus": "test",
-        "type": "word",
-        "name": "",
-        "zone": "d94e1f63-584d-423f-9d66-966362e413a5"
-    }
-},
-{
-    "model": "documents.element",
-    "pk": "1b2ea32f-6009-4a4f-aa78-fafebbbcbacb",
-    "fields": {
-        "created": "2018-07-24T08:18:54.831Z",
-        "updated": "2018-07-24T08:18:54.831Z",
+        "created": "2018-07-30T09:17:42.437Z",
+        "updated": "2018-07-30T09:17:42.437Z",
         "corpus": "test",
         "type": "volume",
-        "name": "Volume 2",
+        "name": "Volume 1",
         "zone": null
     }
 },
 {
     "model": "documents.element",
-    "pk": "280577a2-37ea-4283-bb8a-5a41bd4158be",
-    "fields": {
-        "created": "2018-07-24T08:18:55.109Z",
-        "updated": "2018-07-24T08:18:55.109Z",
-        "corpus": "test",
-        "type": "surface",
-        "name": "Surface C",
-        "zone": "ee7b9b2b-ee1d-49fc-8192-a03c16a03364"
-    }
-},
-{
-    "model": "documents.element",
-    "pk": "3901fbac-ab69-4fa5-9e8e-e973ec684873",
+    "pk": "1123645c-069e-4b82-ba2a-dfabc4659e91",
     "fields": {
-        "created": "2018-07-24T08:18:55.059Z",
-        "updated": "2018-07-24T08:18:55.059Z",
+        "created": "2018-07-30T09:17:42.458Z",
+        "updated": "2018-07-30T09:17:42.458Z",
         "corpus": "test",
-        "type": "act",
-        "name": "Act 4",
+        "type": "register",
+        "name": "Register 2",
         "zone": null
     }
 },
 {
     "model": "documents.element",
-    "pk": "478a271b-a93b-4730-89fc-8b486fd7b0f2",
-    "fields": {
-        "created": "2018-07-24T08:18:55.103Z",
-        "updated": "2018-07-24T08:18:55.103Z",
-        "corpus": "test",
-        "type": "surface",
-        "name": "Surface A",
-        "zone": "b968bc1a-2c25-47e3-b49b-d6a05dc6d245"
-    }
-},
-{
-    "model": "documents.element",
-    "pk": "4d9be55f-e873-4e21-81e8-144414dc4668",
-    "fields": {
-        "created": "2018-07-24T08:18:55.114Z",
-        "updated": "2018-07-24T08:18:55.114Z",
-        "corpus": "test",
-        "type": "surface",
-        "name": "Surface E",
-        "zone": "8b777c07-2cf5-4b47-b407-a19dfc27fcc9"
-    }
-},
-{
-    "model": "documents.element",
-    "pk": "58343ea9-176f-434c-a9ed-22f975b79968",
-    "fields": {
-        "created": "2018-07-24T08:18:55.041Z",
-        "updated": "2018-07-24T08:18:55.041Z",
-        "corpus": "test",
-        "type": "word",
-        "name": "",
-        "zone": "c58b425e-1bdf-4c0d-860c-28e6793db75f"
-    }
-},
-{
-    "model": "documents.element",
-    "pk": "59741867-4b09-4874-afab-86f931d2e223",
+    "pk": "16204e20-9e67-4305-b48c-c836ca88a523",
     "fields": {
-        "created": "2018-07-24T08:18:54.945Z",
-        "updated": "2018-07-24T08:18:54.945Z",
+        "created": "2018-07-30T09:17:42.594Z",
+        "updated": "2018-07-30T09:17:42.594Z",
         "corpus": "test",
-        "type": "word",
-        "name": "",
-        "zone": "cc592547-529e-4289-8351-53fe6a5cc55c"
+        "type": "page",
+        "name": "Volume 2, page 1v",
+        "zone": "4e68c190-0e58-41e9-91eb-682dc00ef026"
     }
 },
 {
     "model": "documents.element",
-    "pk": "6bf20744-97fa-4372-bcc0-5458bb5de3ce",
+    "pk": "1b1444a9-5171-4de9-9520-089978fd5c9e",
     "fields": {
-        "created": "2018-07-24T08:18:54.968Z",
-        "updated": "2018-07-24T08:18:54.968Z",
+        "created": "2018-07-30T09:17:42.579Z",
+        "updated": "2018-07-30T09:17:42.579Z",
         "corpus": "test",
-        "type": "word",
-        "name": "",
-        "zone": "af98c80b-e1b5-4b05-9771-d28e9e543c85"
+        "type": "page",
+        "name": "Volume 2, page 1r",
+        "zone": "b66aff77-3dc4-437c-b669-4934ee331baa"
     }
 },
 {
     "model": "documents.element",
-    "pk": "6c17e8e6-71af-4a7d-8bdb-f21532fc024d",
+    "pk": "364ac256-9c76-4849-903f-9893530aa73e",
     "fields": {
-        "created": "2018-07-24T08:18:54.916Z",
-        "updated": "2018-07-24T08:18:54.916Z",
+        "created": "2018-07-30T09:17:42.445Z",
+        "updated": "2018-07-30T09:17:42.445Z",
         "corpus": "test",
-        "type": "page",
-        "name": "Volume 2, page 1v",
-        "zone": "1542f839-401b-4cf7-8ef1-afc02f6f3cc1"
+        "type": "volume",
+        "name": "Volume 2",
+        "zone": null
     }
 },
 {
     "model": "documents.element",
-    "pk": "8069f69b-3f46-47bf-9492-4aeaca1d3a50",
+    "pk": "5a7a8372-592c-46ce-adfb-c77484536eb8",
     "fields": {
-        "created": "2018-07-24T08:18:55.029Z",
-        "updated": "2018-07-24T08:18:55.029Z",
+        "created": "2018-07-30T09:17:42.969Z",
+        "updated": "2018-07-30T09:17:42.969Z",
         "corpus": "test",
-        "type": "word",
-        "name": "",
-        "zone": "c50126f5-682d-42ed-ab2d-f359717b81ad"
+        "type": "surface",
+        "name": "Surface D",
+        "zone": "a1243f0d-5b49-411c-9119-b103fdd372ae"
     }
 },
 {
     "model": "documents.element",
-    "pk": "87f549c2-581d-4290-b641-75e73926968e",
+    "pk": "5d31c99a-1679-4010-bca2-7452bc7faae4",
     "fields": {
-        "created": "2018-07-24T08:18:54.913Z",
-        "updated": "2018-07-24T08:18:54.913Z",
+        "created": "2018-07-30T09:17:42.514Z",
+        "updated": "2018-07-30T09:17:42.514Z",
         "corpus": "test",
         "type": "page",
-        "name": "Volume 2, page 1r",
-        "zone": "0554b559-3f85-40d7-b531-9c4a159e06e2"
+        "name": "Volume 1, page 1r",
+        "zone": "6127b926-41af-41aa-b7cb-d7ebda2e7876"
     }
 },
 {
     "model": "documents.element",
-    "pk": "9b857bbf-c8b6-4e8c-8783-18bf1f033290",
+    "pk": "62313e7d-b189-4f9b-9e3e-4d77a5ba4615",
     "fields": {
-        "created": "2018-07-24T08:18:55.106Z",
-        "updated": "2018-07-24T08:18:55.106Z",
+        "created": "2018-07-30T09:17:42.946Z",
+        "updated": "2018-07-30T09:17:42.946Z",
         "corpus": "test",
         "type": "surface",
         "name": "Surface B",
-        "zone": "26eb4783-b8c9-4768-b55f-0f61f3512659"
+        "zone": "4a69815f-fab3-4bd2-abe9-0c0162a0d589"
     }
 },
 {
     "model": "documents.element",
-    "pk": "9ef69659-7f7c-4204-9ceb-dbdc2d8daec3",
+    "pk": "6a91e3b1-35e7-4158-a7ff-c312f4ea29ce",
     "fields": {
-        "created": "2018-07-24T08:18:54.992Z",
-        "updated": "2018-07-24T08:18:54.992Z",
+        "created": "2018-07-30T09:17:42.839Z",
+        "updated": "2018-07-30T09:17:42.839Z",
         "corpus": "test",
-        "type": "word",
-        "name": "",
-        "zone": "2f0c6b20-89dc-45fe-9ce7-4b4cd6b3dd03"
+        "type": "act",
+        "name": "Act 2",
+        "zone": null
     }
 },
 {
     "model": "documents.element",
-    "pk": "a83083ae-6db0-4d3f-9dcb-c49e2a232696",
+    "pk": "715b595a-54ed-4dd9-9109-f076683899d1",
     "fields": {
-        "created": "2018-07-24T08:18:55.062Z",
-        "updated": "2018-07-24T08:18:55.062Z",
+        "created": "2018-07-30T09:17:42.872Z",
+        "updated": "2018-07-30T09:17:42.872Z",
         "corpus": "test",
         "type": "act",
         "name": "Act 5",
@@ -459,106 +306,82 @@
 },
 {
     "model": "documents.element",
-    "pk": "ab6fa45a-f1fc-4b95-a0fb-db59b5edd717",
-    "fields": {
-        "created": "2018-07-24T08:18:54.883Z",
-        "updated": "2018-07-24T08:18:54.883Z",
-        "corpus": "test",
-        "type": "page",
-        "name": "Volume 1, page 1v",
-        "zone": "1dff74fb-a607-4118-a8d3-e1137d4fe122"
-    }
-},
-{
-    "model": "documents.element",
-    "pk": "ba22e17c-b93f-4683-b869-40588b483558",
+    "pk": "7b643542-004d-4276-84d7-4cf37872be50",
     "fields": {
-        "created": "2018-07-24T08:18:54.886Z",
-        "updated": "2018-07-24T08:18:54.886Z",
+        "created": "2018-07-30T09:17:42.981Z",
+        "updated": "2018-07-30T09:17:42.982Z",
         "corpus": "test",
-        "type": "page",
-        "name": "Volume 1, page 2r",
-        "zone": "a8159284-10b7-423b-a199-8fe2abe949c8"
-    }
-},
-{
-    "model": "documents.element",
-    "pk": "bb32de06-561c-4c0d-94e0-c43720079cc3",
-    "fields": {
-        "created": "2018-07-24T08:18:55.017Z",
-        "updated": "2018-07-24T08:18:55.017Z",
-        "corpus": "test",
-        "type": "word",
-        "name": "",
-        "zone": "b01704a9-23ec-4a79-8ec3-476042697bb9"
+        "type": "surface",
+        "name": "Surface E",
+        "zone": "53284007-1295-4b13-8c0e-83f2710dc306"
     }
 },
 {
     "model": "documents.element",
-    "pk": "bc9f1cbd-0202-4075-9150-7e256bdbd485",
+    "pk": "890f289f-6d23-4b06-942a-1c4bd930bdea",
     "fields": {
-        "created": "2018-07-24T08:18:55.117Z",
-        "updated": "2018-07-24T08:18:55.117Z",
+        "created": "2018-07-30T09:17:42.452Z",
+        "updated": "2018-07-30T09:17:42.452Z",
         "corpus": "test",
-        "type": "surface",
-        "name": "Surface F",
-        "zone": "e5b7b231-2071-4521-a413-5cda61dcf909"
+        "type": "register",
+        "name": "Register 1",
+        "zone": null
     }
 },
 {
     "model": "documents.element",
-    "pk": "c21ff1e2-694d-4310-97b6-d4a31cf0bfa3",
+    "pk": "ba3d6cf3-7041-4acc-8c3e-8369e54f3061",
     "fields": {
-        "created": "2018-07-24T08:18:54.879Z",
-        "updated": "2018-07-24T08:18:54.879Z",
+        "created": "2018-07-30T09:17:42.605Z",
+        "updated": "2018-07-30T09:17:42.605Z",
         "corpus": "test",
         "type": "page",
-        "name": "Volume 1, page 1r",
-        "zone": "26be1b53-bd37-4c2c-9cba-47c2c82403ea"
+        "name": "Volume 2, page 2r",
+        "zone": "2c63963c-ee77-4098-b1df-bd3e9a2d3901"
     }
 },
 {
     "model": "documents.element",
-    "pk": "c31fa532-b498-4b22-9b81-5110ef02971d",
+    "pk": "c0bd8efc-42a8-41be-834d-9e6df6b16b69",
     "fields": {
-        "created": "2018-07-24T08:18:54.957Z",
-        "updated": "2018-07-24T08:18:54.957Z",
+        "created": "2018-07-30T09:17:42.861Z",
+        "updated": "2018-07-30T09:17:42.861Z",
         "corpus": "test",
-        "type": "word",
-        "name": "",
-        "zone": "286f8048-7b6e-4e4e-9664-22296303d47d"
+        "type": "act",
+        "name": "Act 4",
+        "zone": null
     }
 },
 {
     "model": "documents.element",
-    "pk": "c6b3f72f-1373-45c7-a218-c9b0bcf1c70f",
+    "pk": "c932cf9f-4305-4157-b723-31ba8d433941",
     "fields": {
-        "created": "2018-07-24T08:18:54.835Z",
-        "updated": "2018-07-24T08:18:54.835Z",
+        "created": "2018-07-30T09:17:42.956Z",
+        "updated": "2018-07-30T09:17:42.957Z",
         "corpus": "test",
-        "type": "register",
-        "name": "Register 1",
-        "zone": null
+        "type": "surface",
+        "name": "Surface C",
+        "zone": "bc287bf4-d8a2-4c1d-8d6c-491088486298"
     }
 },
 {
     "model": "documents.element",
-    "pk": "c6d1ae4d-5bf1-4167-ae28-6518c1b572c2",
+    "pk": "ca5ae7e4-80d4-48fb-8ae8-ee0908b4ce82",
     "fields": {
-        "created": "2018-07-24T08:18:55.004Z",
-        "updated": "2018-07-24T08:18:55.004Z",
+        "created": "2018-07-30T09:17:42.938Z",
+        "updated": "2018-07-30T09:17:42.938Z",
         "corpus": "test",
-        "type": "word",
-        "name": "",
-        "zone": "9833b904-5e2f-4642-a399-9c862068c734"
+        "type": "surface",
+        "name": "Surface A",
+        "zone": "9e6df567-4969-471d-bd2c-1beeeab1fc35"
     }
 },
 {
     "model": "documents.element",
-    "pk": "ca3fa6e6-838b-4683-8cf9-f6ff75fa8e36",
+    "pk": "cc28e0c6-1db4-4746-b224-8165cb59f604",
     "fields": {
-        "created": "2018-07-24T08:18:55.057Z",
-        "updated": "2018-07-24T08:18:55.057Z",
+        "created": "2018-07-30T09:17:42.849Z",
+        "updated": "2018-07-30T09:17:42.849Z",
         "corpus": "test",
         "type": "act",
         "name": "Act 3",
@@ -567,67 +390,55 @@
 },
 {
     "model": "documents.element",
-    "pk": "ce80f464-5f47-4155-b596-bafe3465c102",
+    "pk": "d1f372a9-7fd7-45b2-8f2d-40e51c192900",
     "fields": {
-        "created": "2018-07-24T08:18:54.919Z",
-        "updated": "2018-07-24T08:18:54.919Z",
+        "created": "2018-07-30T09:17:42.525Z",
+        "updated": "2018-07-30T09:17:42.525Z",
         "corpus": "test",
         "type": "page",
-        "name": "Volume 2, page 2r",
-        "zone": "699eed11-e91a-448e-bd3e-4216765aa80e"
-    }
-},
-{
-    "model": "documents.element",
-    "pk": "cfd4952d-41ff-45f0-abe4-a904acf5350b",
-    "fields": {
-        "created": "2018-07-24T08:18:55.051Z",
-        "updated": "2018-07-24T08:18:55.051Z",
-        "corpus": "test",
-        "type": "act",
-        "name": "Act 1",
-        "zone": null
+        "name": "Volume 1, page 1v",
+        "zone": "54bdbe3d-c17d-46de-a1b9-866fce5d09d8"
     }
 },
 {
     "model": "documents.element",
-    "pk": "f52d8907-aeac-45b1-b584-99c76a31f77b",
+    "pk": "db398086-e6f9-45d1-bf4f-37bb9a8aab3c",
     "fields": {
-        "created": "2018-07-24T08:18:55.112Z",
-        "updated": "2018-07-24T08:18:55.112Z",
+        "created": "2018-07-30T09:17:42.994Z",
+        "updated": "2018-07-30T09:17:42.994Z",
         "corpus": "test",
         "type": "surface",
-        "name": "Surface D",
-        "zone": "87869157-a183-4015-839b-9fce89cce4f0"
+        "name": "Surface F",
+        "zone": "9226e888-2f7e-4a4d-a010-4048a66760fe"
     }
 },
 {
     "model": "documents.element",
-    "pk": "fa275cab-d830-4f08-a227-6dd4b70ee377",
+    "pk": "e48098d8-4991-4770-93d8-ae2f9ce1cfaf",
     "fields": {
-        "created": "2018-07-24T08:18:54.826Z",
-        "updated": "2018-07-24T08:18:54.826Z",
+        "created": "2018-07-30T09:17:42.534Z",
+        "updated": "2018-07-30T09:17:42.534Z",
         "corpus": "test",
-        "type": "volume",
-        "name": "Volume 1",
-        "zone": null
+        "type": "page",
+        "name": "Volume 1, page 2r",
+        "zone": "7b51bcec-ce5c-4121-a41b-4f29088b4a09"
     }
 },
 {
     "model": "documents.element",
-    "pk": "fd3ee4b9-edd2-4f82-9216-a1160bf890d4",
+    "pk": "ec08f852-b5fc-4c00-9237-3e246d6aa11f",
     "fields": {
-        "created": "2018-07-24T08:18:55.054Z",
-        "updated": "2018-07-24T08:18:55.054Z",
+        "created": "2018-07-30T09:17:42.828Z",
+        "updated": "2018-07-30T09:17:42.828Z",
         "corpus": "test",
         "type": "act",
-        "name": "Act 2",
+        "name": "Act 1",
         "zone": null
     }
 },
 {
     "model": "documents.page",
-    "pk": "6c17e8e6-71af-4a7d-8bdb-f21532fc024d",
+    "pk": "16204e20-9e67-4305-b48c-c836ca88a523",
     "fields": {
         "folio": "1v",
         "page_type": "page",
@@ -638,7 +449,7 @@
 },
 {
     "model": "documents.page",
-    "pk": "87f549c2-581d-4290-b641-75e73926968e",
+    "pk": "1b1444a9-5171-4de9-9520-089978fd5c9e",
     "fields": {
         "folio": "1r",
         "page_type": "page",
@@ -649,18 +460,18 @@
 },
 {
     "model": "documents.page",
-    "pk": "ab6fa45a-f1fc-4b95-a0fb-db59b5edd717",
+    "pk": "5d31c99a-1679-4010-bca2-7452bc7faae4",
     "fields": {
-        "folio": "1v",
+        "folio": "1r",
         "page_type": "page",
         "nb": 1,
-        "direction": "verso",
+        "direction": "recto",
         "complement": null
     }
 },
 {
     "model": "documents.page",
-    "pk": "ba22e17c-b93f-4683-b869-40588b483558",
+    "pk": "ba3d6cf3-7041-4acc-8c3e-8369e54f3061",
     "fields": {
         "folio": "2r",
         "page_type": "page",
@@ -671,18 +482,18 @@
 },
 {
     "model": "documents.page",
-    "pk": "c21ff1e2-694d-4310-97b6-d4a31cf0bfa3",
+    "pk": "d1f372a9-7fd7-45b2-8f2d-40e51c192900",
     "fields": {
-        "folio": "1r",
+        "folio": "1v",
         "page_type": "page",
         "nb": 1,
-        "direction": "recto",
+        "direction": "verso",
         "complement": null
     }
 },
 {
     "model": "documents.page",
-    "pk": "ce80f464-5f47-4155-b596-bafe3465c102",
+    "pk": "e48098d8-4991-4770-93d8-ae2f9ce1cfaf",
     "fields": {
         "folio": "2r",
         "page_type": "page",
@@ -693,15 +504,15 @@
 },
 {
     "model": "documents.act",
-    "pk": "3901fbac-ab69-4fa5-9e8e-e973ec684873",
+    "pk": "6a91e3b1-35e7-4158-a7ff-c312f4ea29ce",
     "fields": {
-        "number": "4",
-        "folio": "2r"
+        "number": "2",
+        "folio": "1r-1v"
     }
 },
 {
     "model": "documents.act",
-    "pk": "a83083ae-6db0-4d3f-9dcb-c49e2a232696",
+    "pk": "715b595a-54ed-4dd9-9109-f076683899d1",
     "fields": {
         "number": "5",
         "folio": "2r"
@@ -709,106 +520,124 @@
 },
 {
     "model": "documents.act",
-    "pk": "ca3fa6e6-838b-4683-8cf9-f6ff75fa8e36",
+    "pk": "c0bd8efc-42a8-41be-834d-9e6df6b16b69",
     "fields": {
-        "number": "3",
+        "number": "4",
         "folio": "2r"
     }
 },
 {
     "model": "documents.act",
-    "pk": "cfd4952d-41ff-45f0-abe4-a904acf5350b",
+    "pk": "cc28e0c6-1db4-4746-b224-8165cb59f604",
     "fields": {
-        "number": "1",
-        "folio": "1r"
+        "number": "3",
+        "folio": "2r"
     }
 },
 {
     "model": "documents.act",
-    "pk": "fd3ee4b9-edd2-4f82-9216-a1160bf890d4",
+    "pk": "ec08f852-b5fc-4c00-9237-3e246d6aa11f",
     "fields": {
-        "number": "2",
-        "folio": "1r-1v"
+        "number": "1",
+        "folio": "1r"
     }
 },
 {
     "model": "documents.transcription",
-    "pk": "1327dc18-e5c7-44b0-91e6-9dfee3417ce9",
+    "pk": "10d7b606-318b-4ff2-9ad4-2514adbc85d3",
     "fields": {
-        "line": null,
-        "text": "PARIS",
+        "element": "d1f372a9-7fd7-45b2-8f2d-40e51c192900",
+        "type": "word",
+        "zone": "e25cf93b-bc98-43ac-88e5-bf3c872cd413",
+        "text": "DATUM",
         "score": 1.0
     }
 },
 {
     "model": "documents.transcription",
-    "pk": "58343ea9-176f-434c-a9ed-22f975b79968",
+    "pk": "501017a8-e2e9-4b92-9520-916c4b5af26e",
     "fields": {
-        "line": null,
+        "element": "e48098d8-4991-4770-93d8-ae2f9ce1cfaf",
+        "type": "word",
+        "zone": "7d03474e-0dd9-4097-9cb7-1b7ca62ee493",
         "text": "DATUM",
         "score": 1.0
     }
 },
 {
     "model": "documents.transcription",
-    "pk": "59741867-4b09-4874-afab-86f931d2e223",
+    "pk": "9de364d8-511d-404e-803c-7543436d38a2",
     "fields": {
-        "line": null,
-        "text": "PARIS",
+        "element": "5d31c99a-1679-4010-bca2-7452bc7faae4",
+        "type": "word",
+        "zone": "bc056616-4547-413a-a8f8-7f85f566f07b",
+        "text": "DATUM",
         "score": 1.0
     }
 },
 {
     "model": "documents.transcription",
-    "pk": "6bf20744-97fa-4372-bcc0-5458bb5de3ce",
+    "pk": "9f196980-c158-46c2-8acf-35d24e238375",
     "fields": {
-        "line": null,
-        "text": "DATUM",
+        "element": "5d31c99a-1679-4010-bca2-7452bc7faae4",
+        "type": "word",
+        "zone": "3731d073-eff4-4dc5-bd20-eec4db942629",
+        "text": "PARIS",
         "score": 1.0
     }
 },
 {
     "model": "documents.transcription",
-    "pk": "8069f69b-3f46-47bf-9492-4aeaca1d3a50",
+    "pk": "a25d097c-459b-42fa-9d0f-1066d4fed7f5",
     "fields": {
-        "line": null,
+        "element": "d1f372a9-7fd7-45b2-8f2d-40e51c192900",
+        "type": "word",
+        "zone": "443f1d3b-3903-4fff-9b31-d2ce4398f3f7",
         "text": "ROY",
         "score": 1.0
     }
 },
 {
     "model": "documents.transcription",
-    "pk": "9ef69659-7f7c-4204-9ceb-dbdc2d8daec3",
+    "pk": "ab36ebb9-9a0a-4058-8273-990c370a0744",
     "fields": {
-        "line": null,
-        "text": "ROY",
+        "element": "d1f372a9-7fd7-45b2-8f2d-40e51c192900",
+        "type": "word",
+        "zone": "e19edfae-88c5-4812-862f-1a030d2c0624",
+        "text": "PARIS",
         "score": 1.0
     }
 },
 {
     "model": "documents.transcription",
-    "pk": "bb32de06-561c-4c0d-94e0-c43720079cc3",
+    "pk": "cf58319b-48b5-4576-a202-39bb1f7bf77e",
     "fields": {
-        "line": null,
-        "text": "PARIS",
+        "element": "5d31c99a-1679-4010-bca2-7452bc7faae4",
+        "type": "word",
+        "zone": "714b9edc-9a90-4ff2-a898-e291dddf9ef3",
+        "text": "ROY",
         "score": 1.0
     }
 },
 {
     "model": "documents.transcription",
-    "pk": "c31fa532-b498-4b22-9b81-5110ef02971d",
+    "pk": "e5f10f7d-3d32-46f1-bd2d-d326063913a0",
     "fields": {
-        "line": null,
-        "text": "ROY",
+        "element": "e48098d8-4991-4770-93d8-ae2f9ce1cfaf",
+        "type": "word",
+        "zone": "96d371e1-1c9f-441f-9eac-fc250f3d390d",
+        "text": "PARIS",
         "score": 1.0
     }
 },
 {
     "model": "documents.transcription",
-    "pk": "c6d1ae4d-5bf1-4167-ae28-6518c1b572c2",
+    "pk": "e6dc4d6f-bff4-4760-9b01-29651da68a30",
     "fields": {
-        "line": null,
-        "text": "DATUM",
+        "element": "e48098d8-4991-4770-93d8-ae2f9ce1cfaf",
+        "type": "word",
+        "zone": "bc875098-80dd-4d3c-8aeb-d079a273e341",
+        "text": "ROY",
         "score": 1.0
     }
 },
@@ -818,18 +647,18 @@
     "fields": {
         "name": "Test Server",
         "url": "http://server",
-        "created": "2018-07-24T08:18:54.795Z",
-        "updated": "2018-07-24T08:18:54.795Z"
+        "created": "2018-07-30T09:17:42.359Z",
+        "updated": "2018-07-30T09:17:42.359Z"
     }
 },
 {
     "model": "images.image",
-    "pk": "195299b4-da0c-4499-a67c-7f926e63116f",
+    "pk": "30bcbdf5-24f7-4cc1-9f54-00f4e892458f",
     "fields": {
-        "created": "2018-07-24T08:18:54.800Z",
-        "updated": "2018-07-24T08:18:54.800Z",
+        "created": "2018-07-30T09:17:42.383Z",
+        "updated": "2018-07-30T09:17:42.383Z",
         "server": 1,
-        "path": "img2",
+        "path": "img4",
         "width": 1000,
         "height": 1000,
         "status": "unchecked"
@@ -837,12 +666,12 @@
 },
 {
     "model": "images.image",
-    "pk": "2feedc50-07d5-41bd-b720-ba2a2ce85bb2",
+    "pk": "52d09138-39d6-4eed-a559-335867348387",
     "fields": {
-        "created": "2018-07-24T08:18:54.806Z",
-        "updated": "2018-07-24T08:18:54.806Z",
+        "created": "2018-07-30T09:17:42.367Z",
+        "updated": "2018-07-30T09:17:42.367Z",
         "server": 1,
-        "path": "img5",
+        "path": "img1",
         "width": 1000,
         "height": 1000,
         "status": "unchecked"
@@ -850,12 +679,12 @@
 },
 {
     "model": "images.image",
-    "pk": "37762fff-fc51-4880-b1e0-5c7470e4a54b",
+    "pk": "6d165290-1e27-4b7f-85f4-3af79b41ec4b",
     "fields": {
-        "created": "2018-07-24T08:18:54.804Z",
-        "updated": "2018-07-24T08:18:54.804Z",
+        "created": "2018-07-30T09:17:42.387Z",
+        "updated": "2018-07-30T09:17:42.387Z",
         "server": 1,
-        "path": "img4",
+        "path": "img5",
         "width": 1000,
         "height": 1000,
         "status": "unchecked"
@@ -863,12 +692,12 @@
 },
 {
     "model": "images.image",
-    "pk": "42d18a7a-65d9-4b52-b42a-ed0b6c07bceb",
+    "pk": "98ff90e3-f6d2-4b15-bd85-b97103f9b4b1",
     "fields": {
-        "created": "2018-07-24T08:18:54.798Z",
-        "updated": "2018-07-24T08:18:54.798Z",
+        "created": "2018-07-30T09:17:42.378Z",
+        "updated": "2018-07-30T09:17:42.378Z",
         "server": 1,
-        "path": "img1",
+        "path": "img3",
         "width": 1000,
         "height": 1000,
         "status": "unchecked"
@@ -876,12 +705,12 @@
 },
 {
     "model": "images.image",
-    "pk": "c01f2ae6-abea-4a21-847f-6de9919cb91d",
+    "pk": "a1033e9d-774c-4dfd-925c-c291f5e54fe0",
     "fields": {
-        "created": "2018-07-24T08:18:54.802Z",
-        "updated": "2018-07-24T08:18:54.802Z",
+        "created": "2018-07-30T09:17:42.391Z",
+        "updated": "2018-07-30T09:17:42.391Z",
         "server": 1,
-        "path": "img3",
+        "path": "img6",
         "width": 1000,
         "height": 1000,
         "status": "unchecked"
@@ -889,12 +718,12 @@
 },
 {
     "model": "images.image",
-    "pk": "f298ee15-f126-44bc-ae22-459d18537e6f",
+    "pk": "eeca89c5-5590-48b4-8409-86d79e27d7a4",
     "fields": {
-        "created": "2018-07-24T08:18:54.808Z",
-        "updated": "2018-07-24T08:18:54.808Z",
+        "created": "2018-07-30T09:17:42.372Z",
+        "updated": "2018-07-30T09:17:42.372Z",
         "server": 1,
-        "path": "img6",
+        "path": "img2",
         "width": 1000,
         "height": 1000,
         "status": "unchecked"
@@ -902,219 +731,219 @@
 },
 {
     "model": "images.zone",
-    "pk": "0554b559-3f85-40d7-b531-9c4a159e06e2",
+    "pk": "2c63963c-ee77-4098-b1df-bd3e9a2d3901",
     "fields": {
-        "created": "2018-07-24T08:18:54.817Z",
-        "updated": "2018-07-24T08:18:54.817Z",
-        "image": "37762fff-fc51-4880-b1e0-5c7470e4a54b",
+        "created": "2018-07-30T09:17:42.424Z",
+        "updated": "2018-07-30T09:17:42.424Z",
+        "image": "a1033e9d-774c-4dfd-925c-c291f5e54fe0",
         "polygon": "Polygon((0,0), (1000,0), (1000,1000), (0,1000), (0,0))"
     }
 },
 {
     "model": "images.zone",
-    "pk": "1542f839-401b-4cf7-8ef1-afc02f6f3cc1",
+    "pk": "3731d073-eff4-4dc5-bd20-eec4db942629",
     "fields": {
-        "created": "2018-07-24T08:18:54.819Z",
-        "updated": "2018-07-24T08:18:54.819Z",
-        "image": "2feedc50-07d5-41bd-b720-ba2a2ce85bb2",
-        "polygon": "Polygon((0,0), (1000,0), (1000,1000), (0,1000), (0,0))"
+        "created": "2018-07-30T09:17:42.674Z",
+        "updated": "2018-07-30T09:17:42.674Z",
+        "image": "52d09138-39d6-4eed-a559-335867348387",
+        "polygon": "Polygon((100,100), (200,100), (200,200), (100,200), (100,100))"
     }
 },
 {
     "model": "images.zone",
-    "pk": "1dff74fb-a607-4118-a8d3-e1137d4fe122",
+    "pk": "443f1d3b-3903-4fff-9b31-d2ce4398f3f7",
     "fields": {
-        "created": "2018-07-24T08:18:54.813Z",
-        "updated": "2018-07-24T08:18:54.813Z",
-        "image": "195299b4-da0c-4499-a67c-7f926e63116f",
-        "polygon": "Polygon((0,0), (1000,0), (1000,1000), (0,1000), (0,0))"
+        "created": "2018-07-30T09:17:42.748Z",
+        "updated": "2018-07-30T09:17:42.748Z",
+        "image": "eeca89c5-5590-48b4-8409-86d79e27d7a4",
+        "polygon": "Polygon((400,400), (500,400), (500,500), (400,500), (400,400))"
     }
 },
 {
     "model": "images.zone",
-    "pk": "26be1b53-bd37-4c2c-9cba-47c2c82403ea",
+    "pk": "4a69815f-fab3-4bd2-abe9-0c0162a0d589",
     "fields": {
-        "created": "2018-07-24T08:18:54.810Z",
-        "updated": "2018-07-24T08:18:54.810Z",
-        "image": "42d18a7a-65d9-4b52-b42a-ed0b6c07bceb",
-        "polygon": "Polygon((0,0), (1000,0), (1000,1000), (0,1000), (0,0))"
+        "created": "2018-07-30T09:17:42.943Z",
+        "updated": "2018-07-30T09:17:42.943Z",
+        "image": "52d09138-39d6-4eed-a559-335867348387",
+        "polygon": "Polygon((600,600), (1000,600), (1000,1000), (600,1000), (600,600))"
     }
 },
 {
     "model": "images.zone",
-    "pk": "26eb4783-b8c9-4768-b55f-0f61f3512659",
+    "pk": "4e68c190-0e58-41e9-91eb-682dc00ef026",
     "fields": {
-        "created": "2018-07-24T08:18:55.105Z",
-        "updated": "2018-07-24T08:18:55.105Z",
-        "image": "42d18a7a-65d9-4b52-b42a-ed0b6c07bceb",
-        "polygon": "Polygon((600,600), (1000,600), (1000,1000), (600,1000), (600,600))"
+        "created": "2018-07-30T09:17:42.418Z",
+        "updated": "2018-07-30T09:17:42.418Z",
+        "image": "6d165290-1e27-4b7f-85f4-3af79b41ec4b",
+        "polygon": "Polygon((0,0), (1000,0), (1000,1000), (0,1000), (0,0))"
     }
 },
 {
     "model": "images.zone",
-    "pk": "286f8048-7b6e-4e4e-9664-22296303d47d",
+    "pk": "53284007-1295-4b13-8c0e-83f2710dc306",
     "fields": {
-        "created": "2018-07-24T08:18:54.955Z",
-        "updated": "2018-07-24T08:18:54.955Z",
-        "image": "42d18a7a-65d9-4b52-b42a-ed0b6c07bceb",
-        "polygon": "Polygon((400,400), (500,400), (500,500), (400,500), (400,400))"
+        "created": "2018-07-30T09:17:42.975Z",
+        "updated": "2018-07-30T09:17:42.975Z",
+        "image": "98ff90e3-f6d2-4b15-bd85-b97103f9b4b1",
+        "polygon": "Polygon((300,300), (600,300), (600,600), (300,600), (300,300))"
     }
 },
 {
     "model": "images.zone",
-    "pk": "2f0c6b20-89dc-45fe-9ce7-4b4cd6b3dd03",
+    "pk": "54bdbe3d-c17d-46de-a1b9-866fce5d09d8",
     "fields": {
-        "created": "2018-07-24T08:18:54.990Z",
-        "updated": "2018-07-24T08:18:54.990Z",
-        "image": "195299b4-da0c-4499-a67c-7f926e63116f",
-        "polygon": "Polygon((400,400), (500,400), (500,500), (400,500), (400,400))"
+        "created": "2018-07-30T09:17:42.402Z",
+        "updated": "2018-07-30T09:17:42.402Z",
+        "image": "eeca89c5-5590-48b4-8409-86d79e27d7a4",
+        "polygon": "Polygon((0,0), (1000,0), (1000,1000), (0,1000), (0,0))"
     }
 },
 {
     "model": "images.zone",
-    "pk": "699eed11-e91a-448e-bd3e-4216765aa80e",
+    "pk": "6127b926-41af-41aa-b7cb-d7ebda2e7876",
     "fields": {
-        "created": "2018-07-24T08:18:54.821Z",
-        "updated": "2018-07-24T08:18:54.821Z",
-        "image": "f298ee15-f126-44bc-ae22-459d18537e6f",
+        "created": "2018-07-30T09:17:42.397Z",
+        "updated": "2018-07-30T09:17:42.397Z",
+        "image": "52d09138-39d6-4eed-a559-335867348387",
         "polygon": "Polygon((0,0), (1000,0), (1000,1000), (0,1000), (0,0))"
     }
 },
 {
     "model": "images.zone",
-    "pk": "87869157-a183-4015-839b-9fce89cce4f0",
+    "pk": "714b9edc-9a90-4ff2-a898-e291dddf9ef3",
     "fields": {
-        "created": "2018-07-24T08:18:55.110Z",
-        "updated": "2018-07-24T08:18:55.110Z",
-        "image": "c01f2ae6-abea-4a21-847f-6de9919cb91d",
-        "polygon": "Polygon((0,0), (300,0), (300,300), (0,300), (0,0))"
+        "created": "2018-07-30T09:17:42.691Z",
+        "updated": "2018-07-30T09:17:42.691Z",
+        "image": "52d09138-39d6-4eed-a559-335867348387",
+        "polygon": "Polygon((400,400), (500,400), (500,500), (400,500), (400,400))"
     }
 },
 {
     "model": "images.zone",
-    "pk": "8b777c07-2cf5-4b47-b407-a19dfc27fcc9",
+    "pk": "7b51bcec-ce5c-4121-a41b-4f29088b4a09",
     "fields": {
-        "created": "2018-07-24T08:18:55.113Z",
-        "updated": "2018-07-24T08:18:55.113Z",
-        "image": "c01f2ae6-abea-4a21-847f-6de9919cb91d",
-        "polygon": "Polygon((300,300), (600,300), (600,600), (300,600), (300,300))"
+        "created": "2018-07-30T09:17:42.406Z",
+        "updated": "2018-07-30T09:17:42.406Z",
+        "image": "98ff90e3-f6d2-4b15-bd85-b97103f9b4b1",
+        "polygon": "Polygon((0,0), (1000,0), (1000,1000), (0,1000), (0,0))"
     }
 },
 {
     "model": "images.zone",
-    "pk": "9833b904-5e2f-4642-a399-9c862068c734",
+    "pk": "7d03474e-0dd9-4097-9cb7-1b7ca62ee493",
     "fields": {
-        "created": "2018-07-24T08:18:55.001Z",
-        "updated": "2018-07-24T08:18:55.002Z",
-        "image": "195299b4-da0c-4499-a67c-7f926e63116f",
+        "created": "2018-07-30T09:17:42.811Z",
+        "updated": "2018-07-30T09:17:42.811Z",
+        "image": "98ff90e3-f6d2-4b15-bd85-b97103f9b4b1",
         "polygon": "Polygon((700,700), (800,700), (800,800), (700,800), (700,700))"
     }
 },
 {
     "model": "images.zone",
-    "pk": "a8159284-10b7-423b-a199-8fe2abe949c8",
+    "pk": "9226e888-2f7e-4a4d-a010-4048a66760fe",
     "fields": {
-        "created": "2018-07-24T08:18:54.815Z",
-        "updated": "2018-07-24T08:18:54.815Z",
-        "image": "c01f2ae6-abea-4a21-847f-6de9919cb91d",
-        "polygon": "Polygon((0,0), (1000,0), (1000,1000), (0,1000), (0,0))"
+        "created": "2018-07-30T09:17:42.988Z",
+        "updated": "2018-07-30T09:17:42.988Z",
+        "image": "98ff90e3-f6d2-4b15-bd85-b97103f9b4b1",
+        "polygon": "Polygon((600,600), (1000,600), (1000,1000), (600,1000), (600,600))"
     }
 },
 {
     "model": "images.zone",
-    "pk": "af98c80b-e1b5-4b05-9771-d28e9e543c85",
+    "pk": "96d371e1-1c9f-441f-9eac-fc250f3d390d",
     "fields": {
-        "created": "2018-07-24T08:18:54.966Z",
-        "updated": "2018-07-24T08:18:54.966Z",
-        "image": "42d18a7a-65d9-4b52-b42a-ed0b6c07bceb",
-        "polygon": "Polygon((700,700), (800,700), (800,800), (700,800), (700,700))"
+        "created": "2018-07-30T09:17:42.777Z",
+        "updated": "2018-07-30T09:17:42.777Z",
+        "image": "98ff90e3-f6d2-4b15-bd85-b97103f9b4b1",
+        "polygon": "Polygon((100,100), (200,100), (200,200), (100,200), (100,100))"
     }
 },
 {
     "model": "images.zone",
-    "pk": "b01704a9-23ec-4a79-8ec3-476042697bb9",
+    "pk": "9e6df567-4969-471d-bd2c-1beeeab1fc35",
     "fields": {
-        "created": "2018-07-24T08:18:55.014Z",
-        "updated": "2018-07-24T08:18:55.014Z",
-        "image": "c01f2ae6-abea-4a21-847f-6de9919cb91d",
-        "polygon": "Polygon((100,100), (200,100), (200,200), (100,200), (100,100))"
+        "created": "2018-07-30T09:17:42.933Z",
+        "updated": "2018-07-30T09:17:42.933Z",
+        "image": "52d09138-39d6-4eed-a559-335867348387",
+        "polygon": "Polygon((0,0), (600,0), (600,600), (0,600), (0,0))"
     }
 },
 {
     "model": "images.zone",
-    "pk": "b968bc1a-2c25-47e3-b49b-d6a05dc6d245",
+    "pk": "a1243f0d-5b49-411c-9119-b103fdd372ae",
     "fields": {
-        "created": "2018-07-24T08:18:55.101Z",
-        "updated": "2018-07-24T08:18:55.101Z",
-        "image": "42d18a7a-65d9-4b52-b42a-ed0b6c07bceb",
-        "polygon": "Polygon((0,0), (600,0), (600,600), (0,600), (0,0))"
+        "created": "2018-07-30T09:17:42.963Z",
+        "updated": "2018-07-30T09:17:42.963Z",
+        "image": "98ff90e3-f6d2-4b15-bd85-b97103f9b4b1",
+        "polygon": "Polygon((0,0), (300,0), (300,300), (0,300), (0,0))"
     }
 },
 {
     "model": "images.zone",
-    "pk": "c50126f5-682d-42ed-ab2d-f359717b81ad",
+    "pk": "b66aff77-3dc4-437c-b669-4934ee331baa",
     "fields": {
-        "created": "2018-07-24T08:18:55.027Z",
-        "updated": "2018-07-24T08:18:55.027Z",
-        "image": "c01f2ae6-abea-4a21-847f-6de9919cb91d",
-        "polygon": "Polygon((400,400), (500,400), (500,500), (400,500), (400,400))"
+        "created": "2018-07-30T09:17:42.411Z",
+        "updated": "2018-07-30T09:17:42.411Z",
+        "image": "30bcbdf5-24f7-4cc1-9f54-00f4e892458f",
+        "polygon": "Polygon((0,0), (1000,0), (1000,1000), (0,1000), (0,0))"
     }
 },
 {
     "model": "images.zone",
-    "pk": "c58b425e-1bdf-4c0d-860c-28e6793db75f",
+    "pk": "bc056616-4547-413a-a8f8-7f85f566f07b",
     "fields": {
-        "created": "2018-07-24T08:18:55.038Z",
-        "updated": "2018-07-24T08:18:55.038Z",
-        "image": "c01f2ae6-abea-4a21-847f-6de9919cb91d",
+        "created": "2018-07-30T09:17:42.713Z",
+        "updated": "2018-07-30T09:17:42.713Z",
+        "image": "52d09138-39d6-4eed-a559-335867348387",
         "polygon": "Polygon((700,700), (800,700), (800,800), (700,800), (700,700))"
     }
 },
 {
     "model": "images.zone",
-    "pk": "cc592547-529e-4289-8351-53fe6a5cc55c",
+    "pk": "bc287bf4-d8a2-4c1d-8d6c-491088486298",
     "fields": {
-        "created": "2018-07-24T08:18:54.943Z",
-        "updated": "2018-07-24T08:18:54.943Z",
-        "image": "42d18a7a-65d9-4b52-b42a-ed0b6c07bceb",
-        "polygon": "Polygon((100,100), (200,100), (200,200), (100,200), (100,100))"
+        "created": "2018-07-30T09:17:42.951Z",
+        "updated": "2018-07-30T09:17:42.951Z",
+        "image": "eeca89c5-5590-48b4-8409-86d79e27d7a4",
+        "polygon": "Polygon((0,0), (1000,0), (1000,1000), (0,1000), (0,0))"
     }
 },
 {
     "model": "images.zone",
-    "pk": "d94e1f63-584d-423f-9d66-966362e413a5",
+    "pk": "bc875098-80dd-4d3c-8aeb-d079a273e341",
     "fields": {
-        "created": "2018-07-24T08:18:54.978Z",
-        "updated": "2018-07-24T08:18:54.978Z",
-        "image": "195299b4-da0c-4499-a67c-7f926e63116f",
-        "polygon": "Polygon((100,100), (200,100), (200,200), (100,200), (100,100))"
+        "created": "2018-07-30T09:17:42.794Z",
+        "updated": "2018-07-30T09:17:42.794Z",
+        "image": "98ff90e3-f6d2-4b15-bd85-b97103f9b4b1",
+        "polygon": "Polygon((400,400), (500,400), (500,500), (400,500), (400,400))"
     }
 },
 {
     "model": "images.zone",
-    "pk": "e5b7b231-2071-4521-a413-5cda61dcf909",
+    "pk": "e19edfae-88c5-4812-862f-1a030d2c0624",
     "fields": {
-        "created": "2018-07-24T08:18:55.116Z",
-        "updated": "2018-07-24T08:18:55.116Z",
-        "image": "c01f2ae6-abea-4a21-847f-6de9919cb91d",
-        "polygon": "Polygon((600,600), (1000,600), (1000,1000), (600,1000), (600,600))"
+        "created": "2018-07-30T09:17:42.729Z",
+        "updated": "2018-07-30T09:17:42.729Z",
+        "image": "eeca89c5-5590-48b4-8409-86d79e27d7a4",
+        "polygon": "Polygon((100,100), (200,100), (200,200), (100,200), (100,100))"
     }
 },
 {
     "model": "images.zone",
-    "pk": "ee7b9b2b-ee1d-49fc-8192-a03c16a03364",
+    "pk": "e25cf93b-bc98-43ac-88e5-bf3c872cd413",
     "fields": {
-        "created": "2018-07-24T08:18:55.107Z",
-        "updated": "2018-07-24T08:18:55.107Z",
-        "image": "195299b4-da0c-4499-a67c-7f926e63116f",
-        "polygon": "Polygon((0,0), (1000,0), (1000,1000), (0,1000), (0,0))"
+        "created": "2018-07-30T09:17:42.761Z",
+        "updated": "2018-07-30T09:17:42.761Z",
+        "image": "eeca89c5-5590-48b4-8409-86d79e27d7a4",
+        "polygon": "Polygon((700,700), (800,700), (800,800), (700,800), (700,700))"
     }
 },
 {
     "model": "users.user",
     "pk": 1,
     "fields": {
-        "password": "pbkdf2_sha256$100000$DcHO7CYPnlU5$gFLvCPAoUpyDhb785RnLm/VsgHhB523vxLvxsbF7W6k=",
+        "password": "pbkdf2_sha256$100000$EPuMv7ohgMmG$WBgllhmA/xqYBCjGfkACPPmtKalnbRnH3zNHKF+DylU=",
         "last_login": null,
         "email": "root@root.fr",
         "is_active": true,
@@ -1125,7 +954,7 @@
     "model": "users.user",
     "pk": 2,
     "fields": {
-        "password": "pbkdf2_sha256$100000$shjhRsQTakNR$Zbsbhx//3bR0juLcxyJF0+jbUC1+1+U6DN6HznIqTBc=",
+        "password": "pbkdf2_sha256$100000$EgJT1QJ5QDl8$13zvdc3+DOFsHyiulNWAkIhsJkfgVMPboyr3zuohypU=",
         "last_login": null,
         "email": "user@user.fr",
         "is_active": true,
diff --git a/arkindex/documents/management/commands/build_fixtures.py b/arkindex/documents/management/commands/build_fixtures.py
index fc4251c5773452915b9910b58701143a8a8db898..fa23cae0b47a75eaddc522eb2cbe7293ff85771f 100644
--- a/arkindex/documents/management/commands/build_fixtures.py
+++ b/arkindex/documents/management/commands/build_fixtures.py
@@ -1,6 +1,7 @@
 #!/usr/bin/env python3
 from django.core.management.base import BaseCommand
-from arkindex.documents.models import Corpus, Element, ElementType, Page, PageDirection, PageType, Act, Transcription
+from arkindex.documents.models import Corpus, Element, ElementType, Page, PageDirection, PageType, \
+    Act, Transcription, TranscriptionType
 from arkindex.images.models import ImageServer, Image, Zone
 from arkindex.users.models import User
 
@@ -79,12 +80,12 @@ class Command(BaseCommand):
         for page in (p1_1, p1_2, p1_3):
             for word, pos in [("PARIS", 100), ("ROY", 400), ("DATUM", 700)]:
                 Transcription.objects.create(
-                    corpus=corpus,
+                    element=page,
                     text=word,
-                    type=ElementType.Word,
+                    type=TranscriptionType.Word,
                     zone=makezone(page.zone.image, pos, pos + 100),
                     score=1.0,
-                ).add_parent(page)
+                )
 
         # Create 5 acts on volume 1
         act1 = Act.objects.create(corpus=corpus, name="Act 1", number="1", folio="1r")
diff --git a/arkindex/documents/management/commands/reindex.py b/arkindex/documents/management/commands/reindex.py
index 61d077b0d2cf642dee0d77f4e612d3489c956fa7..657c9e09c81347125e04b9377de8c577068cc54d 100644
--- a/arkindex/documents/management/commands/reindex.py
+++ b/arkindex/documents/management/commands/reindex.py
@@ -56,6 +56,8 @@ class Command(BaseCommand):
             if options['drop']:
                 indexer.drop_index(settings.ES_INDEX_TRANSCRIPTIONS)
             if volume:
+                reindex_transcriptions(volume_id=volume.id)
+                return
                 tasks.append(reindex_transcriptions.si(volume_id=volume.id))
             else:
                 tasks.append(reindex_transcriptions.si())
@@ -69,5 +71,5 @@ class Command(BaseCommand):
             else:
                 tasks.append(reindex_acts.si())
 
-        task = chain(*tasks).delay()
+        task = chain(*tasks).delay(async=False)
         print("Task started with ID {}".format(task.id))
diff --git a/arkindex/documents/migrations/0021_move_transcriptions.py b/arkindex/documents/migrations/0021_move_transcriptions.py
new file mode 100644
index 0000000000000000000000000000000000000000..8dae447a23f9ab320bb415eb50418a23c2fcd5a5
--- /dev/null
+++ b/arkindex/documents/migrations/0021_move_transcriptions.py
@@ -0,0 +1,85 @@
+# Generated by Django 2.0 on 2018-07-09 10:19
+
+import arkindex.documents.models
+from django.db import migrations, models
+import django.db.models.deletion
+import enumfields.fields
+import uuid
+
+
+POPULATE_TRANSCRIPTIONS = '''
+insert into documents_transcriptionnew
+(id, type, zone_id, score, text, element_id)
+select e.id, e.type, e.zone_id, t.score, t.text, parent.id as element_id
+from documents_element as e
+inner join documents_transcription as t on (t.element_ptr_id = e.id)
+inner join documents_elementpath as ep on (e.id = ep.element_id)
+inner join documents_element as parent on (parent.id = ep.path[array_length(ep.path, 1)])
+'''
+
+REMOVE_PATHS = '''
+delete from documents_elementpath
+where element_id in (
+    select id from documents_element
+    where type in ('paragraph', 'line', 'word', 'character')
+)
+'''
+
+REMOVE_ELEMENTS = '''
+delete from documents_element
+where type in ('paragraph', 'line', 'word', 'character')
+'''
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('images', '0005_zone_polygon_tmp'),
+        ('documents', '0020_metadata_revision'),
+    ]
+
+    operations = [
+        # Create new Transcription model
+        migrations.CreateModel(
+            name='TranscriptionNew',
+            fields=[
+                ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
+                ('type', enumfields.fields.EnumField(
+                    db_index=True,
+                    default='word',
+                    enum=arkindex.documents.models.TranscriptionType,
+                    max_length=50,
+                )),
+                ('text', models.TextField(blank=True, null=True)),
+                ('score', models.FloatField(blank=True, null=True)),
+                ('element', models.ForeignKey(
+                    on_delete=django.db.models.deletion.CASCADE,
+                    related_name='transcriptions',
+                    to='documents.Element',
+                )),
+                ('zone', models.ForeignKey(
+                    blank=True,
+                    null=True,
+                    on_delete=django.db.models.deletion.SET_NULL,
+                    related_name='transcriptions',
+                    to='images.Zone',
+                )),
+            ],
+        ),
+
+        # Populate it with raw sql data
+        migrations.RunSQL(POPULATE_TRANSCRIPTIONS, ''),
+
+        # Remove old data
+        migrations.DeleteModel(
+            name='Transcription',
+        ),
+        migrations.RunSQL(REMOVE_PATHS, ''),
+        migrations.RunSQL(REMOVE_ELEMENTS, ''),
+
+        # Replace original model
+        migrations.RenameModel(
+            old_name='TranscriptionNew',
+            new_name='Transcription',
+        ),
+    ]
diff --git a/arkindex/documents/models.py b/arkindex/documents/models.py
index 957dd36f431ed2d4bb00720c6755daaf9bc75806..7731497c548784bce6649b616748207e14c90d9b 100644
--- a/arkindex/documents/models.py
+++ b/arkindex/documents/models.py
@@ -1,6 +1,5 @@
 from django.db import models, transaction
 from django.contrib.postgres.indexes import GinIndex
-from django.urls import reverse
 from enumfields import EnumField, Enum
 from arkindex.project.models import IndexableModel
 from arkindex.project.celery import app as celery_app
@@ -33,10 +32,6 @@ class ElementType(Enum):
     Act = 'act'
     Page = 'page'
     Surface = 'surface'
-    Paragraph = 'paragraph'
-    Line = 'line'
-    Word = 'word'
-    Character = 'character'
 
 
 class ElementPath(models.Model):
@@ -74,11 +69,6 @@ class Element(IndexableModel):
 
     objects = ElementManager()
 
-    def build_absolute_url(self, request, name, id_argument='pk', **kwargs):
-        """Build an absolute URL for a specified view using the element ID."""
-        kwargs[id_argument] = str(self.id)
-        return request.build_absolute_uri(reverse(name, kwargs=kwargs))
-
     def get_thumbnail(self):
         """Get an Image instance corresponding to a thumbnail for this element."""
         if self.type == ElementType.Volume:
@@ -373,22 +363,46 @@ class Act(Element):
                     'type': t.type.value,
                     'score': t.score,
                     'text': t.text,
-                    'corpus': t.corpus_id,
+                    'corpus': self.corpus_id,
                 }
                 for sublist in transcriptions for t in sublist
             ]
         }
 
 
-class Transcription(Element):
+class TranscriptionType(Enum):
+    Paragraph = 'paragraph'
+    Line = 'line'
+    Word = 'word'
+    Character = 'character'
+
+
+class Transcription(models.Model):
     """
     A transcription on:
      * a zone on an image
     """
     INDEX_TYPE = 'transcription'
 
-    # Data
-    line = models.PositiveIntegerField(null=True, blank=True)
+    id = models.UUIDField(default=uuid.uuid4, primary_key=True)
+    element = models.ForeignKey(
+        Element,
+        on_delete=models.CASCADE,
+        related_name='transcriptions',
+    )
+    type = EnumField(
+        TranscriptionType,
+        default=TranscriptionType.Word,
+        max_length=50,
+        db_index=True,
+    )
+    zone = models.ForeignKey(
+        'images.Zone',
+        on_delete=models.SET_NULL,
+        related_name='transcriptions',
+        null=True,
+        blank=True,
+    )
     text = models.TextField(null=True, blank=True)
     score = models.FloatField(null=True, blank=True)
 
@@ -400,12 +414,11 @@ class Transcription(Element):
         Structure indexed into Elastic Search
         """
         return {
-            'id': self.id,  # TODO: Could be removed? (can use _id instead)
+            'element': self.element_id,
             'type': self.type.value,
             'score': self.score,
-            'line': self.line,
             'text': self.text,
-            'corpus': self.corpus_id,
+            'corpus': self.element.corpus_id,
         }
 
 
diff --git a/arkindex/documents/search.py b/arkindex/documents/search.py
index 5cdbcc2b97e6669bbe0ee7f23e1514d6229438ac..bef33f326fb9417a15719fb292dd66ee4e965d14 100644
--- a/arkindex/documents/search.py
+++ b/arkindex/documents/search.py
@@ -15,10 +15,10 @@ def search_transcriptions_post(data):
                       .order_by('-score') \
                       .prefetch_related('zone__image__server')
     # Recompute in case some transcriptions are not found in Postgres
-    transcription_ids = [t.id for t in ts]
+    transcription_ids = [t.element_id for t in ts]
     all_parent_paths = Element.objects.get_ascendings_paths(*transcription_ids)
     for trans in ts:
-        trans.parent_paths = all_parent_paths.get(trans.id, [])
+        trans.parent_paths = all_parent_paths.get(trans.element_id, [])
     return ts
 
 
@@ -60,7 +60,7 @@ def search_acts_post(data):
     all_parents = Element.objects.get_ascendings_paths(*act_ids)
 
     for act in acts:
-        act.transcriptions = [transcriptions[tid] for tid in acts_tr_ids[act.id]]
+        act.transcriptions_results = [transcriptions[tid] for tid in acts_tr_ids[act.id]]
         act.surfaces = [surf.zone for surf in all_surfaces.get(act.id, [])]
         act.parents = all_parents.get(act.id, [])
 
diff --git a/arkindex/documents/serializers.py b/arkindex/documents/serializers.py
index 567359b392bf0b7c2d43b56d76c04f9adb6819db..e90d42207ba84b3e1f909a9f8a594a217803f11c 100644
--- a/arkindex/documents/serializers.py
+++ b/arkindex/documents/serializers.py
@@ -1,16 +1,23 @@
 from abc import ABC, abstractmethod
 from django.conf import settings
 from rest_framework import serializers
-from arkindex.documents.models import \
-    Element, ElementType, Transcription, Page, PageType, PageDirection, Act, Corpus, MetaData, MetaType
+from arkindex.documents.models import Element, ElementType, Transcription, Page, \
+    PageType, PageDirection, Act, Corpus, MetaData, MetaType, TranscriptionType
 from arkindex.images.models import Image, Zone
 from arkindex.images.serializers import ZoneSerializer, ImageSerializer
 from arkindex.dataimport.serializers import RevisionSerializer
 from arkindex.project.serializer_fields import EnumField, ViewerURLField
 from arkindex.project.tools import sslify_url
+from django.urls import reverse
 import urllib.parse
 
 
+def build_absolute_url(element, request, name, id_argument='pk', **kwargs):
+    """Build an absolute URL for a specified view using the element ID."""
+    kwargs[id_argument] = str(element.id)
+    return request.build_absolute_uri(reverse(name, kwargs=kwargs))
+
+
 class MetaDataSerializer(serializers.ModelSerializer):
     """
     Serialises some Metadata for any Element
@@ -43,7 +50,6 @@ class TranscriptionSerializer(serializers.ModelSerializer):
             'id',
             'type',
             'text',
-            'line',
             'score',
         )
 
@@ -174,7 +180,7 @@ class TranscriptionCreateSerializer(serializers.Serializer):
     )
     text = serializers.CharField()
     score = serializers.FloatField(min_value=0, max_value=1)
-    type = EnumField(ElementType)
+    type = EnumField(TranscriptionType)
 
 
 class TranscriptionBulkSerializer(serializers.Serializer):
@@ -193,7 +199,7 @@ class TranscriptionBulkSerializer(serializers.Serializer):
     )
     text = serializers.CharField()
     score = serializers.FloatField(min_value=0, max_value=1)
-    type = EnumField(ElementType)
+    type = EnumField(TranscriptionType)
 
 
 class TranscriptionsSerializer(serializers.Serializer):
@@ -225,7 +231,6 @@ class TranscriptionSearchResultSerializer(serializers.ModelSerializer):
             'id',
             'type',
             'text',
-            'line',
             'score',
             'zone',
             'parents',
@@ -236,7 +241,7 @@ class ActSearchResultSerializer(serializers.ModelSerializer):
     """
     Serialize an act
     """
-    transcriptions = TranscriptionSerializer(many=True)
+    transcriptions = TranscriptionSerializer(many=True, source='transcriptions_results')
     surfaces = ZoneSerializer(many=True)
     parents = serializers.ListField(
         child=serializers.ListField(
@@ -310,7 +315,7 @@ class ElementCanvasManifestSerializer(serializers.BaseSerializer):
         assert isinstance(zone, Zone)
         assert 'request' in self.context, "A request is required to generate absolute URLs"
         return {
-            "@id": element.build_absolute_url(self.context['request'], 'api:canvas-manifest'),
+            "@id": build_absolute_url(element, self.context['request'], 'api:canvas-manifest'),
             "@type": "sc:Canvas",
             "label": element.name,
             "height": zone.polygon.height,
@@ -319,7 +324,7 @@ class ElementCanvasManifestSerializer(serializers.BaseSerializer):
                 {
                     "@type": "oa:Annotation",
                     "resource": ImageResourceManifestSerializer(zone.image, context=self.context).data,
-                    "on": element.build_absolute_url(self.context['request'], 'api:canvas-manifest'),
+                    "on": build_absolute_url(element, self.context['request'], 'api:canvas-manifest'),
                     "motivation": "sc:painting"
                 }
             ],
@@ -344,7 +349,7 @@ class PageCanvasManifestSerializer(ElementCanvasManifestSerializer):
             else ("api:page-act-manifest", "Actes")
         return [
             {
-                "@id": page.build_absolute_url(self.context['request'], annotation_list_endpoint),
+                "@id": build_absolute_url(page, self.context['request'], annotation_list_endpoint),
                 "@type": "sc:AnnotationList",
                 "label": annotation_list_name
             }
@@ -362,7 +367,7 @@ class ActPageCanvasManifestSerializer(PageCanvasManifestSerializer):
         suffix = '?' + urllib.parse.urlencode({'q': query}) if query else ''
         return [
             {
-                "@id": surface.build_absolute_url(self.context['request'], 'api:surface-manifest') + suffix,
+                "@id": build_absolute_url(surface, self.context['request'], 'api:surface-manifest') + suffix,
                 "@type": "sc:AnnotationList",
                 "label": surface.name
             }
@@ -393,7 +398,7 @@ class ManifestSerializer(serializers.BaseSerializer):
         ).data
         return {
             "@context": settings.IIIF_PRESENTATION_CONTEXT,
-            "@id": element.build_absolute_url(self.context['request'], self.id_url_name),
+            "@id": build_absolute_url(element, self.context['request'], self.id_url_name),
             "@type": "sc:Manifest",
             "thumbnail": ImageThumbnailManifestSerializer(element.get_thumbnail()).data,
             "related": [],
@@ -403,7 +408,7 @@ class ManifestSerializer(serializers.BaseSerializer):
                 {
                     "canvases": canvases,
                     "label": "",
-                    "@id": element.build_absolute_url(self.context['request'], 'api:sequence-manifest'),
+                    "@id": build_absolute_url(element, self.context['request'], 'api:sequence-manifest'),
                     "@type": "sc:Sequence"
                 }
             ],
@@ -419,7 +424,7 @@ class ManifestSerializer(serializers.BaseSerializer):
         return [{
             "viewingHint": "top",
             "label": element.name,
-            "@id": element.build_absolute_url(self.context['request'], self.id_url_name),
+            "@id": build_absolute_url(element, self.context['request'], self.id_url_name),
             "ranges": [c['@id'] for c in canvases],
             "@type": "sc:Range"
         }] + [
@@ -451,7 +456,7 @@ class VolumeManifestSerializer(ManifestSerializer):
             serialized['service'] = []
         serialized['service'].append({
             "@context": settings.IIIF_SEARCH_CONTEXT,
-            "@id": volume.build_absolute_url(self.context['request'], 'api:ts-search-manifest'),
+            "@id": build_absolute_url(volume, self.context['request'], 'api:ts-search-manifest'),
             "profile": settings.IIIF_SEARCH_SERVICE_PROFILE,
             "label": "Search transcriptions"
         })
@@ -502,12 +507,13 @@ class AnnotationSerializer(ABC, serializers.BaseSerializer):
 
     def get_target(self, element):
         """Get the target canvas (`on` property) for a given element."""
+        assert hasattr(element, 'zone')
         return "{0}#xywh={1.x},{1.y},{1.width},{1.height}".format(
             element.zone.image.get_thumbnail_url(max_width=None, max_height=None),
             element.zone.polygon)
 
     def to_representation(self, element):
-        assert isinstance(element, Element)
+        assert isinstance(element, (Element, Transcription))
         assert 'request' in self.context, "A request is required to generate absolute URLs"
         return {
             "@id": self.get_url(element),
@@ -518,26 +524,19 @@ class AnnotationSerializer(ABC, serializers.BaseSerializer):
         }
 
 
-class SearchResultAnnotationMixin(object):
-
-    def get_target(self, element):
-        return "{0}#xywh={1.x},{1.y},{1.width},{1.height}".format(
-            Page.objects.filter(
-                zone__polygon__contains=element.zone.polygon,
-                zone__image_id=element.zone.image_id
-            ).first().build_absolute_url(self.context['request'], 'api:canvas-manifest'),
-            element.zone.polygon)
-
-
 class TranscriptionAnnotationSerializer(AnnotationSerializer):
     """
     Serialize a transcription into a IIIF annotation
     """
 
     def get_url(self, ts):
-        return ts.build_absolute_url(
-            self.context['request'], 'api:transcription-manifest',
-            id_argument='page_pk', transcription_pk=ts.id)
+        return build_absolute_url(
+            ts,
+            self.context['request'],
+            'api:transcription-manifest',
+            id_argument='page_pk',
+            transcription_pk=ts.id,
+        )
 
     def get_resource(self, ts):
         return {
@@ -548,10 +547,12 @@ class TranscriptionAnnotationSerializer(AnnotationSerializer):
         }
 
 
-class TranscriptionSearchAnnotationSerializer(
-        SearchResultAnnotationMixin,
-        TranscriptionAnnotationSerializer):
-    pass
+class TranscriptionSearchAnnotationSerializer(TranscriptionAnnotationSerializer):
+
+    def get_target(self, element):
+        assert isinstance(element, Transcription)
+        url = build_absolute_url(element.element, self.context['request'], 'api:canvas-manifest')
+        return "{0}#xywh={1.x},{1.y},{1.width},{1.height}".format(url, element.zone.polygon)
 
 
 class SurfaceAnnotationSerializer(AnnotationSerializer):
@@ -560,9 +561,13 @@ class SurfaceAnnotationSerializer(AnnotationSerializer):
     """
 
     def get_url(self, surface):
-        return surface.build_absolute_url(
-            self.context['request'], 'api:surface-manifest',
-            id_argument='page_pk', surface_pk=surface.id)
+        return build_absolute_url(
+            surface,
+            self.context['request'],
+            'api:surface-manifest',
+            id_argument='page_pk',
+            surface_pk=surface.id,
+        )
 
     def get_resource(self, surface):
         act = Act.objects.get_ascending(surface.id)[0]
@@ -610,7 +615,7 @@ class PageAnnotationListSerializer(AnnotationListSerializer):
 
     def get_elements(self, page):
         assert isinstance(page, Page)
-        return Transcription.objects.get_descending(page.id)
+        return page.transcriptions.all()
 
 
 class PageActAnnotationListSerializer(AnnotationListSerializer):
diff --git a/arkindex/documents/tasks.py b/arkindex/documents/tasks.py
index 4eb694479b28d8c5073a6991c347e5751f9652c8..9dd5929b3f4f5ebf43314a0047fce011730cba11 100644
--- a/arkindex/documents/tasks.py
+++ b/arkindex/documents/tasks.py
@@ -20,10 +20,10 @@ def reindex_acts(bulk_size=100, volume_id=None):
     Reindex all acts
     '''
     indexer = Indexer()
-    if not volume_id:
-        acts = Act.objects.all()
-    else:
+    if volume_id:
         acts = Act.objects.get_descending(volume_id)
+    else:
+        acts = Act.objects.all()
     indexer.run_index(settings.ES_INDEX_ACTS, Act.INDEX_TYPE, acts, bulk_size=bulk_size)
 
 
@@ -33,10 +33,13 @@ def reindex_transcriptions(bulk_size=400, volume_id=None):
     Reindex all transcriptions
     '''
     indexer = Indexer()
-    if not volume_id:
-        transcriptions = Transcription.objects.all()
+    if volume_id:
+        # Lookup all the transcriptions linked to a volume
+        transcriptions = Transcription.objects.filter(
+            element__in=Element.objects.get_descending(volume_id)
+        ).distinct()
     else:
-        transcriptions = Transcription.objects.get_descending(volume_id)
+        transcriptions = Transcription.objects.all()
     indexer.run_index(settings.ES_INDEX_TRANSCRIPTIONS, Transcription.INDEX_TYPE, transcriptions, bulk_size=bulk_size)
 
 
diff --git a/arkindex/documents/tests/test_search_post.py b/arkindex/documents/tests/test_search_post.py
index 56f16d44b66047ffe2d40fa6af943a4ea4c0725e..527c3cd0e0d80143d54c4ac3cef35be99bb33474 100644
--- a/arkindex/documents/tests/test_search_post.py
+++ b/arkindex/documents/tests/test_search_post.py
@@ -32,12 +32,7 @@ class TestSearchPostProcess(FixtureTestCase):
             ],
             "_index": "transcriptions",
             "_type": Transcription.INDEX_TYPE,
-            "_source": {
-                "id": str(ts.id),
-                "line": ts.line,
-                "score": ts.score,
-                "text": ts.text
-            }
+            "_source": ts.build_search_index()
         }
 
     def make_nested_transcription_hit(self, ts):
@@ -89,7 +84,7 @@ class TestSearchPostProcess(FixtureTestCase):
         self.assertCountEqual(results, [act])
         self.assertTrue(hasattr(results[0], 'transcriptions'))
         self.assertTrue(hasattr(results[0], 'surfaces'))
-        self.assertCountEqual(results[0].transcriptions, ts)
+        self.assertCountEqual(results[0].transcriptions_results, ts)
         self.assertCountEqual(results[0].surfaces, [surf])
 
     def test_search_transcriptions_filter_post(self):
diff --git a/arkindex/documents/tests/test_transcription_create.py b/arkindex/documents/tests/test_transcription_create.py
index b9b2c59d41b0abc7d4f73a3dfda7579dfb20eddf..51dd2f12243b764386562252234ee67615323e97 100644
--- a/arkindex/documents/tests/test_transcription_create.py
+++ b/arkindex/documents/tests/test_transcription_create.py
@@ -3,7 +3,7 @@ from unittest.mock import patch
 from rest_framework import status
 from arkindex.project.tests import FixtureAPITestCase
 from arkindex.project.polygon import Polygon
-from arkindex.documents.models import Page, Transcription, ElementPath, ElementType
+from arkindex.documents.models import Page, Transcription, TranscriptionType
 import uuid
 
 
@@ -33,27 +33,12 @@ class TestTranscriptionCreate(FixtureAPITestCase):
             "score": 0.83,
         })
         self.assertEqual(response.status_code, status.HTTP_201_CREATED)
-        new_ts = Transcription.objects.get(text="NEKUDOTAYIM", type=ElementType.Word)
+        new_ts = Transcription.objects.get(text="NEKUDOTAYIM", type=TranscriptionType.Word)
         self.assertEqual(new_ts.zone.polygon, Polygon.from_coords(0, 0, 100, 100))
         self.assertEqual(new_ts.score, 0.83)
-        self.assertEqual(ElementPath.objects.filter(element_id=new_ts.id).count(), 1)
-        self.assertIn(self.page.id, ElementPath.objects.get(element=new_ts).path)
+        self.assertTrue(self.page.transcriptions.filter(pk=new_ts.id).exists())
         self.assertTrue(indexer.return_value.run_index.called)
 
-    def test_check_element_type(self):
-        """
-        Checks the view does not let other element types to be created
-        """
-        self.client.force_login(self.user)
-        response = self.client.post(reverse('api:transcription-create'), format='json', data={
-            "type": "register",
-            "element": str(self.page.id),
-            "polygon": [(0, 0), (0, 100), (100, 100), (100, 0), (0, 0)],
-            "text": "NEKUDOTAYIM",
-            "score": 0.83,
-        })
-        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
-
     def test_unique_zone(self):
         """
         Checks the view reuses zones when available
@@ -152,11 +137,10 @@ class TestTranscriptionCreate(FixtureAPITestCase):
             ]
         })
         self.assertEqual(response.status_code, status.HTTP_201_CREATED)
-        new_ts = Transcription.objects.get(text="NEKUDOTAYIM", type=ElementType.Word)
+        new_ts = Transcription.objects.get(text="NEKUDOTAYIM", type=TranscriptionType.Word)
         self.assertEqual(new_ts.zone.polygon, Polygon.from_coords(0, 0, 100, 100))
         self.assertEqual(new_ts.score, 0.83)
-        self.assertEqual(ElementPath.objects.filter(element_id=new_ts.id).count(), 1)
-        self.assertIn(self.page.id, ElementPath.objects.get(element=new_ts).path)
+        self.assertTrue(self.page.transcriptions.filter(pk=new_ts.id).exists())
 
         # indexer called
         self.assertTrue(indexer.return_value.run_index.called)
diff --git a/arkindex/images/importer.py b/arkindex/images/importer.py
index e1beba8d0c8ec7a5c6450e7ecc10c7dc900ac611..7dc2610f19e4b28bd9d8d84343e49d7dd2809ac9 100644
--- a/arkindex/images/importer.py
+++ b/arkindex/images/importer.py
@@ -1,5 +1,5 @@
 from arkindex.images.models import Zone, Image
-from arkindex.documents.models import Transcription, ElementType, Element, Page, ElementPath
+from arkindex.documents.models import Transcription, TranscriptionType, Element, Page, ElementType
 from arkindex.project.polygon import Polygon
 from collections import namedtuple
 from abc import ABC, abstractmethod
@@ -68,14 +68,13 @@ def bulk_transcriptions(image, parent, items):
 
     # Link a transcription data with a Polygon
     # This is hashable (box is hashable)
-    TrPolygon = namedtuple('TrPolygon', 'type, polygon, line, text, score')
+    TrPolygon = namedtuple('TrPolygon', 'type, polygon, text, score')
 
     # Build all TrPolygon from items
     required = {
         TrPolygon(
-            i.get('type', ElementType.Word),
+            i.get('type', TranscriptionType.Word),
             Polygon.from_dict(i),
-            int(i.get('line', 0)),
             i['text'],
             float(i['score']),
         )
@@ -93,11 +92,10 @@ def bulk_transcriptions(image, parent, items):
         TrPolygon(
             tr.type,
             tr.zone.polygon,
-            tr.line,
             tr.text,
             tr.score,
         )
-        for tr in Transcription.objects.filter(zone__image=image).prefetch_related('zone')
+        for tr in parent.transcriptions.all().prefetch_related('zone')
     }
 
     # Calc needed TrPolygon to build
@@ -105,61 +103,32 @@ def bulk_transcriptions(image, parent, items):
     if not needed:
         return []
 
-    with transaction.atomic():
-
-        # Raw elements
-        elements = Element.objects.bulk_create(
-            Element(
-                corpus=parent.corpus,
-                type=n.type,
-                name=n.text,
-                zone_id=uuid.uuid4()
-            )
-            for n in needed
+    def new_transcription(tr_polygon):
+        zone = Zone(
+            id=uuid.uuid4(),
+            image=image,
+            polygon=tr_polygon.polygon.serialize(),
+        )
+        tr = Transcription(
+            element_id=parent.id,
+            zone_id=zone.id,
+            type=tr_polygon.type,
+            text=tr_polygon.text,
+            score=tr_polygon.score,
         )
+        return (tr, zone)
+
+    with transaction.atomic():
 
         # Build transcriptions & zones instances at the same time
-        transcriptions, zones = zip(*[
-            (
-                Transcription(
-                    element_ptr_id=elt.id,
-                    line=n.line,
-                    text=n.text,
-                    score=n.score,
-                ),
-                Zone(
-                    id=elt.zone_id,
-                    image=image,
-                    polygon=n.polygon.serialize(),
-                )
-            )
-            for elt, n in zip(elements, needed)
-        ])
+        transcriptions, zones = zip(*map(new_transcription, needed))
 
         # Create zones in bulk
         Zone.objects.bulk_create(zones)
 
-        # Create transcriptions using a low-level bulk_create
-        # as multi table is not supported yet by Django
-        Transcription.objects.none()._batched_insert(
-            transcriptions,
-
-            # Here is the magic: we need only to insert the fields from documents_transcription
-            fields=set(Transcription._meta.concrete_fields).difference(Element._meta.concrete_fields),
-
-            # Default
-            batch_size=None,
-        )
-
-    # Support ElementPath
-    paths = ElementPath.objects.filter(element=parent).values_list('path', flat=True)
-    if not paths:
-        paths = [[]]  # Wonderful hack to handle no parents case
-    ElementPath.objects.bulk_create(
-        ElementPath(element=elt, path=[parent.id, ] + path)
-        for elt in elements
-        for path in paths
-    )
+        # Create transcriptions in bulk
+        # with assigned ids
+        Transcription.objects.bulk_create(transcriptions)
 
     return transcriptions
 
diff --git a/arkindex/images/tests.py b/arkindex/images/tests.py
index 377508318d03d75010e20b2b42989dc88c40b44f..ec84420e8ff99aa3fe145fa7e7114c08df27a47c 100644
--- a/arkindex/images/tests.py
+++ b/arkindex/images/tests.py
@@ -1,6 +1,6 @@
 from arkindex.project.tests import FixtureTestCase
 from arkindex.project.polygon import Polygon
-from arkindex.documents.models import Transcription, Element, ElementType
+from arkindex.documents.models import Transcription, TranscriptionType
 from arkindex.images.models import Image
 from arkindex.images.importer import bulk_transcriptions
 
@@ -21,7 +21,6 @@ class TestBulkTranscriptions(FixtureTestCase):
                 'y': 0,
                 'width': 100,
                 'height': 100,
-                'line': '1',
                 'text': 'test 1',
                 'score': 0.1,
             },
@@ -30,23 +29,20 @@ class TestBulkTranscriptions(FixtureTestCase):
                 'y': 20,
                 'width': 100,
                 'height': 100,
-                'line': '2',
                 'text': 'test 2',
                 'score': 0.2,
             },
         ]
         bulk_transcriptions(self.img, self.page, items)
-        out = Transcription.objects.filter(zone__image=self.img).order_by('line')
+        out = Transcription.objects.filter(zone__image=self.img).order_by('score')
 
         self.assertEqual(len(out), 2)
         self.assertIsInstance(out[0], Transcription)
         self.assertIsInstance(out[1], Transcription)
 
-        self.assertEqual(out[0].line, 1)
         self.assertEqual(out[0].text, 'test 1')
         self.assertEqual(out[0].score, 0.1)
 
-        self.assertEqual(out[1].line, 2)
         self.assertEqual(out[1].text, 'test 2')
         self.assertEqual(out[1].score, 0.2)
 
@@ -57,7 +53,7 @@ class TestBulkTranscriptions(FixtureTestCase):
         self.assertEqual(out[1].zone.polygon, Polygon.from_coords(20, 20, 100, 100))
 
         # Check path
-        children = Element.objects.get_descending(self.page.id)
+        children = self.page.transcriptions.all()
         self.assertEqual(children.count(), 2)
         ids = children.values_list('id', flat=True)
         self.assertIn(out[0].id, ids)
@@ -71,7 +67,6 @@ class TestBulkTranscriptions(FixtureTestCase):
                 'y': 0,
                 'width': 100,
                 'height': 100,
-                'line': '1',
                 'text': 'test 1',
                 'score': 0.1,
             },
@@ -80,7 +75,6 @@ class TestBulkTranscriptions(FixtureTestCase):
                 'y': 20,
                 'width': 100,
                 'height': 100,
-                'line': '2',
                 'text': 'test 2',
                 'score': 0.2,
             },
@@ -94,35 +88,31 @@ class TestBulkTranscriptions(FixtureTestCase):
         items = [
             {
                 'polygon': [[0, 0], [0, 200], [200, 200], [200, 0], [250, 50], [0, 0]],
-                'line': '1',
                 'text': 'test 1',
                 'score': 0.1,
-                'type': ElementType.Word,
+                'type': TranscriptionType.Word,
             },
             {
                 'polygon': [[0, 0], [100, 0], [100, 100], [0, 100], [0, 0]],
-                'line': '2',
                 'text': 'test 2',
                 'score': 0.2,
-                'type': ElementType.Line,
+                'type': TranscriptionType.Line,
             },
         ]
         out = bulk_transcriptions(self.img, self.page, items)
         self.assertEqual(len(out), 2)
 
-        trs = Transcription.objects.filter(zone__image=self.img).order_by('line')
+        trs = Transcription.objects.filter(zone__image=self.img).order_by('score')
 
         self.assertEqual(trs.count(), 2)
         self.assertIsInstance(trs[0], Transcription)
         self.assertIsInstance(trs[1], Transcription)
 
-        self.assertEqual(trs[0].type, ElementType.Word)
-        self.assertEqual(trs[0].line, 1)
+        self.assertEqual(trs[0].type, TranscriptionType.Word)
         self.assertEqual(trs[0].text, 'test 1')
         self.assertEqual(trs[0].score, 0.1)
 
-        self.assertEqual(trs[1].type, ElementType.Line)
-        self.assertEqual(trs[1].line, 2)
+        self.assertEqual(trs[1].type, TranscriptionType.Line)
         self.assertEqual(trs[1].text, 'test 2')
         self.assertEqual(trs[1].score, 0.2)