diff --git a/arkindex/documents/fixtures/data.json b/arkindex/documents/fixtures/data.json
index 5adf99eabd7fd975c354ef3bb0a76abe6047038c..313c927cb7beed72a1e5722aed811dd5dc11107c 100644
--- a/arkindex/documents/fixtures/data.json
+++ b/arkindex/documents/fixtures/data.json
@@ -1,7 +1,7 @@
 [
 {
     "model": "process.process",
-    "pk": "374c483b-62b1-4565-8834-0ab2c4960c25",
+    "pk": "7cf97824-75fb-4c4b-bf2e-5c8ac5e56d48",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
@@ -29,18 +29,18 @@
 },
 {
     "model": "process.process",
-    "pk": "38e459b9-2ffa-4bc6-b389-03a9a76d9deb",
+    "pk": "9e0d85d1-7f7a-4851-ae6d-e9bb544ece1d",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
         "name": "Process fixture",
         "creator": 2,
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
         "mode": "workers",
         "activity_state": "disabled",
         "started": null,
         "finished": null,
-        "farm": "f2a2e1cb-2090-4b69-b204-1a40440e2619",
+        "farm": "787cc46d-2877-4cd7-8bac-f79d092d8550",
         "element": null,
         "folder_type": null,
         "element_type": null,
@@ -57,7 +57,7 @@
 },
 {
     "model": "process.process",
-    "pk": "da1ca18e-736e-4123-8d66-27385205494d",
+    "pk": "c747f822-76d6-495b-ba93-351b2090e02b",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
@@ -85,11 +85,11 @@
 },
 {
     "model": "process.worker",
-    "pk": "2666efcd-09df-49e5-9504-92953561ba23",
+    "pk": "10a634d9-0e78-4df8-a7e7-0b44d8bb2024",
     "fields": {
-        "name": "Generic worker with a Model",
-        "slug": "generic",
-        "type": "32060b55-22ca-447b-bc7a-1aafd38d6521",
+        "name": "Worker requiring a GPU",
+        "slug": "worker-gpu",
+        "type": "1bad9ad8-4546-4289-9721-56012135a9ad",
         "description": "",
         "public": false,
         "archived": null,
@@ -98,11 +98,11 @@
 },
 {
     "model": "process.worker",
-    "pk": "aa0da253-2300-4b80-9403-1247b1c473ba",
+    "pk": "3fc69147-7a90-4702-9c0a-174f26d6e722",
     "fields": {
-        "name": "File import",
-        "slug": "file_import",
-        "type": "5ad90007-3888-4973-8ce8-98515a66f640",
+        "name": "Document layout analyser",
+        "slug": "dla",
+        "type": "391a0197-62bb-4a3a-8867-1cea98eb0360",
         "description": "",
         "public": false,
         "archived": null,
@@ -111,11 +111,11 @@
 },
 {
     "model": "process.worker",
-    "pk": "b391fd40-ca4b-4963-b49b-96ac34ad2e1d",
+    "pk": "59355b24-6dff-4b8a-a2ac-2568c7520650",
     "fields": {
-        "name": "Custom worker",
-        "slug": "custom",
-        "type": "39b4a530-423d-4f0d-9729-a010279bb2d0",
+        "name": "Recognizer",
+        "slug": "reco",
+        "type": "2a2fbb7f-0fe1-47c8-8f45-62b5cb823a37",
         "description": "",
         "public": false,
         "archived": null,
@@ -124,11 +124,11 @@
 },
 {
     "model": "process.worker",
-    "pk": "c3a739d0-024e-4405-bc07-f8736d701623",
+    "pk": "5b7252aa-801d-4532-b0ac-3acf0dab1ae7",
     "fields": {
-        "name": "Document layout analyser",
-        "slug": "dla",
-        "type": "8e44b24b-205c-4eda-b41f-37ca0f802e27",
+        "name": "Elements Initialisation Worker",
+        "slug": "initialisation",
+        "type": "11a16320-7eaa-4a7d-a255-639204e92519",
         "description": "",
         "public": false,
         "archived": null,
@@ -137,11 +137,11 @@
 },
 {
     "model": "process.worker",
-    "pk": "cbaebcd5-3c7b-4e9a-9b93-1a2ff6521273",
+    "pk": "6504aeb6-1709-4b9d-9a60-bb3ee6e97983",
     "fields": {
-        "name": "Recognizer",
-        "slug": "reco",
-        "type": "32060b55-22ca-447b-bc7a-1aafd38d6521",
+        "name": "Generic worker with a Model",
+        "slug": "generic",
+        "type": "2a2fbb7f-0fe1-47c8-8f45-62b5cb823a37",
         "description": "",
         "public": false,
         "archived": null,
@@ -150,11 +150,11 @@
 },
 {
     "model": "process.worker",
-    "pk": "d99d8050-297c-41db-85b1-8760ae6875b7",
+    "pk": "7934da96-65c2-4c87-8efb-4daa92ec30dc",
     "fields": {
-        "name": "Elements Initialisation Worker",
-        "slug": "initialisation",
-        "type": "b3376082-2033-4dde-a834-8829445baaf6",
+        "name": "File import",
+        "slug": "file_import",
+        "type": "f1b446d7-635d-497c-a1d9-932e88314569",
         "description": "",
         "public": false,
         "archived": null,
@@ -163,11 +163,11 @@
 },
 {
     "model": "process.worker",
-    "pk": "fb83b17c-c9cf-43e5-9ef8-e1362381dd09",
+    "pk": "ab087d67-78ee-40bb-9f3c-5a8788fedfe0",
     "fields": {
-        "name": "Worker requiring a GPU",
-        "slug": "worker-gpu",
-        "type": "44c4defd-0619-4982-8e52-5663cfec9e1f",
+        "name": "Custom worker",
+        "slug": "custom",
+        "type": "4bac9693-412e-4b7f-b7e8-b0217cb16bb2",
         "description": "",
         "public": false,
         "archived": null,
@@ -176,76 +176,76 @@
 },
 {
     "model": "process.workertype",
-    "pk": "32060b55-22ca-447b-bc7a-1aafd38d6521",
+    "pk": "11a16320-7eaa-4a7d-a255-639204e92519",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "slug": "recognizer",
-        "display_name": "Recognizer"
+        "slug": "init",
+        "display_name": "Elements Initialisation"
     }
 },
 {
     "model": "process.workertype",
-    "pk": "39b4a530-423d-4f0d-9729-a010279bb2d0",
+    "pk": "1bad9ad8-4546-4289-9721-56012135a9ad",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "slug": "custom",
-        "display_name": "Custom"
+        "slug": "worker",
+        "display_name": "Worker requiring a GPU"
     }
 },
 {
     "model": "process.workertype",
-    "pk": "44c4defd-0619-4982-8e52-5663cfec9e1f",
+    "pk": "2a2fbb7f-0fe1-47c8-8f45-62b5cb823a37",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "slug": "worker",
-        "display_name": "Worker requiring a GPU"
+        "slug": "recognizer",
+        "display_name": "Recognizer"
     }
 },
 {
     "model": "process.workertype",
-    "pk": "5ad90007-3888-4973-8ce8-98515a66f640",
+    "pk": "391a0197-62bb-4a3a-8867-1cea98eb0360",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "slug": "import",
-        "display_name": "Import"
+        "slug": "dla",
+        "display_name": "Document Layout Analysis"
     }
 },
 {
     "model": "process.workertype",
-    "pk": "8e44b24b-205c-4eda-b41f-37ca0f802e27",
+    "pk": "4bac9693-412e-4b7f-b7e8-b0217cb16bb2",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "slug": "dla",
-        "display_name": "Document Layout Analysis"
+        "slug": "custom",
+        "display_name": "Custom"
     }
 },
 {
     "model": "process.workertype",
-    "pk": "b3376082-2033-4dde-a834-8829445baaf6",
+    "pk": "f1b446d7-635d-497c-a1d9-932e88314569",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "slug": "init",
-        "display_name": "Elements Initialisation"
+        "slug": "import",
+        "display_name": "Import"
     }
 },
 {
     "model": "process.workerversion",
-    "pk": "221791c3-7fa9-4669-9399-0ca05220b7c0",
+    "pk": "23219e88-6203-4a66-8eeb-a47ea3178b5a",
     "fields": {
-        "worker": "2666efcd-09df-49e5-9504-92953561ba23",
+        "worker": "3fc69147-7a90-4702-9c0a-174f26d6e722",
         "version": 1,
         "configuration": {
             "test": 42
         },
         "state": "available",
         "gpu_usage": "disabled",
-        "model_usage": "required",
+        "model_usage": "disabled",
         "docker_image_iid": "registry.somewhere.com/something:latest",
         "revision_url": null,
         "tag": null,
@@ -255,17 +255,19 @@
 },
 {
     "model": "process.workerversion",
-    "pk": "282dd426-0828-46cd-b15c-7da00c3b6279",
+    "pk": "3eca986d-082a-49cb-ac2e-5b3b6a2ec6d5",
     "fields": {
-        "worker": "c3a739d0-024e-4405-bc07-f8736d701623",
+        "worker": "5b7252aa-801d-4532-b0ac-3acf0dab1ae7",
         "version": 1,
         "configuration": {
-            "test": 42
+            "docker": {
+                "command": "worker-init-elements"
+            }
         },
         "state": "available",
         "gpu_usage": "disabled",
         "model_usage": "disabled",
-        "docker_image_iid": "registry.somewhere.com/something:latest",
+        "docker_image_iid": "registry.gitlab.teklia.com/arkindex/workers/init-elements:latest",
         "revision_url": null,
         "tag": null,
         "created": "2020-02-02T01:23:45.678Z",
@@ -274,9 +276,9 @@
 },
 {
     "model": "process.workerversion",
-    "pk": "5e755c30-57f6-4e19-8e3a-6b5a7f09f2ee",
+    "pk": "6e30bb3b-37fd-42a9-8591-52398332e52f",
     "fields": {
-        "worker": "b391fd40-ca4b-4963-b49b-96ac34ad2e1d",
+        "worker": "ab087d67-78ee-40bb-9f3c-5a8788fedfe0",
         "version": 1,
         "configuration": {
             "custom": "value"
@@ -293,15 +295,13 @@
 },
 {
     "model": "process.workerversion",
-    "pk": "821770c1-6438-49a8-a200-8662fa2a607d",
+    "pk": "7110e9b2-24b7-4bc6-95a5-cd8bff541436",
     "fields": {
-        "worker": "fb83b17c-c9cf-43e5-9ef8-e1362381dd09",
+        "worker": "7934da96-65c2-4c87-8efb-4daa92ec30dc",
         "version": 1,
-        "configuration": {
-            "test": 42
-        },
+        "configuration": {},
         "state": "available",
-        "gpu_usage": "required",
+        "gpu_usage": "disabled",
         "model_usage": "disabled",
         "docker_image_iid": "registry.somewhere.com/something:latest",
         "revision_url": null,
@@ -312,13 +312,15 @@
 },
 {
     "model": "process.workerversion",
-    "pk": "9a5ae4ee-ebff-40bd-8582-b2f1f244ac15",
+    "pk": "8ceacd46-b8a3-4a9d-8c5e-4adf633cccc0",
     "fields": {
-        "worker": "aa0da253-2300-4b80-9403-1247b1c473ba",
+        "worker": "10a634d9-0e78-4df8-a7e7-0b44d8bb2024",
         "version": 1,
-        "configuration": {},
+        "configuration": {
+            "test": 42
+        },
         "state": "available",
-        "gpu_usage": "disabled",
+        "gpu_usage": "required",
         "model_usage": "disabled",
         "docker_image_iid": "registry.somewhere.com/something:latest",
         "revision_url": null,
@@ -329,9 +331,9 @@
 },
 {
     "model": "process.workerversion",
-    "pk": "ccf2a96f-ed15-495c-886b-b5068b01b9f8",
+    "pk": "9f68bd33-2dfa-44aa-b461-6ab72161a859",
     "fields": {
-        "worker": "cbaebcd5-3c7b-4e9a-9b93-1a2ff6521273",
+        "worker": "59355b24-6dff-4b8a-a2ac-2568c7520650",
         "version": 1,
         "configuration": {
             "test": 42
@@ -348,19 +350,17 @@
 },
 {
     "model": "process.workerversion",
-    "pk": "f5857b3b-8330-4735-a619-4a0ddde14b0f",
+    "pk": "ee2c2d36-e30c-416f-9240-daa561987193",
     "fields": {
-        "worker": "d99d8050-297c-41db-85b1-8760ae6875b7",
+        "worker": "6504aeb6-1709-4b9d-9a60-bb3ee6e97983",
         "version": 1,
         "configuration": {
-            "docker": {
-                "command": "worker-init-elements"
-            }
+            "test": 42
         },
         "state": "available",
         "gpu_usage": "disabled",
-        "model_usage": "disabled",
-        "docker_image_iid": "registry.gitlab.teklia.com/arkindex/workers/init-elements:latest",
+        "model_usage": "required",
+        "docker_image_iid": "registry.somewhere.com/something:latest",
         "revision_url": null,
         "tag": null,
         "created": "2020-02-02T01:23:45.678Z",
@@ -369,14 +369,14 @@
 },
 {
     "model": "process.workerrun",
-    "pk": "00794041-a034-477e-8dc8-ad6d4eae7f11",
+    "pk": "4c2a35c1-c325-4e01-bfb2-dab70e6acbf4",
     "fields": {
-        "process": "38e459b9-2ffa-4bc6-b389-03a9a76d9deb",
-        "version": "f5857b3b-8330-4735-a619-4a0ddde14b0f",
+        "process": "c747f822-76d6-495b-ba93-351b2090e02b",
+        "version": "6e30bb3b-37fd-42a9-8591-52398332e52f",
         "model_version": null,
         "parents": "[]",
         "configuration": null,
-        "summary": "Worker Elements Initialisation Worker @ version 1",
+        "summary": "Worker Custom worker @ version 1",
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
         "has_results": false,
@@ -385,14 +385,14 @@
 },
 {
     "model": "process.workerrun",
-    "pk": "75d5400c-650f-4870-a23c-6dfbb5c51cab",
+    "pk": "b72a2677-f6f2-4eca-80e2-57709ec8cea3",
     "fields": {
-        "process": "38e459b9-2ffa-4bc6-b389-03a9a76d9deb",
-        "version": "282dd426-0828-46cd-b15c-7da00c3b6279",
+        "process": "9e0d85d1-7f7a-4851-ae6d-e9bb544ece1d",
+        "version": "3eca986d-082a-49cb-ac2e-5b3b6a2ec6d5",
         "model_version": null,
-        "parents": "[\"00794041-a034-477e-8dc8-ad6d4eae7f11\"]",
+        "parents": "[]",
         "configuration": null,
-        "summary": "Worker Document layout analyser @ version 1",
+        "summary": "Worker Elements Initialisation Worker @ version 1",
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
         "has_results": false,
@@ -401,14 +401,14 @@
 },
 {
     "model": "process.workerrun",
-    "pk": "a3adcf61-c7ce-48e1-8488-541ba1373740",
+    "pk": "5287808f-22cd-4f02-a007-cbb56aecbdb3",
     "fields": {
-        "process": "38e459b9-2ffa-4bc6-b389-03a9a76d9deb",
-        "version": "ccf2a96f-ed15-495c-886b-b5068b01b9f8",
+        "process": "9e0d85d1-7f7a-4851-ae6d-e9bb544ece1d",
+        "version": "23219e88-6203-4a66-8eeb-a47ea3178b5a",
         "model_version": null,
-        "parents": "[\"75d5400c-650f-4870-a23c-6dfbb5c51cab\"]",
+        "parents": "[\"b72a2677-f6f2-4eca-80e2-57709ec8cea3\"]",
         "configuration": null,
-        "summary": "Worker Recognizer @ version 1",
+        "summary": "Worker Document layout analyser @ version 1",
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
         "has_results": false,
@@ -417,14 +417,14 @@
 },
 {
     "model": "process.workerrun",
-    "pk": "b2a718fc-bf5c-4a56-8b07-d7f10328c07c",
+    "pk": "55d64c3a-0fc6-4d9f-9563-0661d0fb4a95",
     "fields": {
-        "process": "374c483b-62b1-4565-8834-0ab2c4960c25",
-        "version": "5e755c30-57f6-4e19-8e3a-6b5a7f09f2ee",
+        "process": "9e0d85d1-7f7a-4851-ae6d-e9bb544ece1d",
+        "version": "9f68bd33-2dfa-44aa-b461-6ab72161a859",
         "model_version": null,
-        "parents": "[]",
+        "parents": "[\"5287808f-22cd-4f02-a007-cbb56aecbdb3\"]",
         "configuration": null,
-        "summary": "Worker Custom worker @ version 1",
+        "summary": "Worker Recognizer @ version 1",
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
         "has_results": false,
@@ -433,10 +433,10 @@
 },
 {
     "model": "process.workerrun",
-    "pk": "cda74349-cb8d-49ed-bf43-9a06a9e17d79",
+    "pk": "e0247f8e-c31f-410c-9e62-e4e8d9b49f3c",
     "fields": {
-        "process": "da1ca18e-736e-4123-8d66-27385205494d",
-        "version": "5e755c30-57f6-4e19-8e3a-6b5a7f09f2ee",
+        "process": "7cf97824-75fb-4c4b-bf2e-5c8ac5e56d48",
+        "version": "6e30bb3b-37fd-42a9-8591-52398332e52f",
         "model_version": null,
         "parents": "[]",
         "configuration": null,
@@ -449,7 +449,7 @@
 },
 {
     "model": "documents.corpus",
-    "pk": "b1be7812-a2b1-4d26-a031-8d85869228df",
+    "pk": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
@@ -462,11 +462,11 @@
 },
 {
     "model": "documents.elementtype",
-    "pk": "0f9084ac-d62f-435e-8dd2-c66052dca93b",
+    "pk": "318f9b79-62ee-4521-82c0-670aa99ececf",
     "fields": {
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "slug": "page",
-        "display_name": "Page",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "slug": "act",
+        "display_name": "Act",
         "folder": false,
         "indexable": false,
         "color": "28b62c"
@@ -474,11 +474,11 @@
 },
 {
     "model": "documents.elementtype",
-    "pk": "4ae753e7-ddf9-4500-a72f-9efdd71ba37c",
+    "pk": "34a11cd0-1ab9-4043-a1be-89d12dc09398",
     "fields": {
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "slug": "surface",
-        "display_name": "Surface",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "slug": "page",
+        "display_name": "Page",
         "folder": false,
         "indexable": false,
         "color": "28b62c"
@@ -486,23 +486,23 @@
 },
 {
     "model": "documents.elementtype",
-    "pk": "71849ae9-9235-4c55-a627-d5a98af53ea4",
+    "pk": "a5b6234e-d9a2-4263-b315-f87a5179830b",
     "fields": {
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "slug": "volume",
-        "display_name": "Volume",
-        "folder": true,
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "slug": "word",
+        "display_name": "Word",
+        "folder": false,
         "indexable": false,
         "color": "28b62c"
     }
 },
 {
     "model": "documents.elementtype",
-    "pk": "8f16a5a3-4dfb-4851-a05a-36d95bb1cc0c",
+    "pk": "d6578a7a-92a5-492a-bd5e-bd91bc67180c",
     "fields": {
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "slug": "word",
-        "display_name": "Word",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "slug": "surface",
+        "display_name": "Surface",
         "folder": false,
         "indexable": false,
         "color": "28b62c"
@@ -510,21 +510,21 @@
 },
 {
     "model": "documents.elementtype",
-    "pk": "90463352-3033-4f98-9b4b-b01d463ede34",
+    "pk": "fc18d3b3-1d6d-48f3-8e59-59a7edc43b34",
     "fields": {
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "slug": "act",
-        "display_name": "Act",
-        "folder": false,
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "slug": "volume",
+        "display_name": "Volume",
+        "folder": true,
         "indexable": false,
         "color": "28b62c"
     }
 },
 {
     "model": "documents.elementtype",
-    "pk": "d11fd6b0-37c7-4566-abee-1283803bf546",
+    "pk": "fc6f5d0b-55bb-4ca8-880d-d2da865000e4",
     "fields": {
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
         "slug": "text_line",
         "display_name": "Line",
         "folder": false,
@@ -534,279 +534,279 @@
 },
 {
     "model": "documents.elementpath",
-    "pk": "07cf4470-ce10-4bb3-b624-8693b7d830aa",
+    "pk": "19ad5308-22e2-4d51-9503-0a86f4086465",
     "fields": {
-        "element": "c77fbfa2-1edc-4c83-bb60-a59773be6f39",
-        "path": "[\"71287d83-8628-48ac-9e3f-40f2f6daf136\"]",
-        "ordering": 4
+        "element": "4d1642e0-a456-4ea6-a0e7-d4190b85dd23",
+        "path": "[\"49e3b2aa-2dc1-4d9e-930b-433529ce74ed\"]",
+        "ordering": 6
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "2299e751-efbc-44f9-928d-eae11419bf08",
+    "pk": "1a939690-ea65-4f9f-bd88-d010ccea4ad8",
     "fields": {
-        "element": "809a018e-3b3e-4ba0-9e10-7378df428f8b",
-        "path": "[\"71287d83-8628-48ac-9e3f-40f2f6daf136\"]",
-        "ordering": 5
+        "element": "b9e34045-cd42-4611-9140-9b36c255aa7d",
+        "path": "[\"a04bc2a1-a34c-4ff1-8cee-1610a6292f08\"]",
+        "ordering": 0
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "24d60fd8-fd8a-4199-9892-7502dcbca1b7",
+    "pk": "2b055722-0e89-413e-97bd-2d0b6125ada2",
     "fields": {
-        "element": "92edae95-97fd-44c9-a8f3-86aaabd3e685",
-        "path": "[\"71287d83-8628-48ac-9e3f-40f2f6daf136\", \"30211bbd-f970-46f2-8010-6a03afa219d4\"]",
-        "ordering": 2
+        "element": "273940fa-29e6-4a6f-8ebe-2f0530c5638a",
+        "path": "[\"49e3b2aa-2dc1-4d9e-930b-433529ce74ed\", \"659147b8-aa8d-430d-be80-bfb45abbc86c\"]",
+        "ordering": 0
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "2b3baf15-7c24-4824-be6e-023a6b918b8d",
+    "pk": "2c367bea-3a32-4c2d-ac9c-1e4c589a7aa2",
     "fields": {
-        "element": "6c2b3553-a182-41e7-86b7-d074ee38ef3a",
-        "path": "[\"71287d83-8628-48ac-9e3f-40f2f6daf136\", \"bd5a671f-ca17-476e-a43d-25b4aa386abf\"]",
+        "element": "305d4981-1f1b-441d-b147-9a04ef512c2d",
+        "path": "[\"49e3b2aa-2dc1-4d9e-930b-433529ce74ed\", \"3e88150e-0dd5-4f1f-bdf3-5ff962df5520\"]",
         "ordering": 0
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "2f5a38d5-1c15-4be2-8540-4f69e37a0b6a",
+    "pk": "30dbd0cf-b735-4243-8507-8a340561d475",
     "fields": {
-        "element": "9475daba-8eb1-4553-a400-3fb117528bb3",
-        "path": "[\"71287d83-8628-48ac-9e3f-40f2f6daf136\", \"7f3bbf36-2f96-4297-adc3-4258e3456c29\"]",
-        "ordering": 0
+        "element": "9a2ee49d-0c3c-4c41-bdc7-5cf696c23d11",
+        "path": "[\"49e3b2aa-2dc1-4d9e-930b-433529ce74ed\"]",
+        "ordering": 3
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "43e2ccf3-7bba-40e7-98c6-93737541a0f2",
+    "pk": "313629c9-fccf-4860-8f63-4c5b369fe64d",
     "fields": {
-        "element": "bd5a671f-ca17-476e-a43d-25b4aa386abf",
-        "path": "[\"71287d83-8628-48ac-9e3f-40f2f6daf136\"]",
-        "ordering": 3
+        "element": "fc591db1-9115-48ed-b79e-ae73f08ddd72",
+        "path": "[\"49e3b2aa-2dc1-4d9e-930b-433529ce74ed\", \"4d1642e0-a456-4ea6-a0e7-d4190b85dd23\"]",
+        "ordering": 0
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "46a19bee-37af-48cd-bc88-0839541e35bf",
+    "pk": "3b0c0d4b-48b1-4c22-87de-79080fa2ab39",
     "fields": {
-        "element": "26ac9c54-10e9-4996-8cfa-9df1434774f6",
-        "path": "[\"71287d83-8628-48ac-9e3f-40f2f6daf136\", \"76a56cff-9680-4c5a-8a01-53b43700b093\"]",
+        "element": "a04bc2a1-a34c-4ff1-8cee-1610a6292f08",
+        "path": "[]",
         "ordering": 0
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "4761a077-d4de-48b2-9477-3520907439e9",
+    "pk": "3b66f0c6-a2fd-4800-b366-8257cc587da0",
     "fields": {
-        "element": "30211bbd-f970-46f2-8010-6a03afa219d4",
-        "path": "[\"71287d83-8628-48ac-9e3f-40f2f6daf136\"]",
+        "element": "49e3b2aa-2dc1-4d9e-930b-433529ce74ed",
+        "path": "[]",
         "ordering": 0
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "5a917257-c667-4f13-80e6-106380a8b3ea",
+    "pk": "448602e5-244f-414d-ba25-a7d355f44347",
     "fields": {
-        "element": "7fa801e7-2b7a-46b5-9c2a-19a227ba56d6",
-        "path": "[\"bd6e6b59-cfb5-41f6-b333-794accb8eff9\"]",
+        "element": "588ce3be-858d-4963-a7ae-9e9ac593e604",
+        "path": "[\"49e3b2aa-2dc1-4d9e-930b-433529ce74ed\", \"4df12da3-657e-4373-aff0-2d97f06ae764\"]",
         "ordering": 2
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "655bca20-7dc6-4c03-ae5b-a0099d124281",
+    "pk": "4982f9e2-ad8e-42ee-9742-9d3d9621dbeb",
     "fields": {
-        "element": "ee14b7ed-9fee-49c6-9983-9d52b2a59343",
-        "path": "[\"71287d83-8628-48ac-9e3f-40f2f6daf136\", \"c77fbfa2-1edc-4c83-bb60-a59773be6f39\"]",
-        "ordering": 0
+        "element": "d237b4d8-0f0f-4048-b8fb-88822eeab941",
+        "path": "[\"49e3b2aa-2dc1-4d9e-930b-433529ce74ed\", \"132bd0a4-51b3-409c-a794-790f98885c04\"]",
+        "ordering": 2
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "74242843-2aec-455b-8dce-87b8ce562f3d",
+    "pk": "4d34d168-ddee-4486-95da-55f7b5dd8f38",
     "fields": {
-        "element": "71287d83-8628-48ac-9e3f-40f2f6daf136",
-        "path": "[]",
+        "element": "4df12da3-657e-4373-aff0-2d97f06ae764",
+        "path": "[\"49e3b2aa-2dc1-4d9e-930b-433529ce74ed\"]",
         "ordering": 0
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "77e0cddf-b8c5-4af2-aa7a-437341876530",
+    "pk": "7c262f41-0d07-4624-91da-19551010ecde",
     "fields": {
-        "element": "a317a77b-9ddd-4f48-82cf-17d25aec30f6",
-        "path": "[\"71287d83-8628-48ac-9e3f-40f2f6daf136\", \"b786da45-c90c-4569-aa31-1b4351bc9e34\"]",
-        "ordering": 2
+        "element": "6a10d9e5-d497-4653-a067-cd0314d2f806",
+        "path": "[\"49e3b2aa-2dc1-4d9e-930b-433529ce74ed\", \"4df12da3-657e-4373-aff0-2d97f06ae764\"]",
+        "ordering": 0
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "8d008ef2-d1c3-4615-9c8b-43aace76b30b",
+    "pk": "7c6edcbc-839e-43d9-b85e-dc26cdaad20c",
     "fields": {
-        "element": "7f3bbf36-2f96-4297-adc3-4258e3456c29",
-        "path": "[\"71287d83-8628-48ac-9e3f-40f2f6daf136\"]",
-        "ordering": 7
+        "element": "bbad9d5b-21af-4c94-a5e2-90526817f0ef",
+        "path": "[\"49e3b2aa-2dc1-4d9e-930b-433529ce74ed\", \"9a2ee49d-0c3c-4c41-bdc7-5cf696c23d11\"]",
+        "ordering": 0
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "978c2b40-fbb4-415d-ae51-65641826153f",
+    "pk": "805e75ca-fcdf-4ed9-87df-39f38de0a7d2",
     "fields": {
-        "element": "6fb612a7-e337-4538-8ca9-f79d7b1c80f3",
-        "path": "[\"71287d83-8628-48ac-9e3f-40f2f6daf136\", \"76a56cff-9680-4c5a-8a01-53b43700b093\"]",
-        "ordering": 1
+        "element": "2d1dae06-f06e-4675-acb3-cf7d89d391f9",
+        "path": "[\"49e3b2aa-2dc1-4d9e-930b-433529ce74ed\"]",
+        "ordering": 4
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "9eaa2e45-241f-494d-8135-dacdcb36e4fe",
+    "pk": "80a33d75-558f-452e-ad5d-78b4e373a442",
     "fields": {
-        "element": "b826c0e5-4877-487e-bd77-b4198cf76f4c",
-        "path": "[\"71287d83-8628-48ac-9e3f-40f2f6daf136\", \"76a56cff-9680-4c5a-8a01-53b43700b093\"]",
-        "ordering": 2
+        "element": "1894f1ac-0e28-4b14-9c31-0429d068c419",
+        "path": "[\"49e3b2aa-2dc1-4d9e-930b-433529ce74ed\", \"132bd0a4-51b3-409c-a794-790f98885c04\"]",
+        "ordering": 1
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "9f0b10d4-7c88-4f54-a308-4652618790c0",
+    "pk": "81895f6f-3254-410a-8812-bca58773fcf9",
     "fields": {
-        "element": "38cafdb6-bb8a-45bc-b514-f19cb27ac7a9",
-        "path": "[\"71287d83-8628-48ac-9e3f-40f2f6daf136\", \"b786da45-c90c-4569-aa31-1b4351bc9e34\"]",
-        "ordering": 1
+        "element": "4f90d19e-e255-4fa7-a644-9d611a62d967",
+        "path": "[\"49e3b2aa-2dc1-4d9e-930b-433529ce74ed\", \"842cd8c3-526c-46da-81a9-c033e9cc276c\"]",
+        "ordering": 2
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "a57189bd-d29f-4dab-b66c-d06876f59118",
+    "pk": "8fa16771-c069-49e8-8bd7-705151423ba4",
     "fields": {
-        "element": "9afab3a6-e895-4c0a-807d-d31354bd8b0a",
-        "path": "[\"71287d83-8628-48ac-9e3f-40f2f6daf136\", \"30211bbd-f970-46f2-8010-6a03afa219d4\"]",
+        "element": "df79e245-1acf-4bef-bbf3-346806bfa272",
+        "path": "[\"49e3b2aa-2dc1-4d9e-930b-433529ce74ed\", \"132bd0a4-51b3-409c-a794-790f98885c04\"]",
         "ordering": 0
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "aecdcf26-7dd1-4186-b872-300918e92658",
+    "pk": "9c57ec9e-445f-46ab-9984-3b89deedf7f3",
     "fields": {
-        "element": "4bb67850-d7ba-459e-a106-b2cf48f9f6cb",
-        "path": "[\"bd6e6b59-cfb5-41f6-b333-794accb8eff9\"]",
-        "ordering": 1
+        "element": "132bd0a4-51b3-409c-a794-790f98885c04",
+        "path": "[\"49e3b2aa-2dc1-4d9e-930b-433529ce74ed\"]",
+        "ordering": 2
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "b93d6025-9349-439d-bd65-992c13db4010",
+    "pk": "9f3ae480-5058-41a4-9138-aaddc218e4b5",
     "fields": {
-        "element": "9d026bbe-71d7-4ed0-8291-c00cad083f3b",
-        "path": "[\"71287d83-8628-48ac-9e3f-40f2f6daf136\", \"c77fbfa2-1edc-4c83-bb60-a59773be6f39\"]",
+        "element": "ebc8c3f5-90d3-4269-91b0-bca2d82e83ce",
+        "path": "[\"49e3b2aa-2dc1-4d9e-930b-433529ce74ed\", \"842cd8c3-526c-46da-81a9-c033e9cc276c\"]",
         "ordering": 1
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "ba4dc25d-1878-4327-ba75-babaccaf3edc",
+    "pk": "a158160d-7349-41db-8dca-b2f05f0aecbe",
     "fields": {
-        "element": "dc730372-6e7a-4baf-9d0a-7f1ca89802f9",
-        "path": "[\"71287d83-8628-48ac-9e3f-40f2f6daf136\"]",
-        "ordering": 6
+        "element": "c975f120-35dd-4d27-9136-503eee141c78",
+        "path": "[\"49e3b2aa-2dc1-4d9e-930b-433529ce74ed\", \"842cd8c3-526c-46da-81a9-c033e9cc276c\"]",
+        "ordering": 0
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "c2d77a3f-16c3-435b-989a-94202960561f",
+    "pk": "b4b428f6-b1e7-4ac7-91a2-94e5fe0050b1",
     "fields": {
-        "element": "bd6e6b59-cfb5-41f6-b333-794accb8eff9",
-        "path": "[]",
-        "ordering": 0
+        "element": "c7a86026-64d7-4976-ba39-05e94b3a2a5d",
+        "path": "[\"49e3b2aa-2dc1-4d9e-930b-433529ce74ed\", \"4df12da3-657e-4373-aff0-2d97f06ae764\"]",
+        "ordering": 3
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "c8acfd35-3fd9-4b79-9a38-b503e262c46c",
+    "pk": "c0203529-60e9-42a8-ae93-404882f6893d",
     "fields": {
-        "element": "e247c22a-4e83-4997-a284-5d1fda37a82f",
-        "path": "[\"71287d83-8628-48ac-9e3f-40f2f6daf136\", \"dc730372-6e7a-4baf-9d0a-7f1ca89802f9\"]",
-        "ordering": 0
+        "element": "659147b8-aa8d-430d-be80-bfb45abbc86c",
+        "path": "[\"49e3b2aa-2dc1-4d9e-930b-433529ce74ed\"]",
+        "ordering": 5
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "caf5c422-7d5f-451f-aeda-ad0239c6b880",
+    "pk": "c874b409-b0b8-4650-9874-defaf75e1c29",
     "fields": {
-        "element": "be2b81f0-dec4-41fd-a720-e8383244ee91",
-        "path": "[\"71287d83-8628-48ac-9e3f-40f2f6daf136\", \"30211bbd-f970-46f2-8010-6a03afa219d4\"]",
-        "ordering": 1
+        "element": "f137753e-86f3-4424-99c1-4b3ddd39c518",
+        "path": "[\"a04bc2a1-a34c-4ff1-8cee-1610a6292f08\"]",
+        "ordering": 2
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "d967f4ee-b387-4b62-a140-9273de9b1f42",
+    "pk": "d664f672-e134-4bd7-afb2-f124d8d321fb",
     "fields": {
-        "element": "76a56cff-9680-4c5a-8a01-53b43700b093",
-        "path": "[\"71287d83-8628-48ac-9e3f-40f2f6daf136\"]",
+        "element": "842cd8c3-526c-46da-81a9-c033e9cc276c",
+        "path": "[\"49e3b2aa-2dc1-4d9e-930b-433529ce74ed\"]",
         "ordering": 1
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "e61e9861-4e60-4459-839d-8dfe0803ab3d",
+    "pk": "d6fe5c2a-95bc-4002-8f20-df22443b742d",
     "fields": {
-        "element": "ae67b0f1-dfee-464d-8c96-fa3150eb924f",
-        "path": "[\"71287d83-8628-48ac-9e3f-40f2f6daf136\", \"b786da45-c90c-4569-aa31-1b4351bc9e34\"]",
-        "ordering": 0
+        "element": "3e88150e-0dd5-4f1f-bdf3-5ff962df5520",
+        "path": "[\"49e3b2aa-2dc1-4d9e-930b-433529ce74ed\"]",
+        "ordering": 7
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "eb20eb41-0d8a-4950-a838-24c98e707315",
+    "pk": "d8f5544d-0bc2-49a7-b17a-d6cbd53674f7",
     "fields": {
-        "element": "b8d55a9f-f3d6-4778-8eda-5b6b85d458b1",
-        "path": "[\"71287d83-8628-48ac-9e3f-40f2f6daf136\", \"30211bbd-f970-46f2-8010-6a03afa219d4\"]",
-        "ordering": 3
+        "element": "8d0dbf71-8c18-4114-8d95-ee3a4fb2b69b",
+        "path": "[\"49e3b2aa-2dc1-4d9e-930b-433529ce74ed\", \"2d1dae06-f06e-4675-acb3-cf7d89d391f9\"]",
+        "ordering": 0
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "f27d02e0-2cdb-4c7b-a3a0-dbb21603424b",
+    "pk": "dd79b4f9-58de-4e4b-bc40-182f0ba2dd37",
     "fields": {
-        "element": "b786da45-c90c-4569-aa31-1b4351bc9e34",
-        "path": "[\"71287d83-8628-48ac-9e3f-40f2f6daf136\"]",
-        "ordering": 2
+        "element": "80208152-f014-4c73-bdb3-f4e961b023a7",
+        "path": "[\"a04bc2a1-a34c-4ff1-8cee-1610a6292f08\"]",
+        "ordering": 1
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "f577406b-f31d-4fd6-801d-1b1385700304",
+    "pk": "e8f15cce-af65-45c7-986b-670d43fca586",
     "fields": {
-        "element": "590d69b1-95c8-4ba0-8617-9c0b022a4ba8",
-        "path": "[\"bd6e6b59-cfb5-41f6-b333-794accb8eff9\"]",
-        "ordering": 0
+        "element": "ed194a73-39ff-42f9-8133-dec044bf4792",
+        "path": "[\"49e3b2aa-2dc1-4d9e-930b-433529ce74ed\", \"4df12da3-657e-4373-aff0-2d97f06ae764\"]",
+        "ordering": 1
     }
 },
 {
     "model": "documents.elementpath",
-    "pk": "f68d74c1-7b5d-43fc-a259-98eb8500a827",
+    "pk": "fbbb5d47-d505-45c8-adaf-897b6057f909",
     "fields": {
-        "element": "02fd8dce-00b9-4895-93b6-94f8026a8a41",
-        "path": "[\"71287d83-8628-48ac-9e3f-40f2f6daf136\", \"809a018e-3b3e-4ba0-9e10-7378df428f8b\"]",
-        "ordering": 0
+        "element": "97c25afa-8568-46f9-bb21-7d5530ec0fcd",
+        "path": "[\"49e3b2aa-2dc1-4d9e-930b-433529ce74ed\", \"2d1dae06-f06e-4675-acb3-cf7d89d391f9\"]",
+        "ordering": 1
     }
 },
 {
     "model": "documents.element",
-    "pk": "02fd8dce-00b9-4895-93b6-94f8026a8a41",
+    "pk": "132bd0a4-51b3-409c-a794-790f98885c04",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "4ae753e7-ddf9-4500-a72f-9efdd71ba37c",
-        "name": "Surface D",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "34a11cd0-1ab9-4043-a1be-89d12dc09398",
+        "name": "Volume 1, page 2r",
         "creator": null,
         "worker_version": null,
         "worker_run": null,
-        "image": "e7b06b72-703b-45aa-9c91-12eba0f1e9d9",
-        "polygon": "LINEARRING (0 0, 0 300, 300 300, 300 0, 0 0)",
+        "image": "b6d5c8c8-c27f-43a8-8edb-0cb287eda8b3",
+        "polygon": "LINEARRING (0 0, 0 1000, 1000 1000, 1000 0, 0 0)",
         "rotation_angle": 0,
         "mirrored": false,
         "confidence": null
@@ -814,18 +814,18 @@
 },
 {
     "model": "documents.element",
-    "pk": "26ac9c54-10e9-4996-8cfa-9df1434774f6",
+    "pk": "1894f1ac-0e28-4b14-9c31-0429d068c419",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "8f16a5a3-4dfb-4851-a05a-36d95bb1cc0c",
-        "name": "PARIS",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "a5b6234e-d9a2-4263-b315-f87a5179830b",
+        "name": "ROY",
         "creator": null,
         "worker_version": null,
         "worker_run": null,
-        "image": "da507478-8d0a-41d5-8ad7-5b062521e984",
-        "polygon": "LINEARRING (100 100, 100 200, 200 200, 200 100, 100 100)",
+        "image": "b6d5c8c8-c27f-43a8-8edb-0cb287eda8b3",
+        "polygon": "LINEARRING (400 400, 400 500, 500 500, 500 400, 400 400)",
         "rotation_angle": 0,
         "mirrored": false,
         "confidence": null
@@ -833,18 +833,18 @@
 },
 {
     "model": "documents.element",
-    "pk": "30211bbd-f970-46f2-8010-6a03afa219d4",
+    "pk": "273940fa-29e6-4a6f-8ebe-2f0530c5638a",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "0f9084ac-d62f-435e-8dd2-c66052dca93b",
-        "name": "Volume 1, page 1r",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "d6578a7a-92a5-492a-bd5e-bd91bc67180c",
+        "name": "Surface D",
         "creator": null,
         "worker_version": null,
         "worker_run": null,
-        "image": "b6ac34ae-c245-4bf5-8c24-cee3b25a8498",
-        "polygon": "LINEARRING (0 0, 0 1000, 1000 1000, 1000 0, 0 0)",
+        "image": "b6d5c8c8-c27f-43a8-8edb-0cb287eda8b3",
+        "polygon": "LINEARRING (0 0, 0 300, 300 300, 300 0, 0 0)",
         "rotation_angle": 0,
         "mirrored": false,
         "confidence": null
@@ -852,18 +852,18 @@
 },
 {
     "model": "documents.element",
-    "pk": "38cafdb6-bb8a-45bc-b514-f19cb27ac7a9",
+    "pk": "2d1dae06-f06e-4675-acb3-cf7d89d391f9",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "8f16a5a3-4dfb-4851-a05a-36d95bb1cc0c",
-        "name": "ROY",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "318f9b79-62ee-4521-82c0-670aa99ececf",
+        "name": "Act 2",
         "creator": null,
         "worker_version": null,
         "worker_run": null,
-        "image": "e7b06b72-703b-45aa-9c91-12eba0f1e9d9",
-        "polygon": "LINEARRING (400 400, 400 500, 500 500, 500 400, 400 400)",
+        "image": null,
+        "polygon": null,
         "rotation_angle": 0,
         "mirrored": false,
         "confidence": null
@@ -871,18 +871,18 @@
 },
 {
     "model": "documents.element",
-    "pk": "4bb67850-d7ba-459e-a106-b2cf48f9f6cb",
+    "pk": "305d4981-1f1b-441d-b147-9a04ef512c2d",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "0f9084ac-d62f-435e-8dd2-c66052dca93b",
-        "name": "Volume 2, page 1v",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "d6578a7a-92a5-492a-bd5e-bd91bc67180c",
+        "name": "Surface F",
         "creator": null,
         "worker_version": null,
         "worker_run": null,
-        "image": "6358303d-1167-489c-b456-2ad6f80b7909",
-        "polygon": "LINEARRING (0 0, 0 1000, 1000 1000, 1000 0, 0 0)",
+        "image": "b6d5c8c8-c27f-43a8-8edb-0cb287eda8b3",
+        "polygon": "LINEARRING (600 600, 600 1000, 1000 1000, 1000 600, 600 600)",
         "rotation_angle": 0,
         "mirrored": false,
         "confidence": null
@@ -890,18 +890,18 @@
 },
 {
     "model": "documents.element",
-    "pk": "590d69b1-95c8-4ba0-8617-9c0b022a4ba8",
+    "pk": "3e88150e-0dd5-4f1f-bdf3-5ff962df5520",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "0f9084ac-d62f-435e-8dd2-c66052dca93b",
-        "name": "Volume 2, page 1r",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "318f9b79-62ee-4521-82c0-670aa99ececf",
+        "name": "Act 5",
         "creator": null,
         "worker_version": null,
         "worker_run": null,
-        "image": "0d4b917a-4b05-412e-9a32-78da2031dd70",
-        "polygon": "LINEARRING (0 0, 0 1000, 1000 1000, 1000 0, 0 0)",
+        "image": null,
+        "polygon": null,
         "rotation_angle": 0,
         "mirrored": false,
         "confidence": null
@@ -909,18 +909,18 @@
 },
 {
     "model": "documents.element",
-    "pk": "6c2b3553-a182-41e7-86b7-d074ee38ef3a",
+    "pk": "49e3b2aa-2dc1-4d9e-930b-433529ce74ed",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "4ae753e7-ddf9-4500-a72f-9efdd71ba37c",
-        "name": "Surface A",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "fc18d3b3-1d6d-48f3-8e59-59a7edc43b34",
+        "name": "Volume 1",
         "creator": null,
         "worker_version": null,
         "worker_run": null,
-        "image": "b6ac34ae-c245-4bf5-8c24-cee3b25a8498",
-        "polygon": "LINEARRING (0 0, 0 600, 600 600, 600 0, 0 0)",
+        "image": null,
+        "polygon": null,
         "rotation_angle": 0,
         "mirrored": false,
         "confidence": null
@@ -928,18 +928,18 @@
 },
 {
     "model": "documents.element",
-    "pk": "6fb612a7-e337-4538-8ca9-f79d7b1c80f3",
+    "pk": "4d1642e0-a456-4ea6-a0e7-d4190b85dd23",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "8f16a5a3-4dfb-4851-a05a-36d95bb1cc0c",
-        "name": "ROY",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "318f9b79-62ee-4521-82c0-670aa99ececf",
+        "name": "Act 4",
         "creator": null,
         "worker_version": null,
         "worker_run": null,
-        "image": "da507478-8d0a-41d5-8ad7-5b062521e984",
-        "polygon": "LINEARRING (400 400, 400 500, 500 500, 500 400, 400 400)",
+        "image": null,
+        "polygon": null,
         "rotation_angle": 0,
         "mirrored": false,
         "confidence": null
@@ -947,18 +947,18 @@
 },
 {
     "model": "documents.element",
-    "pk": "71287d83-8628-48ac-9e3f-40f2f6daf136",
+    "pk": "4df12da3-657e-4373-aff0-2d97f06ae764",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "71849ae9-9235-4c55-a627-d5a98af53ea4",
-        "name": "Volume 1",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "34a11cd0-1ab9-4043-a1be-89d12dc09398",
+        "name": "Volume 1, page 1r",
         "creator": null,
         "worker_version": null,
         "worker_run": null,
-        "image": null,
-        "polygon": null,
+        "image": "f5fb4f00-ee17-4d71-8021-543bb01ba0bb",
+        "polygon": "LINEARRING (0 0, 0 1000, 1000 1000, 1000 0, 0 0)",
         "rotation_angle": 0,
         "mirrored": false,
         "confidence": null
@@ -966,18 +966,18 @@
 },
 {
     "model": "documents.element",
-    "pk": "76a56cff-9680-4c5a-8a01-53b43700b093",
+    "pk": "4f90d19e-e255-4fa7-a644-9d611a62d967",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "0f9084ac-d62f-435e-8dd2-c66052dca93b",
-        "name": "Volume 1, page 1v",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "a5b6234e-d9a2-4263-b315-f87a5179830b",
+        "name": "DATUM",
         "creator": null,
         "worker_version": null,
         "worker_run": null,
-        "image": "da507478-8d0a-41d5-8ad7-5b062521e984",
-        "polygon": "LINEARRING (0 0, 0 1000, 1000 1000, 1000 0, 0 0)",
+        "image": "ad2a47fa-c3a6-4b0a-9e35-44563187350e",
+        "polygon": "LINEARRING (700 700, 700 800, 800 800, 800 700, 700 700)",
         "rotation_angle": 0,
         "mirrored": false,
         "confidence": null
@@ -985,18 +985,18 @@
 },
 {
     "model": "documents.element",
-    "pk": "7f3bbf36-2f96-4297-adc3-4258e3456c29",
+    "pk": "588ce3be-858d-4963-a7ae-9e9ac593e604",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "90463352-3033-4f98-9b4b-b01d463ede34",
-        "name": "Act 5",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "a5b6234e-d9a2-4263-b315-f87a5179830b",
+        "name": "DATUM",
         "creator": null,
         "worker_version": null,
         "worker_run": null,
-        "image": null,
-        "polygon": null,
+        "image": "f5fb4f00-ee17-4d71-8021-543bb01ba0bb",
+        "polygon": "LINEARRING (700 700, 700 800, 800 800, 800 700, 700 700)",
         "rotation_angle": 0,
         "mirrored": false,
         "confidence": null
@@ -1004,18 +1004,18 @@
 },
 {
     "model": "documents.element",
-    "pk": "7fa801e7-2b7a-46b5-9c2a-19a227ba56d6",
+    "pk": "659147b8-aa8d-430d-be80-bfb45abbc86c",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "0f9084ac-d62f-435e-8dd2-c66052dca93b",
-        "name": "Volume 2, page 2r",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "318f9b79-62ee-4521-82c0-670aa99ececf",
+        "name": "Act 3",
         "creator": null,
         "worker_version": null,
         "worker_run": null,
-        "image": "fa147dd6-f548-478d-a2ce-de54e28aeda9",
-        "polygon": "LINEARRING (0 0, 0 1000, 1000 1000, 1000 0, 0 0)",
+        "image": null,
+        "polygon": null,
         "rotation_angle": 0,
         "mirrored": false,
         "confidence": null
@@ -1023,18 +1023,18 @@
 },
 {
     "model": "documents.element",
-    "pk": "809a018e-3b3e-4ba0-9e10-7378df428f8b",
+    "pk": "6a10d9e5-d497-4653-a067-cd0314d2f806",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "90463352-3033-4f98-9b4b-b01d463ede34",
-        "name": "Act 3",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "a5b6234e-d9a2-4263-b315-f87a5179830b",
+        "name": "PARIS",
         "creator": null,
         "worker_version": null,
         "worker_run": null,
-        "image": null,
-        "polygon": null,
+        "image": "f5fb4f00-ee17-4d71-8021-543bb01ba0bb",
+        "polygon": "LINEARRING (100 100, 100 200, 200 200, 200 100, 100 100)",
         "rotation_angle": 0,
         "mirrored": false,
         "confidence": null
@@ -1042,18 +1042,18 @@
 },
 {
     "model": "documents.element",
-    "pk": "92edae95-97fd-44c9-a8f3-86aaabd3e685",
+    "pk": "80208152-f014-4c73-bdb3-f4e961b023a7",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "8f16a5a3-4dfb-4851-a05a-36d95bb1cc0c",
-        "name": "DATUM",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "34a11cd0-1ab9-4043-a1be-89d12dc09398",
+        "name": "Volume 2, page 1v",
         "creator": null,
         "worker_version": null,
         "worker_run": null,
-        "image": "b6ac34ae-c245-4bf5-8c24-cee3b25a8498",
-        "polygon": "LINEARRING (700 700, 700 800, 800 800, 800 700, 700 700)",
+        "image": "651a1319-22d6-4bd6-a385-a64f0235228f",
+        "polygon": "LINEARRING (0 0, 0 1000, 1000 1000, 1000 0, 0 0)",
         "rotation_angle": 0,
         "mirrored": false,
         "confidence": null
@@ -1061,18 +1061,18 @@
 },
 {
     "model": "documents.element",
-    "pk": "9475daba-8eb1-4553-a400-3fb117528bb3",
+    "pk": "842cd8c3-526c-46da-81a9-c033e9cc276c",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "4ae753e7-ddf9-4500-a72f-9efdd71ba37c",
-        "name": "Surface F",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "34a11cd0-1ab9-4043-a1be-89d12dc09398",
+        "name": "Volume 1, page 1v",
         "creator": null,
         "worker_version": null,
         "worker_run": null,
-        "image": "e7b06b72-703b-45aa-9c91-12eba0f1e9d9",
-        "polygon": "LINEARRING (600 600, 600 1000, 1000 1000, 1000 600, 600 600)",
+        "image": "ad2a47fa-c3a6-4b0a-9e35-44563187350e",
+        "polygon": "LINEARRING (0 0, 0 1000, 1000 1000, 1000 0, 0 0)",
         "rotation_angle": 0,
         "mirrored": false,
         "confidence": null
@@ -1080,18 +1080,18 @@
 },
 {
     "model": "documents.element",
-    "pk": "9afab3a6-e895-4c0a-807d-d31354bd8b0a",
+    "pk": "8d0dbf71-8c18-4114-8d95-ee3a4fb2b69b",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "8f16a5a3-4dfb-4851-a05a-36d95bb1cc0c",
-        "name": "PARIS",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "d6578a7a-92a5-492a-bd5e-bd91bc67180c",
+        "name": "Surface B",
         "creator": null,
         "worker_version": null,
         "worker_run": null,
-        "image": "b6ac34ae-c245-4bf5-8c24-cee3b25a8498",
-        "polygon": "LINEARRING (100 100, 100 200, 200 200, 200 100, 100 100)",
+        "image": "f5fb4f00-ee17-4d71-8021-543bb01ba0bb",
+        "polygon": "LINEARRING (600 600, 600 1000, 1000 1000, 1000 600, 600 600)",
         "rotation_angle": 0,
         "mirrored": false,
         "confidence": null
@@ -1099,17 +1099,17 @@
 },
 {
     "model": "documents.element",
-    "pk": "9d026bbe-71d7-4ed0-8291-c00cad083f3b",
+    "pk": "97c25afa-8568-46f9-bb21-7d5530ec0fcd",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "4ae753e7-ddf9-4500-a72f-9efdd71ba37c",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "d6578a7a-92a5-492a-bd5e-bd91bc67180c",
         "name": "Surface C",
         "creator": null,
         "worker_version": null,
         "worker_run": null,
-        "image": "da507478-8d0a-41d5-8ad7-5b062521e984",
+        "image": "ad2a47fa-c3a6-4b0a-9e35-44563187350e",
         "polygon": "LINEARRING (0 0, 0 1000, 1000 1000, 1000 0, 0 0)",
         "rotation_angle": 0,
         "mirrored": false,
@@ -1118,18 +1118,18 @@
 },
 {
     "model": "documents.element",
-    "pk": "a317a77b-9ddd-4f48-82cf-17d25aec30f6",
+    "pk": "9a2ee49d-0c3c-4c41-bdc7-5cf696c23d11",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "8f16a5a3-4dfb-4851-a05a-36d95bb1cc0c",
-        "name": "DATUM",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "318f9b79-62ee-4521-82c0-670aa99ececf",
+        "name": "Act 1",
         "creator": null,
         "worker_version": null,
         "worker_run": null,
-        "image": "e7b06b72-703b-45aa-9c91-12eba0f1e9d9",
-        "polygon": "LINEARRING (700 700, 700 800, 800 800, 800 700, 700 700)",
+        "image": null,
+        "polygon": null,
         "rotation_angle": 0,
         "mirrored": false,
         "confidence": null
@@ -1137,18 +1137,18 @@
 },
 {
     "model": "documents.element",
-    "pk": "ae67b0f1-dfee-464d-8c96-fa3150eb924f",
+    "pk": "a04bc2a1-a34c-4ff1-8cee-1610a6292f08",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "8f16a5a3-4dfb-4851-a05a-36d95bb1cc0c",
-        "name": "PARIS",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "fc18d3b3-1d6d-48f3-8e59-59a7edc43b34",
+        "name": "Volume 2",
         "creator": null,
         "worker_version": null,
         "worker_run": null,
-        "image": "e7b06b72-703b-45aa-9c91-12eba0f1e9d9",
-        "polygon": "LINEARRING (100 100, 100 200, 200 200, 200 100, 100 100)",
+        "image": null,
+        "polygon": null,
         "rotation_angle": 0,
         "mirrored": false,
         "confidence": null
@@ -1156,17 +1156,17 @@
 },
 {
     "model": "documents.element",
-    "pk": "b786da45-c90c-4569-aa31-1b4351bc9e34",
+    "pk": "b9e34045-cd42-4611-9140-9b36c255aa7d",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "0f9084ac-d62f-435e-8dd2-c66052dca93b",
-        "name": "Volume 1, page 2r",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "34a11cd0-1ab9-4043-a1be-89d12dc09398",
+        "name": "Volume 2, page 1r",
         "creator": null,
         "worker_version": null,
         "worker_run": null,
-        "image": "e7b06b72-703b-45aa-9c91-12eba0f1e9d9",
+        "image": "d8cc120e-fb8c-4057-a243-558a02213f54",
         "polygon": "LINEARRING (0 0, 0 1000, 1000 1000, 1000 0, 0 0)",
         "rotation_angle": 0,
         "mirrored": false,
@@ -1175,18 +1175,18 @@
 },
 {
     "model": "documents.element",
-    "pk": "b826c0e5-4877-487e-bd77-b4198cf76f4c",
+    "pk": "bbad9d5b-21af-4c94-a5e2-90526817f0ef",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "8f16a5a3-4dfb-4851-a05a-36d95bb1cc0c",
-        "name": "DATUM",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "d6578a7a-92a5-492a-bd5e-bd91bc67180c",
+        "name": "Surface A",
         "creator": null,
         "worker_version": null,
         "worker_run": null,
-        "image": "da507478-8d0a-41d5-8ad7-5b062521e984",
-        "polygon": "LINEARRING (700 700, 700 800, 800 800, 800 700, 700 700)",
+        "image": "f5fb4f00-ee17-4d71-8021-543bb01ba0bb",
+        "polygon": "LINEARRING (0 0, 0 600, 600 600, 600 0, 0 0)",
         "rotation_angle": 0,
         "mirrored": false,
         "confidence": null
@@ -1194,17 +1194,17 @@
 },
 {
     "model": "documents.element",
-    "pk": "b8d55a9f-f3d6-4778-8eda-5b6b85d458b1",
+    "pk": "c7a86026-64d7-4976-ba39-05e94b3a2a5d",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "d11fd6b0-37c7-4566-abee-1283803bf546",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "fc6f5d0b-55bb-4ca8-880d-d2da865000e4",
         "name": "Text line",
         "creator": null,
         "worker_version": null,
         "worker_run": null,
-        "image": "b6ac34ae-c245-4bf5-8c24-cee3b25a8498",
+        "image": "f5fb4f00-ee17-4d71-8021-543bb01ba0bb",
         "polygon": "LINEARRING (400 400, 400 500, 500 500, 500 400, 400 400)",
         "rotation_angle": 0,
         "mirrored": false,
@@ -1213,18 +1213,18 @@
 },
 {
     "model": "documents.element",
-    "pk": "bd5a671f-ca17-476e-a43d-25b4aa386abf",
+    "pk": "c975f120-35dd-4d27-9136-503eee141c78",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "90463352-3033-4f98-9b4b-b01d463ede34",
-        "name": "Act 1",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "a5b6234e-d9a2-4263-b315-f87a5179830b",
+        "name": "PARIS",
         "creator": null,
         "worker_version": null,
         "worker_run": null,
-        "image": null,
-        "polygon": null,
+        "image": "ad2a47fa-c3a6-4b0a-9e35-44563187350e",
+        "polygon": "LINEARRING (100 100, 100 200, 200 200, 200 100, 100 100)",
         "rotation_angle": 0,
         "mirrored": false,
         "confidence": null
@@ -1232,18 +1232,18 @@
 },
 {
     "model": "documents.element",
-    "pk": "bd6e6b59-cfb5-41f6-b333-794accb8eff9",
+    "pk": "d237b4d8-0f0f-4048-b8fb-88822eeab941",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "71849ae9-9235-4c55-a627-d5a98af53ea4",
-        "name": "Volume 2",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "a5b6234e-d9a2-4263-b315-f87a5179830b",
+        "name": "DATUM",
         "creator": null,
         "worker_version": null,
         "worker_run": null,
-        "image": null,
-        "polygon": null,
+        "image": "b6d5c8c8-c27f-43a8-8edb-0cb287eda8b3",
+        "polygon": "LINEARRING (700 700, 700 800, 800 800, 800 700, 700 700)",
         "rotation_angle": 0,
         "mirrored": false,
         "confidence": null
@@ -1251,18 +1251,18 @@
 },
 {
     "model": "documents.element",
-    "pk": "be2b81f0-dec4-41fd-a720-e8383244ee91",
+    "pk": "df79e245-1acf-4bef-bbf3-346806bfa272",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "8f16a5a3-4dfb-4851-a05a-36d95bb1cc0c",
-        "name": "ROY",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "a5b6234e-d9a2-4263-b315-f87a5179830b",
+        "name": "PARIS",
         "creator": null,
         "worker_version": null,
         "worker_run": null,
-        "image": "b6ac34ae-c245-4bf5-8c24-cee3b25a8498",
-        "polygon": "LINEARRING (400 400, 400 500, 500 500, 500 400, 400 400)",
+        "image": "b6d5c8c8-c27f-43a8-8edb-0cb287eda8b3",
+        "polygon": "LINEARRING (100 100, 100 200, 200 200, 200 100, 100 100)",
         "rotation_angle": 0,
         "mirrored": false,
         "confidence": null
@@ -1270,18 +1270,18 @@
 },
 {
     "model": "documents.element",
-    "pk": "c77fbfa2-1edc-4c83-bb60-a59773be6f39",
+    "pk": "ebc8c3f5-90d3-4269-91b0-bca2d82e83ce",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "90463352-3033-4f98-9b4b-b01d463ede34",
-        "name": "Act 2",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "a5b6234e-d9a2-4263-b315-f87a5179830b",
+        "name": "ROY",
         "creator": null,
         "worker_version": null,
         "worker_run": null,
-        "image": null,
-        "polygon": null,
+        "image": "ad2a47fa-c3a6-4b0a-9e35-44563187350e",
+        "polygon": "LINEARRING (400 400, 400 500, 500 500, 500 400, 400 400)",
         "rotation_angle": 0,
         "mirrored": false,
         "confidence": null
@@ -1289,18 +1289,18 @@
 },
 {
     "model": "documents.element",
-    "pk": "dc730372-6e7a-4baf-9d0a-7f1ca89802f9",
+    "pk": "ed194a73-39ff-42f9-8133-dec044bf4792",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "90463352-3033-4f98-9b4b-b01d463ede34",
-        "name": "Act 4",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "a5b6234e-d9a2-4263-b315-f87a5179830b",
+        "name": "ROY",
         "creator": null,
         "worker_version": null,
         "worker_run": null,
-        "image": null,
-        "polygon": null,
+        "image": "f5fb4f00-ee17-4d71-8021-543bb01ba0bb",
+        "polygon": "LINEARRING (400 400, 400 500, 500 500, 500 400, 400 400)",
         "rotation_angle": 0,
         "mirrored": false,
         "confidence": null
@@ -1308,18 +1308,18 @@
 },
 {
     "model": "documents.element",
-    "pk": "e247c22a-4e83-4997-a284-5d1fda37a82f",
+    "pk": "f137753e-86f3-4424-99c1-4b3ddd39c518",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "4ae753e7-ddf9-4500-a72f-9efdd71ba37c",
-        "name": "Surface E",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "34a11cd0-1ab9-4043-a1be-89d12dc09398",
+        "name": "Volume 2, page 2r",
         "creator": null,
         "worker_version": null,
         "worker_run": null,
-        "image": "e7b06b72-703b-45aa-9c91-12eba0f1e9d9",
-        "polygon": "LINEARRING (300 300, 300 600, 600 600, 600 300, 300 300)",
+        "image": "cf799a21-7bd2-45f5-a83d-272ee97d6b20",
+        "polygon": "LINEARRING (0 0, 0 1000, 1000 1000, 1000 0, 0 0)",
         "rotation_angle": 0,
         "mirrored": false,
         "confidence": null
@@ -1327,18 +1327,18 @@
 },
 {
     "model": "documents.element",
-    "pk": "ee14b7ed-9fee-49c6-9983-9d52b2a59343",
+    "pk": "fc591db1-9115-48ed-b79e-ae73f08ddd72",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "4ae753e7-ddf9-4500-a72f-9efdd71ba37c",
-        "name": "Surface B",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "d6578a7a-92a5-492a-bd5e-bd91bc67180c",
+        "name": "Surface E",
         "creator": null,
         "worker_version": null,
         "worker_run": null,
-        "image": "b6ac34ae-c245-4bf5-8c24-cee3b25a8498",
-        "polygon": "LINEARRING (600 600, 600 1000, 1000 1000, 1000 600, 600 600)",
+        "image": "b6d5c8c8-c27f-43a8-8edb-0cb287eda8b3",
+        "polygon": "LINEARRING (300 300, 300 600, 600 600, 600 300, 300 300)",
         "rotation_angle": 0,
         "mirrored": false,
         "confidence": null
@@ -1346,152 +1346,152 @@
 },
 {
     "model": "documents.entitytype",
-    "pk": "1af77054-dd36-4b06-ba8a-49e3d91863e0",
+    "pk": "1b55bf17-dc54-47ed-813e-71392b2db2b4",
     "fields": {
-        "name": "location",
+        "name": "person",
         "color": "ff0000",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df"
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b"
     }
 },
 {
     "model": "documents.entitytype",
-    "pk": "63f1a5d7-b449-4f63-890f-3a6f54202e38",
+    "pk": "27478365-be5f-4d06-8e05-e791a10b4e8a",
     "fields": {
         "name": "number",
         "color": "ff0000",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df"
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b"
     }
 },
 {
     "model": "documents.entitytype",
-    "pk": "6fba3f08-f987-41f2-97dd-579d6a4595f3",
+    "pk": "4579f508-6d4d-4fd0-a1bb-8fa8fe8c112b",
     "fields": {
-        "name": "date",
+        "name": "location",
         "color": "ff0000",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df"
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b"
     }
 },
 {
     "model": "documents.entitytype",
-    "pk": "a6e74713-9506-4aac-a826-1d293185953d",
+    "pk": "5a8a15fc-3cba-4212-b793-df5cf975a160",
     "fields": {
-        "name": "person",
+        "name": "organization",
         "color": "ff0000",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df"
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b"
     }
 },
 {
     "model": "documents.entitytype",
-    "pk": "b6a370db-6d54-446d-96ad-f5244105da45",
+    "pk": "c6577a07-8a03-4bee-9edb-8b0428b26bf4",
     "fields": {
-        "name": "organization",
+        "name": "date",
         "color": "ff0000",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df"
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b"
     }
 },
 {
     "model": "documents.transcription",
-    "pk": "348d340d-e8ae-4a6e-8a1c-cc71d9f554d7",
+    "pk": "0f0cb096-02f4-45c3-b997-0b7fbbab30f0",
     "fields": {
-        "element": "26ac9c54-10e9-4996-8cfa-9df1434774f6",
-        "worker_version": "ccf2a96f-ed15-495c-886b-b5068b01b9f8",
-        "worker_run": "a3adcf61-c7ce-48e1-8488-541ba1373740",
-        "text": "PARIS",
+        "element": "4f90d19e-e255-4fa7-a644-9d611a62d967",
+        "worker_version": "9f68bd33-2dfa-44aa-b461-6ab72161a859",
+        "worker_run": "55d64c3a-0fc6-4d9f-9563-0661d0fb4a95",
+        "text": "DATUM",
         "orientation": "horizontal-lr",
         "confidence": 1.0
     }
 },
 {
     "model": "documents.transcription",
-    "pk": "3b5850fc-cc4a-4200-8639-b23d360c69f8",
+    "pk": "5f36b188-61f8-40c9-bb68-6a53ee11c8bb",
     "fields": {
-        "element": "be2b81f0-dec4-41fd-a720-e8383244ee91",
-        "worker_version": "ccf2a96f-ed15-495c-886b-b5068b01b9f8",
-        "worker_run": "a3adcf61-c7ce-48e1-8488-541ba1373740",
-        "text": "ROY",
+        "element": "4df12da3-657e-4373-aff0-2d97f06ae764",
+        "worker_version": "9f68bd33-2dfa-44aa-b461-6ab72161a859",
+        "worker_run": "55d64c3a-0fc6-4d9f-9563-0661d0fb4a95",
+        "text": "Lorem ipsum dolor sit amet",
         "orientation": "horizontal-lr",
         "confidence": 1.0
     }
 },
 {
     "model": "documents.transcription",
-    "pk": "560159b2-6563-48ec-8ce4-9c600e346d71",
+    "pk": "7e8dcdcb-9e59-49dc-b420-cc7d29bab40f",
     "fields": {
-        "element": "b826c0e5-4877-487e-bd77-b4198cf76f4c",
-        "worker_version": "ccf2a96f-ed15-495c-886b-b5068b01b9f8",
-        "worker_run": "a3adcf61-c7ce-48e1-8488-541ba1373740",
-        "text": "DATUM",
+        "element": "c975f120-35dd-4d27-9136-503eee141c78",
+        "worker_version": "9f68bd33-2dfa-44aa-b461-6ab72161a859",
+        "worker_run": "55d64c3a-0fc6-4d9f-9563-0661d0fb4a95",
+        "text": "PARIS",
         "orientation": "horizontal-lr",
         "confidence": 1.0
     }
 },
 {
     "model": "documents.transcription",
-    "pk": "72a44064-b773-40c6-9984-9b205540ac13",
+    "pk": "80f4fead-a7ac-4168-b7c3-9ce5627ce779",
     "fields": {
-        "element": "6fb612a7-e337-4538-8ca9-f79d7b1c80f3",
-        "worker_version": "ccf2a96f-ed15-495c-886b-b5068b01b9f8",
-        "worker_run": "a3adcf61-c7ce-48e1-8488-541ba1373740",
-        "text": "ROY",
+        "element": "6a10d9e5-d497-4653-a067-cd0314d2f806",
+        "worker_version": "9f68bd33-2dfa-44aa-b461-6ab72161a859",
+        "worker_run": "55d64c3a-0fc6-4d9f-9563-0661d0fb4a95",
+        "text": "PARIS",
         "orientation": "horizontal-lr",
         "confidence": 1.0
     }
 },
 {
     "model": "documents.transcription",
-    "pk": "bac52ae2-6303-4a67-92b9-b872436e6815",
+    "pk": "950b9f03-126e-443d-bbfe-14804583e519",
     "fields": {
-        "element": "38cafdb6-bb8a-45bc-b514-f19cb27ac7a9",
-        "worker_version": "ccf2a96f-ed15-495c-886b-b5068b01b9f8",
-        "worker_run": "a3adcf61-c7ce-48e1-8488-541ba1373740",
-        "text": "ROY",
+        "element": "d237b4d8-0f0f-4048-b8fb-88822eeab941",
+        "worker_version": "9f68bd33-2dfa-44aa-b461-6ab72161a859",
+        "worker_run": "55d64c3a-0fc6-4d9f-9563-0661d0fb4a95",
+        "text": "DATUM",
         "orientation": "horizontal-lr",
         "confidence": 1.0
     }
 },
 {
     "model": "documents.transcription",
-    "pk": "c526a613-ea9d-4351-a6df-4a83d83b9383",
+    "pk": "bddc34e6-4513-4494-b903-a64a1af6fe41",
     "fields": {
-        "element": "30211bbd-f970-46f2-8010-6a03afa219d4",
-        "worker_version": "ccf2a96f-ed15-495c-886b-b5068b01b9f8",
-        "worker_run": "a3adcf61-c7ce-48e1-8488-541ba1373740",
-        "text": "Lorem ipsum dolor sit amet",
+        "element": "ebc8c3f5-90d3-4269-91b0-bca2d82e83ce",
+        "worker_version": "9f68bd33-2dfa-44aa-b461-6ab72161a859",
+        "worker_run": "55d64c3a-0fc6-4d9f-9563-0661d0fb4a95",
+        "text": "ROY",
         "orientation": "horizontal-lr",
         "confidence": 1.0
     }
 },
 {
     "model": "documents.transcription",
-    "pk": "cc171391-89d2-4ed8-a3c6-70b588f41153",
+    "pk": "dcf3e084-2a45-4538-a093-1d74f3316afd",
     "fields": {
-        "element": "ae67b0f1-dfee-464d-8c96-fa3150eb924f",
-        "worker_version": "ccf2a96f-ed15-495c-886b-b5068b01b9f8",
-        "worker_run": "a3adcf61-c7ce-48e1-8488-541ba1373740",
-        "text": "PARIS",
+        "element": "1894f1ac-0e28-4b14-9c31-0429d068c419",
+        "worker_version": "9f68bd33-2dfa-44aa-b461-6ab72161a859",
+        "worker_run": "55d64c3a-0fc6-4d9f-9563-0661d0fb4a95",
+        "text": "ROY",
         "orientation": "horizontal-lr",
         "confidence": 1.0
     }
 },
 {
     "model": "documents.transcription",
-    "pk": "cc5df7ac-a137-4fa4-8a71-0e152133bf48",
+    "pk": "e4036088-8cc5-4274-a47e-7f1a0cffe9a4",
     "fields": {
-        "element": "92edae95-97fd-44c9-a8f3-86aaabd3e685",
-        "worker_version": "ccf2a96f-ed15-495c-886b-b5068b01b9f8",
-        "worker_run": "a3adcf61-c7ce-48e1-8488-541ba1373740",
-        "text": "DATUM",
+        "element": "df79e245-1acf-4bef-bbf3-346806bfa272",
+        "worker_version": "9f68bd33-2dfa-44aa-b461-6ab72161a859",
+        "worker_run": "55d64c3a-0fc6-4d9f-9563-0661d0fb4a95",
+        "text": "PARIS",
         "orientation": "horizontal-lr",
         "confidence": 1.0
     }
 },
 {
     "model": "documents.transcription",
-    "pk": "e6c64593-5211-4787-997c-cdaa57ef8527",
+    "pk": "e7223e3f-85d2-4120-b983-de7065e8f2d1",
     "fields": {
-        "element": "a317a77b-9ddd-4f48-82cf-17d25aec30f6",
-        "worker_version": "ccf2a96f-ed15-495c-886b-b5068b01b9f8",
-        "worker_run": "a3adcf61-c7ce-48e1-8488-541ba1373740",
+        "element": "588ce3be-858d-4963-a7ae-9e9ac593e604",
+        "worker_version": "9f68bd33-2dfa-44aa-b461-6ab72161a859",
+        "worker_run": "55d64c3a-0fc6-4d9f-9563-0661d0fb4a95",
         "text": "DATUM",
         "orientation": "horizontal-lr",
         "confidence": 1.0
@@ -1499,51 +1499,51 @@
 },
 {
     "model": "documents.transcription",
-    "pk": "f16d07b9-5431-4613-974b-fa9a275b96eb",
+    "pk": "fd9f370c-8dd9-4c1c-a4d0-9b3dd10b873d",
     "fields": {
-        "element": "9afab3a6-e895-4c0a-807d-d31354bd8b0a",
-        "worker_version": "ccf2a96f-ed15-495c-886b-b5068b01b9f8",
-        "worker_run": "a3adcf61-c7ce-48e1-8488-541ba1373740",
-        "text": "PARIS",
+        "element": "ed194a73-39ff-42f9-8133-dec044bf4792",
+        "worker_version": "9f68bd33-2dfa-44aa-b461-6ab72161a859",
+        "worker_run": "55d64c3a-0fc6-4d9f-9563-0661d0fb4a95",
+        "text": "ROY",
         "orientation": "horizontal-lr",
         "confidence": 1.0
     }
 },
 {
     "model": "documents.allowedmetadata",
-    "pk": "abf0de31-f528-42af-a3d3-6951ba9a59a2",
+    "pk": "1902466d-3de0-45ca-95c2-baa093c02c61",
     "fields": {
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "location",
-        "name": "location"
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "date",
+        "name": "date"
     }
 },
 {
     "model": "documents.allowedmetadata",
-    "pk": "eb4ccf3c-1b4c-42c5-acad-ec0b40f8ae3b",
+    "pk": "6e118f91-8ee7-4dc6-acd5-847393c3ddf9",
     "fields": {
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
         "type": "text",
         "name": "folio"
     }
 },
 {
     "model": "documents.allowedmetadata",
-    "pk": "faf366c7-66e3-4702-9d0f-69f165ff2730",
+    "pk": "d1d30e40-9b1f-4680-a659-53c9c36caf45",
     "fields": {
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
-        "type": "date",
-        "name": "date"
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
+        "type": "location",
+        "name": "location"
     }
 },
 {
     "model": "documents.metadata",
-    "pk": "041e2100-3e15-4898-83cc-cdb6ff86bc86",
+    "pk": "03f42c94-337c-41f8-9a3f-3c107e48c0ab",
     "fields": {
-        "element": "bd5a671f-ca17-476e-a43d-25b4aa386abf",
-        "name": "number",
+        "element": "f137753e-86f3-4424-99c1-4b3ddd39c518",
+        "name": "folio",
         "type": "text",
-        "value": "1",
+        "value": "2r",
         "entity": null,
         "worker_version": null,
         "worker_run": null
@@ -1551,12 +1551,12 @@
 },
 {
     "model": "documents.metadata",
-    "pk": "11b19ba3-6b0d-48b5-a68b-aac627227e11",
+    "pk": "0481986f-d8cc-4ef3-aaef-9d7215405887",
     "fields": {
-        "element": "7fa801e7-2b7a-46b5-9c2a-19a227ba56d6",
+        "element": "b9e34045-cd42-4611-9140-9b36c255aa7d",
         "name": "folio",
         "type": "text",
-        "value": "2r",
+        "value": "1r",
         "entity": null,
         "worker_version": null,
         "worker_run": null
@@ -1564,12 +1564,12 @@
 },
 {
     "model": "documents.metadata",
-    "pk": "52abcc33-23b7-4482-9607-786bc789e578",
+    "pk": "0d319711-d6f5-429d-8973-78e2f891670e",
     "fields": {
-        "element": "b786da45-c90c-4569-aa31-1b4351bc9e34",
+        "element": "4df12da3-657e-4373-aff0-2d97f06ae764",
         "name": "folio",
         "type": "text",
-        "value": "2r",
+        "value": "1r",
         "entity": null,
         "worker_version": null,
         "worker_run": null
@@ -1577,12 +1577,12 @@
 },
 {
     "model": "documents.metadata",
-    "pk": "765f5186-16dc-4bf6-88c6-80d47d1db628",
+    "pk": "1af65499-291c-4fdc-a602-a88a2ea87540",
     "fields": {
-        "element": "7f3bbf36-2f96-4297-adc3-4258e3456c29",
-        "name": "number",
+        "element": "80208152-f014-4c73-bdb3-f4e961b023a7",
+        "name": "folio",
         "type": "text",
-        "value": "5",
+        "value": "1v",
         "entity": null,
         "worker_version": null,
         "worker_run": null
@@ -1590,12 +1590,12 @@
 },
 {
     "model": "documents.metadata",
-    "pk": "806431c0-093d-4172-884f-8b3e83ea84be",
+    "pk": "64327dd3-26dd-4a8f-b989-53889e8b5210",
     "fields": {
-        "element": "c77fbfa2-1edc-4c83-bb60-a59773be6f39",
+        "element": "9a2ee49d-0c3c-4c41-bdc7-5cf696c23d11",
         "name": "number",
         "type": "text",
-        "value": "2",
+        "value": "1",
         "entity": null,
         "worker_version": null,
         "worker_run": null
@@ -1603,12 +1603,12 @@
 },
 {
     "model": "documents.metadata",
-    "pk": "8e37aaf1-5ba2-4188-98aa-11667f36ac10",
+    "pk": "71318c8d-f312-4200-8651-7efc23e5e8d2",
     "fields": {
-        "element": "dc730372-6e7a-4baf-9d0a-7f1ca89802f9",
+        "element": "3e88150e-0dd5-4f1f-bdf3-5ff962df5520",
         "name": "number",
         "type": "text",
-        "value": "4",
+        "value": "5",
         "entity": null,
         "worker_version": null,
         "worker_run": null
@@ -1616,12 +1616,12 @@
 },
 {
     "model": "documents.metadata",
-    "pk": "92fa129a-e147-46f0-9a98-400c78619844",
+    "pk": "793136d1-2407-4c05-8a4e-22ebf931a197",
     "fields": {
-        "element": "809a018e-3b3e-4ba0-9e10-7378df428f8b",
-        "name": "number",
+        "element": "842cd8c3-526c-46da-81a9-c033e9cc276c",
+        "name": "folio",
         "type": "text",
-        "value": "3",
+        "value": "1v",
         "entity": null,
         "worker_version": null,
         "worker_run": null
@@ -1629,12 +1629,12 @@
 },
 {
     "model": "documents.metadata",
-    "pk": "a5569b70-8f9a-4f21-83e6-de0841aeeb4b",
+    "pk": "a3577808-1f42-4eac-9a12-fbb95f4f700f",
     "fields": {
-        "element": "4bb67850-d7ba-459e-a106-b2cf48f9f6cb",
+        "element": "132bd0a4-51b3-409c-a794-790f98885c04",
         "name": "folio",
         "type": "text",
-        "value": "1v",
+        "value": "2r",
         "entity": null,
         "worker_version": null,
         "worker_run": null
@@ -1642,12 +1642,12 @@
 },
 {
     "model": "documents.metadata",
-    "pk": "a7b28339-a1e9-4d31-bf9d-a24296bb8105",
+    "pk": "a4820235-d5da-4e27-af57-b85b4659906e",
     "fields": {
-        "element": "76a56cff-9680-4c5a-8a01-53b43700b093",
-        "name": "folio",
+        "element": "4d1642e0-a456-4ea6-a0e7-d4190b85dd23",
+        "name": "number",
         "type": "text",
-        "value": "1v",
+        "value": "4",
         "entity": null,
         "worker_version": null,
         "worker_run": null
@@ -1655,12 +1655,12 @@
 },
 {
     "model": "documents.metadata",
-    "pk": "c17618a2-8b96-4b61-9361-1559540a4871",
+    "pk": "a75a0a28-f5aa-4332-b310-95d140893df4",
     "fields": {
-        "element": "590d69b1-95c8-4ba0-8617-9c0b022a4ba8",
-        "name": "folio",
+        "element": "659147b8-aa8d-430d-be80-bfb45abbc86c",
+        "name": "number",
         "type": "text",
-        "value": "1r",
+        "value": "3",
         "entity": null,
         "worker_version": null,
         "worker_run": null
@@ -1668,12 +1668,12 @@
 },
 {
     "model": "documents.metadata",
-    "pk": "d1c624a7-e32e-4473-ab71-d5c39e449a76",
+    "pk": "c1fc4c6b-aa35-40bb-aee7-1b2819accd9a",
     "fields": {
-        "element": "30211bbd-f970-46f2-8010-6a03afa219d4",
-        "name": "folio",
+        "element": "2d1dae06-f06e-4675-acb3-cf7d89d391f9",
+        "name": "number",
         "type": "text",
-        "value": "1r",
+        "value": "2",
         "entity": null,
         "worker_version": null,
         "worker_run": null
@@ -1696,12 +1696,12 @@
 },
 {
     "model": "images.image",
-    "pk": "0d4b917a-4b05-412e-9a32-78da2031dd70",
+    "pk": "651a1319-22d6-4bd6-a385-a64f0235228f",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
         "server": 1,
-        "path": "img4",
+        "path": "img5",
         "width": 1000,
         "height": 1000,
         "hash": null,
@@ -1710,12 +1710,12 @@
 },
 {
     "model": "images.image",
-    "pk": "6358303d-1167-489c-b456-2ad6f80b7909",
+    "pk": "ad2a47fa-c3a6-4b0a-9e35-44563187350e",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
         "server": 1,
-        "path": "img5",
+        "path": "img2",
         "width": 1000,
         "height": 1000,
         "hash": null,
@@ -1724,12 +1724,12 @@
 },
 {
     "model": "images.image",
-    "pk": "b6ac34ae-c245-4bf5-8c24-cee3b25a8498",
+    "pk": "b6d5c8c8-c27f-43a8-8edb-0cb287eda8b3",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
         "server": 1,
-        "path": "img1",
+        "path": "img3",
         "width": 1000,
         "height": 1000,
         "hash": null,
@@ -1738,12 +1738,12 @@
 },
 {
     "model": "images.image",
-    "pk": "da507478-8d0a-41d5-8ad7-5b062521e984",
+    "pk": "cf799a21-7bd2-45f5-a83d-272ee97d6b20",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
         "server": 1,
-        "path": "img2",
+        "path": "img6",
         "width": 1000,
         "height": 1000,
         "hash": null,
@@ -1752,12 +1752,12 @@
 },
 {
     "model": "images.image",
-    "pk": "e7b06b72-703b-45aa-9c91-12eba0f1e9d9",
+    "pk": "d8cc120e-fb8c-4057-a243-558a02213f54",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
         "server": 1,
-        "path": "img3",
+        "path": "img4",
         "width": 1000,
         "height": 1000,
         "hash": null,
@@ -1766,12 +1766,12 @@
 },
 {
     "model": "images.image",
-    "pk": "fa147dd6-f548-478d-a2ce-de54e28aeda9",
+    "pk": "f5fb4f00-ee17-4d71-8021-543bb01ba0bb",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
         "server": 1,
-        "path": "img6",
+        "path": "img1",
         "width": 1000,
         "height": 1000,
         "hash": null,
@@ -1780,56 +1780,56 @@
 },
 {
     "model": "users.right",
-    "pk": "552b002f-df32-4a69-ba96-cb55735c5c88",
+    "pk": "26a8c15c-32eb-49e7-9819-08a10e57163a",
     "fields": {
         "user": 2,
         "group": null,
         "content_type": 21,
-        "content_id": "b1be7812-a2b1-4d26-a031-8d85869228df",
+        "content_id": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
         "level": 100
     }
 },
 {
     "model": "users.right",
-    "pk": "a2e659c9-bb9e-4c5a-9667-44b393da48e0",
+    "pk": "4daf40a9-e44b-430c-9ad6-9a1bcf5e0296",
     "fields": {
-        "user": 4,
+        "user": 2,
         "group": null,
-        "content_type": 34,
-        "content_id": "3bb20c38-2a86-4504-be0f-e63e3b94d65b",
+        "content_type": 13,
+        "content_id": "787cc46d-2877-4cd7-8bac-f79d092d8550",
         "level": 10
     }
 },
 {
     "model": "users.right",
-    "pk": "de2d22ca-2dc3-4037-8048-f2344eeefd26",
+    "pk": "52a59192-b791-4e1a-b3f9-dcaca8bbf53a",
     "fields": {
-        "user": 2,
+        "user": 4,
         "group": null,
         "content_type": 34,
-        "content_id": "3bb20c38-2a86-4504-be0f-e63e3b94d65b",
-        "level": 100
+        "content_id": "7b55538f-262a-4d16-9abe-477d49bedce6",
+        "level": 10
     }
 },
 {
     "model": "users.right",
-    "pk": "e13f9b34-4e97-4f99-8453-65f29520e680",
+    "pk": "cae06f2d-dce3-4021-90a9-74164dd0bab2",
     "fields": {
         "user": 2,
         "group": null,
-        "content_type": 13,
-        "content_id": "f2a2e1cb-2090-4b69-b204-1a40440e2619",
-        "level": 10
+        "content_type": 34,
+        "content_id": "7b55538f-262a-4d16-9abe-477d49bedce6",
+        "level": 100
     }
 },
 {
     "model": "users.right",
-    "pk": "e2d2fa8c-3a28-4b9b-a93b-5fba3d9e7157",
+    "pk": "d11a61eb-7197-45af-8375-e3650b534b87",
     "fields": {
         "user": 3,
         "group": null,
         "content_type": 34,
-        "content_id": "3bb20c38-2a86-4504-be0f-e63e3b94d65b",
+        "content_id": "7b55538f-262a-4d16-9abe-477d49bedce6",
         "level": 50
     }
 },
@@ -1837,13 +1837,17 @@
     "model": "users.user",
     "pk": 1,
     "fields": {
-        "password": "pbkdf2_sha256$720000$35EvN3z9hMVfoshEvJCX17$HTH5LH72xqd/ym03bfkdq93US3a2MKqzicyei5/zZQI=",
+        "password": "pbkdf2_sha256$600000$0ZmfEB4W0Hf1ESgG3aWVuN$EZNx4llNwL0mi+Zdvw5O+1LRkELDgm0bYwMS8Jl82/4=",
         "last_login": null,
         "email": "root@root.fr",
         "display_name": "Admin",
         "is_active": true,
         "is_admin": true,
         "verified_email": true,
+        "can_upload_s3_image": false,
+        "can_create_iiif_image": false,
+        "can_ingest": false,
+        "can_create_worker_version": false,
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z"
     }
@@ -1852,13 +1856,17 @@
     "model": "users.user",
     "pk": 2,
     "fields": {
-        "password": "pbkdf2_sha256$720000$wmZ5ZDkcvtlXOcUgtAm6sv$Y1Wl6SzWPGbKEsLFBSuQ4snL7RsKdUQsrfFDTWQVIro=",
+        "password": "pbkdf2_sha256$600000$QJoEp6azwQAVJ3hRSIguj7$y7Sm+YYsgn9ihRQc0ILbfk5IQ9qJqJ3tDklHL3pBHaA=",
         "last_login": null,
         "email": "user@user.fr",
         "display_name": "Test user",
         "is_active": true,
         "is_admin": false,
         "verified_email": true,
+        "can_upload_s3_image": false,
+        "can_create_iiif_image": false,
+        "can_ingest": false,
+        "can_create_worker_version": false,
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z"
     }
@@ -1874,6 +1882,10 @@
         "is_active": true,
         "is_admin": false,
         "verified_email": true,
+        "can_upload_s3_image": false,
+        "can_create_iiif_image": false,
+        "can_ingest": false,
+        "can_create_worker_version": false,
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z"
     }
@@ -1889,13 +1901,17 @@
         "is_active": true,
         "is_admin": false,
         "verified_email": true,
+        "can_upload_s3_image": false,
+        "can_create_iiif_image": false,
+        "can_ingest": false,
+        "can_create_worker_version": false,
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z"
     }
 },
 {
     "model": "users.group",
-    "pk": "3bb20c38-2a86-4504-be0f-e63e3b94d65b",
+    "pk": "7b55538f-262a-4d16-9abe-477d49bedce6",
     "fields": {
         "name": "User group",
         "public": false,
@@ -3066,186 +3082,150 @@
 {
     "model": "auth.permission",
     "pk": 130,
-    "fields": {
-        "name": "Can add user scope",
-        "content_type": 36,
-        "codename": "add_userscope"
-    }
-},
-{
-    "model": "auth.permission",
-    "pk": 131,
-    "fields": {
-        "name": "Can change user scope",
-        "content_type": 36,
-        "codename": "change_userscope"
-    }
-},
-{
-    "model": "auth.permission",
-    "pk": 132,
-    "fields": {
-        "name": "Can delete user scope",
-        "content_type": 36,
-        "codename": "delete_userscope"
-    }
-},
-{
-    "model": "auth.permission",
-    "pk": 133,
-    "fields": {
-        "name": "Can view user scope",
-        "content_type": 36,
-        "codename": "view_userscope"
-    }
-},
-{
-    "model": "auth.permission",
-    "pk": 134,
     "fields": {
         "name": "Can add corpus worker version",
-        "content_type": 37,
+        "content_type": 36,
         "codename": "add_corpusworkerversion"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 135,
+    "pk": 131,
     "fields": {
         "name": "Can change corpus worker version",
-        "content_type": 37,
+        "content_type": 36,
         "codename": "change_corpusworkerversion"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 136,
+    "pk": 132,
     "fields": {
         "name": "Can delete corpus worker version",
-        "content_type": 37,
+        "content_type": 36,
         "codename": "delete_corpusworkerversion"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 137,
+    "pk": 133,
     "fields": {
         "name": "Can view corpus worker version",
-        "content_type": 37,
+        "content_type": 36,
         "codename": "view_corpusworkerversion"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 138,
+    "pk": 134,
     "fields": {
         "name": "Can add data file",
-        "content_type": 38,
+        "content_type": 37,
         "codename": "add_datafile"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 139,
+    "pk": 135,
     "fields": {
         "name": "Can change data file",
-        "content_type": 38,
+        "content_type": 37,
         "codename": "change_datafile"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 140,
+    "pk": 136,
     "fields": {
         "name": "Can delete data file",
-        "content_type": 38,
+        "content_type": 37,
         "codename": "delete_datafile"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 141,
+    "pk": 137,
     "fields": {
         "name": "Can view data file",
-        "content_type": 38,
+        "content_type": 37,
         "codename": "view_datafile"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 142,
+    "pk": 138,
     "fields": {
         "name": "Can add process",
-        "content_type": 39,
+        "content_type": 38,
         "codename": "add_process"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 143,
+    "pk": 139,
     "fields": {
         "name": "Can change process",
-        "content_type": 39,
+        "content_type": 38,
         "codename": "change_process"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 144,
+    "pk": 140,
     "fields": {
         "name": "Can delete process",
-        "content_type": 39,
+        "content_type": 38,
         "codename": "delete_process"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 145,
+    "pk": 141,
     "fields": {
         "name": "Can view process",
-        "content_type": 39,
+        "content_type": 38,
         "codename": "view_process"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 146,
+    "pk": 142,
     "fields": {
         "name": "Can add process element",
-        "content_type": 40,
+        "content_type": 39,
         "codename": "add_processelement"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 147,
+    "pk": 143,
     "fields": {
         "name": "Can change process element",
-        "content_type": 40,
+        "content_type": 39,
         "codename": "change_processelement"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 148,
+    "pk": 144,
     "fields": {
         "name": "Can delete process element",
-        "content_type": 40,
+        "content_type": 39,
         "codename": "delete_processelement"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 149,
+    "pk": 145,
     "fields": {
         "name": "Can view process element",
-        "content_type": 40,
+        "content_type": 39,
         "codename": "view_processelement"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 150,
+    "pk": 146,
     "fields": {
         "name": "Can add worker",
         "content_type": 2,
@@ -3254,7 +3234,7 @@
 },
 {
     "model": "auth.permission",
-    "pk": 151,
+    "pk": 147,
     "fields": {
         "name": "Can change worker",
         "content_type": 2,
@@ -3263,7 +3243,7 @@
 },
 {
     "model": "auth.permission",
-    "pk": 152,
+    "pk": 148,
     "fields": {
         "name": "Can delete worker",
         "content_type": 2,
@@ -3272,7 +3252,7 @@
 },
 {
     "model": "auth.permission",
-    "pk": 153,
+    "pk": 149,
     "fields": {
         "name": "Can view worker",
         "content_type": 2,
@@ -3281,487 +3261,487 @@
 },
 {
     "model": "auth.permission",
-    "pk": 154,
+    "pk": 150,
     "fields": {
         "name": "Can add worker activity",
-        "content_type": 41,
+        "content_type": 40,
         "codename": "add_workeractivity"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 155,
+    "pk": 151,
     "fields": {
         "name": "Can change worker activity",
-        "content_type": 41,
+        "content_type": 40,
         "codename": "change_workeractivity"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 156,
+    "pk": 152,
     "fields": {
         "name": "Can delete worker activity",
-        "content_type": 41,
+        "content_type": 40,
         "codename": "delete_workeractivity"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 157,
+    "pk": 153,
     "fields": {
         "name": "Can view worker activity",
-        "content_type": 41,
+        "content_type": 40,
         "codename": "view_workeractivity"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 158,
+    "pk": 154,
     "fields": {
         "name": "Can add worker configuration",
-        "content_type": 42,
+        "content_type": 41,
         "codename": "add_workerconfiguration"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 159,
+    "pk": 155,
     "fields": {
         "name": "Can change worker configuration",
-        "content_type": 42,
+        "content_type": 41,
         "codename": "change_workerconfiguration"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 160,
+    "pk": 156,
     "fields": {
         "name": "Can delete worker configuration",
-        "content_type": 42,
+        "content_type": 41,
         "codename": "delete_workerconfiguration"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 161,
+    "pk": 157,
     "fields": {
         "name": "Can view worker configuration",
-        "content_type": 42,
+        "content_type": 41,
         "codename": "view_workerconfiguration"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 162,
+    "pk": 158,
     "fields": {
         "name": "Can add worker type",
-        "content_type": 43,
+        "content_type": 42,
         "codename": "add_workertype"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 163,
+    "pk": 159,
     "fields": {
         "name": "Can change worker type",
-        "content_type": 43,
+        "content_type": 42,
         "codename": "change_workertype"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 164,
+    "pk": 160,
     "fields": {
         "name": "Can delete worker type",
-        "content_type": 43,
+        "content_type": 42,
         "codename": "delete_workertype"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 165,
+    "pk": 161,
     "fields": {
         "name": "Can view worker type",
-        "content_type": 43,
+        "content_type": 42,
         "codename": "view_workertype"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 166,
+    "pk": 162,
     "fields": {
         "name": "Can add worker version",
-        "content_type": 44,
+        "content_type": 43,
         "codename": "add_workerversion"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 167,
+    "pk": 163,
     "fields": {
         "name": "Can change worker version",
-        "content_type": 44,
+        "content_type": 43,
         "codename": "change_workerversion"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 168,
+    "pk": 164,
     "fields": {
         "name": "Can delete worker version",
-        "content_type": 44,
+        "content_type": 43,
         "codename": "delete_workerversion"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 169,
+    "pk": 165,
     "fields": {
         "name": "Can view worker version",
-        "content_type": 44,
+        "content_type": 43,
         "codename": "view_workerversion"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 170,
+    "pk": 166,
     "fields": {
         "name": "Can add worker run",
-        "content_type": 45,
+        "content_type": 44,
         "codename": "add_workerrun"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 171,
+    "pk": 167,
     "fields": {
         "name": "Can change worker run",
-        "content_type": 45,
+        "content_type": 44,
         "codename": "change_workerrun"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 172,
+    "pk": 168,
     "fields": {
         "name": "Can delete worker run",
-        "content_type": 45,
+        "content_type": 44,
         "codename": "delete_workerrun"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 173,
+    "pk": 169,
     "fields": {
         "name": "Can view worker run",
-        "content_type": 45,
+        "content_type": 44,
         "codename": "view_workerrun"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 174,
+    "pk": 170,
     "fields": {
         "name": "Can add process dataset set",
-        "content_type": 46,
+        "content_type": 45,
         "codename": "add_processdatasetset"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 175,
+    "pk": 171,
     "fields": {
         "name": "Can change process dataset set",
-        "content_type": 46,
+        "content_type": 45,
         "codename": "change_processdatasetset"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 176,
+    "pk": 172,
     "fields": {
         "name": "Can delete process dataset set",
-        "content_type": 46,
+        "content_type": 45,
         "codename": "delete_processdatasetset"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 177,
+    "pk": 173,
     "fields": {
         "name": "Can view process dataset set",
-        "content_type": 46,
+        "content_type": 45,
         "codename": "view_processdatasetset"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 178,
+    "pk": 174,
     "fields": {
         "name": "Can add dataset",
-        "content_type": 47,
+        "content_type": 46,
         "codename": "add_dataset"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 179,
+    "pk": 175,
     "fields": {
         "name": "Can change dataset",
-        "content_type": 47,
+        "content_type": 46,
         "codename": "change_dataset"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 180,
+    "pk": 176,
     "fields": {
         "name": "Can delete dataset",
-        "content_type": 47,
+        "content_type": 46,
         "codename": "delete_dataset"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 181,
+    "pk": 177,
     "fields": {
         "name": "Can view dataset",
-        "content_type": 47,
+        "content_type": 46,
         "codename": "view_dataset"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 182,
+    "pk": 178,
     "fields": {
         "name": "Can add metric key",
-        "content_type": 48,
+        "content_type": 47,
         "codename": "add_metrickey"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 183,
+    "pk": 179,
     "fields": {
         "name": "Can change metric key",
-        "content_type": 48,
+        "content_type": 47,
         "codename": "change_metrickey"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 184,
+    "pk": 180,
     "fields": {
         "name": "Can delete metric key",
-        "content_type": 48,
+        "content_type": 47,
         "codename": "delete_metrickey"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 185,
+    "pk": 181,
     "fields": {
         "name": "Can view metric key",
-        "content_type": 48,
+        "content_type": 47,
         "codename": "view_metrickey"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 186,
+    "pk": 182,
     "fields": {
         "name": "Can add model",
-        "content_type": 49,
+        "content_type": 48,
         "codename": "add_model"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 187,
+    "pk": 183,
     "fields": {
         "name": "Can change model",
-        "content_type": 49,
+        "content_type": 48,
         "codename": "change_model"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 188,
+    "pk": 184,
     "fields": {
         "name": "Can delete model",
-        "content_type": 49,
+        "content_type": 48,
         "codename": "delete_model"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 189,
+    "pk": 185,
     "fields": {
         "name": "Can view model",
-        "content_type": 49,
+        "content_type": 48,
         "codename": "view_model"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 190,
+    "pk": 186,
     "fields": {
         "name": "Can add model version",
-        "content_type": 50,
+        "content_type": 49,
         "codename": "add_modelversion"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 191,
+    "pk": 187,
     "fields": {
         "name": "Can change model version",
-        "content_type": 50,
+        "content_type": 49,
         "codename": "change_modelversion"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 192,
+    "pk": 188,
     "fields": {
         "name": "Can delete model version",
-        "content_type": 50,
+        "content_type": 49,
         "codename": "delete_modelversion"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 193,
+    "pk": 189,
     "fields": {
         "name": "Can view model version",
-        "content_type": 50,
+        "content_type": 49,
         "codename": "view_modelversion"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 194,
+    "pk": 190,
     "fields": {
         "name": "Can add metric value",
-        "content_type": 51,
+        "content_type": 50,
         "codename": "add_metricvalue"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 195,
+    "pk": 191,
     "fields": {
         "name": "Can change metric value",
-        "content_type": 51,
+        "content_type": 50,
         "codename": "change_metricvalue"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 196,
+    "pk": 192,
     "fields": {
         "name": "Can delete metric value",
-        "content_type": 51,
+        "content_type": 50,
         "codename": "delete_metricvalue"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 197,
+    "pk": 193,
     "fields": {
         "name": "Can view metric value",
-        "content_type": 51,
+        "content_type": 50,
         "codename": "view_metricvalue"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 198,
+    "pk": 194,
     "fields": {
         "name": "Can add dataset element",
-        "content_type": 52,
+        "content_type": 51,
         "codename": "add_datasetelement"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 199,
+    "pk": 195,
     "fields": {
         "name": "Can change dataset element",
-        "content_type": 52,
+        "content_type": 51,
         "codename": "change_datasetelement"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 200,
+    "pk": 196,
     "fields": {
         "name": "Can delete dataset element",
-        "content_type": 52,
+        "content_type": 51,
         "codename": "delete_datasetelement"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 201,
+    "pk": 197,
     "fields": {
         "name": "Can view dataset element",
-        "content_type": 52,
+        "content_type": 51,
         "codename": "view_datasetelement"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 202,
+    "pk": 198,
     "fields": {
         "name": "Can add dataset set",
-        "content_type": 53,
+        "content_type": 52,
         "codename": "add_datasetset"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 203,
+    "pk": 199,
     "fields": {
         "name": "Can change dataset set",
-        "content_type": 53,
+        "content_type": 52,
         "codename": "change_datasetset"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 204,
+    "pk": 200,
     "fields": {
         "name": "Can delete dataset set",
-        "content_type": 53,
+        "content_type": 52,
         "codename": "delete_datasetset"
     }
 },
 {
     "model": "auth.permission",
-    "pk": 205,
+    "pk": 201,
     "fields": {
         "name": "Can view dataset set",
-        "content_type": 53,
+        "content_type": 52,
         "codename": "view_datasetset"
     }
 },
 {
     "model": "ponos.farm",
-    "pk": "f2a2e1cb-2090-4b69-b204-1a40440e2619",
+    "pk": "787cc46d-2877-4cd7-8bac-f79d092d8550",
     "fields": {
         "name": "Wheat farm",
-        "seed": "c04bde99f4349c3c806e4e82dc60c42163fc3820a421ce82c4055d67ae4ec4bb"
+        "seed": "d90dfa09bb51171382a67d5390b643e7040e1a3d50aed2472889d2d45a0fc08a"
     }
 },
 {
     "model": "training.dataset",
-    "pk": "673cba70-7596-4a91-9921-49eebe97f63f",
+    "pk": "5661afe1-89ce-441c-b116-c9900831bf01",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
         "creator": 2,
         "task": null,
         "name": "First Dataset",
@@ -3772,11 +3752,11 @@
 },
 {
     "model": "training.dataset",
-    "pk": "da0300a9-55e5-4a0d-90a2-4fb42d0a4744",
+    "pk": "a89810dd-38a6-4fe0-81b8-870a2efd8340",
     "fields": {
         "created": "2020-02-02T01:23:45.678Z",
         "updated": "2020-02-02T01:23:45.678Z",
-        "corpus": "b1be7812-a2b1-4d26-a031-8d85869228df",
+        "corpus": "a5047c63-e91c-4cf1-9cd7-068bc3e1de9b",
         "creator": 2,
         "task": null,
         "name": "Second Dataset",
@@ -3787,50 +3767,50 @@
 },
 {
     "model": "training.datasetset",
-    "pk": "3cd3cbbd-6454-4977-814c-42fc1a4c858a",
+    "pk": "53a16c0f-7aee-4893-9063-f833255f5cd5",
     "fields": {
-        "name": "dev",
-        "dataset": "da0300a9-55e5-4a0d-90a2-4fb42d0a4744"
+        "name": "train",
+        "dataset": "5661afe1-89ce-441c-b116-c9900831bf01"
     }
 },
 {
     "model": "training.datasetset",
-    "pk": "3e1573e3-044b-47b0-b2b3-27eda5b4e441",
+    "pk": "8c29f873-54ad-4025-b871-0756aee654db",
     "fields": {
-        "name": "test",
-        "dataset": "673cba70-7596-4a91-9921-49eebe97f63f"
+        "name": "train",
+        "dataset": "a89810dd-38a6-4fe0-81b8-870a2efd8340"
     }
 },
 {
     "model": "training.datasetset",
-    "pk": "4454e41b-c60c-4d68-b428-d07c74af1f17",
+    "pk": "c59f3671-4b48-4d6d-a276-0aeef9f0918a",
     "fields": {
-        "name": "dev",
-        "dataset": "673cba70-7596-4a91-9921-49eebe97f63f"
+        "name": "test",
+        "dataset": "5661afe1-89ce-441c-b116-c9900831bf01"
     }
 },
 {
     "model": "training.datasetset",
-    "pk": "5333a80b-ff91-4a6b-9703-b26b8f472118",
+    "pk": "d40ac85f-2114-4c25-9ae6-20fe3b586199",
     "fields": {
-        "name": "test",
-        "dataset": "da0300a9-55e5-4a0d-90a2-4fb42d0a4744"
+        "name": "dev",
+        "dataset": "5661afe1-89ce-441c-b116-c9900831bf01"
     }
 },
 {
     "model": "training.datasetset",
-    "pk": "94c3d754-21ad-49e3-90d0-3874e54aa029",
+    "pk": "f7a6d650-b66d-49d7-895a-5ed5107cf6e2",
     "fields": {
-        "name": "train",
-        "dataset": "da0300a9-55e5-4a0d-90a2-4fb42d0a4744"
+        "name": "dev",
+        "dataset": "a89810dd-38a6-4fe0-81b8-870a2efd8340"
     }
 },
 {
     "model": "training.datasetset",
-    "pk": "d2e394b1-6a76-4b83-8966-392422317d2b",
+    "pk": "fe34e567-2cb8-4adf-87c5-fb5f59ccab4b",
     "fields": {
-        "name": "train",
-        "dataset": "673cba70-7596-4a91-9921-49eebe97f63f"
+        "name": "test",
+        "dataset": "a89810dd-38a6-4fe0-81b8-870a2efd8340"
     }
 }
 ]
diff --git a/arkindex/images/api.py b/arkindex/images/api.py
index cefedc15c8f8e61c0df28234564775432c5d190d..294283cc43f0b23490cf4402fac64033e54f17c7 100644
--- a/arkindex/images/api.py
+++ b/arkindex/images/api.py
@@ -16,8 +16,7 @@ from arkindex.images.serializers import (
     ImageSerializer,
     ImageUploadSerializer,
 )
-from arkindex.project.permissions import IsVerified
-from arkindex.users.models import Scope
+from arkindex.project.permissions import CanCreateIIIFImage, CanUploadS3Image, IsVerified
 
 
 @extend_schema_view(
@@ -47,8 +46,7 @@ class ImageCreate(CreateAPIView):
     """
 
     serializer_class = ImageUploadSerializer
-    permission_classes = (IsVerified, )
-    scopes = (Scope.UploadS3Image, )
+    permission_classes = (IsVerified, CanUploadS3Image,)
 
     def perform_create(self, serializer):
         image_hash = serializer.validated_data.get("hash")
@@ -78,8 +76,7 @@ class IIIFURLCreate(CreateAPIView):
     The URL should be of the image's identifier, not of its Image Information request (`/info.json`).
     """
     serializer_class = IIIFImageSerializer
-    permission_classes = (IsVerified, )
-    scopes = (Scope.CreateIIIFImage, )
+    permission_classes = (IsVerified, CanCreateIIIFImage, )
 
 
 class IIIFInformationCreate(CreateAPIView):
@@ -89,8 +86,7 @@ class IIIFInformationCreate(CreateAPIView):
     Image Information specification: https://iiif.io/api/image/2.1/#image-information
     """
     serializer_class = ImageInformationSerializer
-    permission_classes = (IsVerified, )
-    scopes = (Scope.CreateIIIFImage, )
+    permission_classes = (IsVerified, CanCreateIIIFImage, )
 
     @extend_schema(
         operation_id="CreateIIIFInformation",
diff --git a/arkindex/images/tests/test_image_api.py b/arkindex/images/tests/test_image_api.py
index f54a8b443e2c457408dea56d6c0b800972f36c51..ccac55f3bc20401ec1bc4286fdc5454d009cebcb 100644
--- a/arkindex/images/tests/test_image_api.py
+++ b/arkindex/images/tests/test_image_api.py
@@ -11,7 +11,6 @@ from arkindex.ponos.models import Farm
 from arkindex.process.models import Process, ProcessMode
 from arkindex.project.aws import S3FileStatus
 from arkindex.project.tests import FixtureAPITestCase
-from arkindex.users.models import Scope
 
 
 class ImageMethods:
@@ -43,24 +42,24 @@ class TestImageApi(FixtureAPITestCase):
             self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
 
     def test_create_image_requires_scope(self):
-        self.assertFalse(self.user.user_scopes.filter(scope=Scope.UploadS3Image).exists())
+        self.assertFalse(self.user.can_upload_s3_image)
         self.client.force_login(self.user)
 
-        with self.assertNumQueries(3):
+        with self.assertNumQueries(2):
             response = self.client.post(reverse("api:image-create"), {"hash": self.image_hash})
             self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
 
         self.assertDictEqual(response.json(), {
-            "detail": "You do not have permission to perform this action.",
-            "missing_scopes": [Scope.UploadS3Image.value],
+            "detail": "You do not have permission to upload images to S3.",
         })
 
-        self.user.user_scopes.create(scope=Scope.UploadS3Image)
+        self.user.can_upload_s3_image = True
+        self.user.save()
         response = self.client.post(reverse("api:image-create"), {"hash": self.image_hash})
         self.assertEqual(response.status_code, status.HTTP_201_CREATED)
 
     def test_create_image_admin_noscope(self):
-        self.assertFalse(self.superuser.user_scopes.filter(scope=Scope.UploadS3Image).exists())
+        self.assertFalse(self.superuser.can_upload_s3_image)
         self.client.force_login(self.superuser)
 
         with self.assertNumQueries(5):
@@ -487,7 +486,7 @@ class TestImageApi(FixtureAPITestCase):
         })
 
     def test_create_iiif_image_scope(self):
-        self.assertFalse(self.user.user_scopes.filter(scope=Scope.CreateIIIFImage).exists())
+        self.assertFalse(self.user.can_create_iiif_image)
         self.client.force_login(self.user)
         response = self.client.post(
             reverse("api:iiif-url-create"),
@@ -495,11 +494,11 @@ class TestImageApi(FixtureAPITestCase):
         )
         self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
         self.assertDictEqual(response.json(), {
-            "detail": "You do not have permission to perform this action.",
-            "missing_scopes": [Scope.CreateIIIFImage.value],
+            "detail": "You do not have permission to create IIIF images.",
         })
 
-        self.user.user_scopes.create(scope=Scope.CreateIIIFImage)
+        self.user.can_create_iiif_image = True
+        self.user.save()
         response = self.client.post(
             reverse("api:iiif-url-create"),
             {"url": "https://test-iiif-server.teklia.com/images/image_path"}
@@ -509,7 +508,7 @@ class TestImageApi(FixtureAPITestCase):
 
     def test_create_iiif_image_admin_noscope(self):
         self.client.force_login(self.superuser)
-        self.assertFalse(self.superuser.user_scopes.filter(scope=Scope.CreateIIIFImage).exists())
+        self.assertFalse(self.superuser.can_create_iiif_image)
         response = self.client.post(
             reverse("api:iiif-url-create"),
             {"url": "https://test-iiif-server.teklia.com/images/image_path"}
@@ -616,7 +615,7 @@ class TestImageApi(FixtureAPITestCase):
         process.run()
         task = process.tasks.first()
         # The user scope should not be necessary with Ponos task authentication
-        self.assertFalse(self.user.user_scopes.filter(scope=Scope.CreateIIIFImage).exists())
+        self.assertFalse(self.user.can_create_iiif_image)
 
         response = self.client.post(
             reverse("api:iiif-info-create"),
@@ -663,7 +662,7 @@ class TestImageApi(FixtureAPITestCase):
         process.run()
         task = process.tasks.first()
         # The user scope should not be necessary with Ponos task authentication
-        self.assertFalse(self.user.user_scopes.filter(scope=Scope.CreateIIIFImage).exists())
+        self.assertFalse(self.user.can_create_iiif_image)
 
         response = self.client.post(
             reverse("api:iiif-info-create"),
@@ -695,7 +694,7 @@ class TestImageApi(FixtureAPITestCase):
         })
 
     def test_create_image_information_external_scope(self):
-        self.assertFalse(self.user.user_scopes.filter(scope=Scope.CreateIIIFImage).exists())
+        self.assertFalse(self.user.can_create_iiif_image)
         self.client.force_login(self.user)
         payload = {
             "@id": "https://test-iiif-server.teklia.com/images/image_path",
@@ -706,7 +705,8 @@ class TestImageApi(FixtureAPITestCase):
         response = self.client.post(reverse("api:iiif-info-create"), payload)
         self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
 
-        self.user.user_scopes.create(scope=Scope.CreateIIIFImage)
+        self.user.can_create_iiif_image = True
+        self.user.save()
         response = self.client.post(reverse("api:iiif-info-create"), payload)
         self.assertEqual(response.status_code, status.HTTP_201_CREATED)
         data = response.json()
diff --git a/arkindex/process/api.py b/arkindex/process/api.py
index e7c63d12b24a3c90a89aaa1eaea179bd5f4033b8..16785a67196128859cc07a68414ed955f617b13c 100644
--- a/arkindex/process/api.py
+++ b/arkindex/process/api.py
@@ -112,11 +112,11 @@ from arkindex.project.mixins import (
 )
 from arkindex.project.openapi import UUID_OR_FALSE, UUID_OR_STR
 from arkindex.project.pagination import CountCursorPagination
-from arkindex.project.permissions import IsVerified, IsVerifiedOrReadOnly
+from arkindex.project.permissions import CanIngest, IsVerified, IsVerifiedOrReadOnly
 from arkindex.project.tools import PercentileCont
 from arkindex.project.triggers import create_process_failures, process_delete
 from arkindex.training.models import DatasetSet, Model
-from arkindex.users.models import Role, Scope
+from arkindex.users.models import Role
 
 logger = logging.getLogger(__name__)
 
@@ -2078,8 +2078,7 @@ class BucketList(ListAPIView):
     List the S3 buckets that are available for ingestion.
     """
 
-    permission_classes = (IsVerified, )
-    scopes = (Scope.S3Ingest, )
+    permission_classes = (IsVerified, CanIngest, )
     pagination_class = None
     serializer_class = BucketSerializer
 
@@ -2112,11 +2111,10 @@ class S3ImportCreate(CreateAPIView):
     """
     Create a new S3 import.
 
-    Requires a verified email and the `s3_ingest` scope.
+    Requires a verified email and the `can_ingest` permission.
     """
 
-    permission_classes = (IsVerified, )
-    scopes = (Scope.S3Ingest, )
+    permission_classes = (IsVerified, CanIngest, )
     serializer_class = S3ImportSerializer
 
     def check_permissions(self, *args, **kwargs):
diff --git a/arkindex/process/tests/test_create_s3_import.py b/arkindex/process/tests/test_create_s3_import.py
index 9750b1ca9e6a92367006c0d18c5d2949f4e6d400..013ea9c592b804fb4997f333574aaddf5912690f 100644
--- a/arkindex/process/tests/test_create_s3_import.py
+++ b/arkindex/process/tests/test_create_s3_import.py
@@ -9,7 +9,7 @@ from arkindex.images.models import ImageServer
 from arkindex.ponos.models import Farm
 from arkindex.process.models import Process, ProcessMode, Worker, WorkerType, WorkerVersion, WorkerVersionState
 from arkindex.project.tests import FixtureTestCase
-from arkindex.users.models import Role, Scope
+from arkindex.users.models import Role
 
 
 class TestCreateS3Import(FixtureTestCase):
@@ -64,7 +64,7 @@ class TestCreateS3Import(FixtureTestCase):
 
     @override_settings(ARKINDEX_FEATURES={"ingest": True})
     def test_requires_verified(self):
-        self.user.user_scopes.create(scope=Scope.S3Ingest)
+        self.user.can_ingest = True
         self.user.verified_email = False
         self.user.save()
         self.client.force_login(self.user)
@@ -80,9 +80,9 @@ class TestCreateS3Import(FixtureTestCase):
 
     @override_settings(ARKINDEX_FEATURES={"ingest": True})
     def test_requires_scope(self):
-        self.assertFalse(self.user.user_scopes.exists())
+        self.assertFalse(self.user.can_ingest)
         self.client.force_login(self.user)
-        with self.assertNumQueries(3):
+        with self.assertNumQueries(2):
             response = self.client.post(reverse("api:s3-import-create"), {
                 "corpus_id": str(self.corpus.id),
                 "folder_type": "volume",
@@ -96,7 +96,8 @@ class TestCreateS3Import(FixtureTestCase):
     @patch("arkindex.users.managers.BaseACLManager.filter_rights")
     def test_invalid(self, filter_rights_mock):
         filter_rights_mock.return_value = Corpus.objects.filter(id=self.corpus.id)
-        self.user.user_scopes.create(scope=Scope.S3Ingest)
+        self.user.can_ingest = True
+        self.user.save()
         self.client.force_login(self.user)
         private_corpus = Corpus.objects.create(name="nope")
         private_element = private_corpus.elements.create(type=private_corpus.types.create(slug="something"), name="can't touch this")
@@ -167,12 +168,13 @@ class TestCreateS3Import(FixtureTestCase):
         INGEST_PREFIX_BY_BUCKET_NAME=True,
     )
     def test_create(self):
-        self.user.user_scopes.create(scope=Scope.S3Ingest)
+        self.user.can_ingest = True
+        self.user.save()
         self.client.force_login(self.user)
         element = self.corpus.elements.get(name="Volume 1")
         farm = Farm.objects.create(name="Crypto farm")
 
-        with self.assertNumQueries(25):
+        with self.assertNumQueries(24):
             response = self.client.post(reverse("api:s3-import-create"), {
                 "corpus_id": str(self.corpus.id),
                 "element_id": str(element.id),
@@ -234,10 +236,11 @@ class TestCreateS3Import(FixtureTestCase):
         INGEST_PREFIX_BY_BUCKET_NAME=True,
     )
     def test_defaults(self):
-        self.user.user_scopes.create(scope=Scope.S3Ingest)
+        self.user.can_ingest = True
+        self.user.save()
         self.client.force_login(self.user)
 
-        with self.assertNumQueries(23):
+        with self.assertNumQueries(22):
             response = self.client.post(reverse("api:s3-import-create"), {
                 "corpus_id": str(self.corpus.id),
                 "bucket_name": "blah",
@@ -288,12 +291,13 @@ class TestCreateS3Import(FixtureTestCase):
     )
     @patch("arkindex.ponos.models.Farm.is_available", return_value=False)
     def test_farm_guest(self, is_available_mock):
-        self.user.user_scopes.create(scope=Scope.S3Ingest)
+        self.user.can_ingest = True
+        self.user.save()
         self.client.force_login(self.user)
 
         farm = Farm.objects.create(name="Crypto farm")
 
-        with self.assertNumQueries(5):
+        with self.assertNumQueries(4):
             response = self.client.post(reverse("api:s3-import-create"), {
                 "corpus_id": str(self.corpus.id),
                 "bucket_name": "blah",
@@ -316,13 +320,14 @@ class TestCreateS3Import(FixtureTestCase):
     )
     @patch("arkindex.process.serializers.ingest.get_default_farm")
     def test_default_farm(self, get_default_farm_mock):
-        self.user.user_scopes.create(scope=Scope.S3Ingest)
+        self.user.can_ingest = True
+        self.user.save()
         self.client.force_login(self.user)
 
         default_farm = Farm.objects.create(name="Crypto farm")
         get_default_farm_mock.return_value = default_farm
 
-        with self.assertNumQueries(23):
+        with self.assertNumQueries(22):
             response = self.client.post(reverse("api:s3-import-create"), {
                 "corpus_id": str(self.corpus.id),
                 "bucket_name": "blah",
@@ -339,13 +344,14 @@ class TestCreateS3Import(FixtureTestCase):
     @patch("arkindex.ponos.models.Farm.is_available", return_value=False)
     @patch("arkindex.process.serializers.ingest.get_default_farm")
     def test_default_farm_guest(self, get_default_farm_mock, is_available_mock):
-        self.user.user_scopes.create(scope=Scope.S3Ingest)
+        self.user.can_ingest = True
+        self.user.save()
         self.client.force_login(self.user)
 
         default_farm = Farm.objects.create(name="Crypto farm")
         get_default_farm_mock.return_value = default_farm
 
-        with self.assertNumQueries(4):
+        with self.assertNumQueries(3):
             response = self.client.post(reverse("api:s3-import-create"), {
                 "corpus_id": str(self.corpus.id),
                 "bucket_name": "blah",
diff --git a/arkindex/process/tests/test_list_buckets.py b/arkindex/process/tests/test_list_buckets.py
index 284af96d7b76dc262fcdc588e9ec8ab6de932ac5..41b2c789afc67cfaa6eac310a4592c697933e3ad 100644
--- a/arkindex/process/tests/test_list_buckets.py
+++ b/arkindex/process/tests/test_list_buckets.py
@@ -4,7 +4,6 @@ from django.urls import reverse
 from rest_framework import status
 
 from arkindex.project.tests import FixtureAPITestCase
-from arkindex.users.models import Scope
 from moto import mock_s3
 
 
@@ -28,8 +27,8 @@ class TestListBuckets(FixtureAPITestCase):
     @override_settings(ARKINDEX_FEATURES={"ingest": True})
     def test_requires_verified(self):
         self.user.verified_email = False
+        self.user.can_ingest = True
         self.user.save()
-        self.user.user_scopes.create(scope=Scope.S3Ingest)
         self.client.force_login(self.user)
 
         with self.assertNumQueries(2):
@@ -38,10 +37,10 @@ class TestListBuckets(FixtureAPITestCase):
 
     @override_settings(ARKINDEX_FEATURES={"ingest": True})
     def test_requires_scope(self):
-        self.assertFalse(self.user.user_scopes.exists())
+        self.assertFalse(self.user.can_ingest)
         self.client.force_login(self.user)
 
-        with self.assertNumQueries(3):
+        with self.assertNumQueries(2):
             resp = self.client.get(reverse("api:bucket-list"))
             self.assertEqual(resp.status_code, status.HTTP_403_FORBIDDEN)
 
@@ -53,9 +52,10 @@ class TestListBuckets(FixtureAPITestCase):
         INGEST_S3_REGION=None,
     )
     def test_missing_settings(self):
-        self.user.user_scopes.create(scope=Scope.S3Ingest)
+        self.user.can_ingest = True
+        self.user.save()
         self.client.force_login(self.user)
-        with self.assertNumQueries(3), self.assertRaises(AssertionError):
+        with self.assertNumQueries(2), self.assertRaises(AssertionError):
             self.client.get(reverse("api:bucket-list"))
 
     @override_settings(
@@ -68,7 +68,8 @@ class TestListBuckets(FixtureAPITestCase):
     )
     @mock_s3
     def test_list_buckets(self):
-        self.user.user_scopes.create(scope=Scope.S3Ingest)
+        self.user.can_ingest = True
+        self.user.save()
         self.client.force_login(self.user)
 
         # Create some buckets with moto to get some test data
@@ -76,7 +77,7 @@ class TestListBuckets(FixtureAPITestCase):
         s3.create_bucket(Bucket="dank-memes")
         s3.create_bucket(Bucket="cursed-emojis")
 
-        with self.assertNumQueries(3):
+        with self.assertNumQueries(2):
             resp = self.client.get(reverse("api:bucket-list"))
             self.assertEqual(resp.status_code, status.HTTP_200_OK)
 
@@ -98,14 +99,15 @@ class TestListBuckets(FixtureAPITestCase):
     )
     @mock_s3
     def test_list_buckets_extra(self):
-        self.user.user_scopes.create(scope=Scope.S3Ingest)
+        self.user.can_ingest = True
+        self.user.save()
         self.client.force_login(self.user)
 
         s3 = boto3.resource("s3", region_name="us-east-1")
         s3.create_bucket(Bucket="dank-memes")
         s3.create_bucket(Bucket="cursed-emojis")
 
-        with self.assertNumQueries(3):
+        with self.assertNumQueries(2):
             resp = self.client.get(reverse("api:bucket-list"))
             self.assertEqual(resp.status_code, status.HTTP_200_OK)
 
diff --git a/arkindex/project/permissions.py b/arkindex/project/permissions.py
index ee36346dcc7e4665aa298be8b715c699d2de75f8..7724a7fbc5669d3bdd1003f80af78f8651f8ca67 100644
--- a/arkindex/project/permissions.py
+++ b/arkindex/project/permissions.py
@@ -1,4 +1,5 @@
 import logging
+from functools import wraps
 
 from rest_framework.exceptions import PermissionDenied
 from rest_framework.permissions import SAFE_METHODS, BasePermission
@@ -16,36 +17,43 @@ def require_verified_email(request, view):
     return request.user.is_authenticated and (request.user.is_admin or request.user.verified_email)
 
 
-def _get_scopes(request, view):
-    specific_scopes_attr = f"{request.method.lower()}_scopes"
-    scopes = list(getattr(view, "scopes", []))
-    scopes.extend(getattr(view, specific_scopes_attr, []))
-    return set(scopes)
-
-
-def check_scopes(request, view):
+def scope_check_skips(func):
     """
-    When the `scopes` attribute is defined on the view, ensure an authenticated user has said scopes,
-    no matter which HTTP method is used.
-    When the `<method>_scopes` attribute is defined for a given HTTP method, ensures the user
-    has said scopes only for this HTTP method.
+    Decorator to skip scope checks if the user is not logged in, is an admin, or is a Ponos task.
     """
-    missing_scopes = _get_scopes(request, view)
-    # Skip this check if there are no defined scopes, if the user is not logged in, is an admin, or is a Ponos task.
-    if not missing_scopes or not request.user.is_authenticated or request.user.is_admin or isinstance(request.auth, Task):
-        return True
+    @wraps(func)
+    def wrapper(request, *args, **kwargs):
+        if not request.user.is_authenticated or request.user.is_admin or isinstance(request.auth, Task):
+            return True
+        return func(request, *args, **kwargs)
+    return wrapper
+
+
+@scope_check_skips
+def require_can_upload_s3_image(request, view):
+    if not request.user.can_upload_s3_image:
+        raise PermissionDenied("You do not have permission to upload images to S3.")
+    return True
+
+
+@scope_check_skips
+def require_can_create_iiif_image(request, view):
+    if not request.user.can_create_iiif_image:
+        raise PermissionDenied("You do not have permission to create IIIF images.")
+    return True
 
-    if request.user.is_authenticated:
-        # Tell which scopes are missing by subtracting found scopes from the expected scopes
-        missing_scopes -= set(request.user.user_scopes.filter(scope__in=missing_scopes).values_list("scope", flat=True))
 
-    if missing_scopes:
-        # If scopes are not matched, cause a custom error
-        raise PermissionDenied({
-            "detail": PermissionDenied.default_detail,
-            "missing_scopes": [scope.value for scope in missing_scopes],
-        })
+@scope_check_skips
+def require_can_ingest(request, view):
+    if not request.user.can_ingest:
+        raise PermissionDenied("You do not have permission to access S3 ingestion features.")
+    return True
+
 
+@scope_check_skips
+def require_can_create_worker_version(request, view):
+    if not request.user.can_create_worker_version:
+        raise PermissionDenied("You do not have permission to create worker versions.")
     return True
 
 
@@ -76,7 +84,7 @@ class ArkindexPermission(BasePermission):
 
 
 class IsAuthenticated(ArkindexPermission):
-    checks = (require_auth, check_scopes)
+    checks = (require_auth, )
 
 
 class IsAuthenticatedOrReadOnly(IsAuthenticated):
@@ -84,8 +92,24 @@ class IsAuthenticatedOrReadOnly(IsAuthenticated):
 
 
 class IsVerified(ArkindexPermission):
-    checks = (require_verified_email, check_scopes)
+    checks = (require_verified_email, )
 
 
 class IsVerifiedOrReadOnly(IsVerified):
     allow_safe_methods = True
+
+
+class CanUploadS3Image(ArkindexPermission):
+    checks = (require_can_upload_s3_image, )
+
+
+class CanCreateIIIFImage(ArkindexPermission):
+    checks = (require_can_create_iiif_image, )
+
+
+class CanCreateWorkerVersion(ArkindexPermission):
+    checks = (require_can_create_worker_version, )
+
+
+class CanIngest(ArkindexPermission):
+    checks = (require_can_ingest, )
diff --git a/arkindex/sql_validation/process_elements_filter_ml_class.sql b/arkindex/sql_validation/process_elements_filter_ml_class.sql
index 318cdd913b1399724a575704732ccb0c76afbe1f..b680823edc4cc2fed53061f6abd65123f26ad331 100644
--- a/arkindex/sql_validation/process_elements_filter_ml_class.sql
+++ b/arkindex/sql_validation/process_elements_filter_ml_class.sql
@@ -6,6 +6,10 @@ SELECT "users_user"."id",
        "users_user"."is_active",
        "users_user"."is_admin",
        "users_user"."verified_email",
+       "users_user"."can_upload_s3_image",
+       "users_user"."can_create_iiif_image",
+       "users_user"."can_ingest",
+       "users_user"."can_create_worker_version",
        "users_user"."created",
        "users_user"."updated"
 FROM "users_user"
diff --git a/arkindex/sql_validation/process_elements_filter_type.sql b/arkindex/sql_validation/process_elements_filter_type.sql
index 3fea7de04dc149a31f8d1c6a47d2b4945830f11f..ca208bed06c51f80eaed26584084e3d7b01e63cb 100644
--- a/arkindex/sql_validation/process_elements_filter_type.sql
+++ b/arkindex/sql_validation/process_elements_filter_type.sql
@@ -6,6 +6,10 @@ SELECT "users_user"."id",
        "users_user"."is_active",
        "users_user"."is_admin",
        "users_user"."verified_email",
+       "users_user"."can_upload_s3_image",
+       "users_user"."can_create_iiif_image",
+       "users_user"."can_ingest",
+       "users_user"."can_create_worker_version",
        "users_user"."created",
        "users_user"."updated"
 FROM "users_user"
diff --git a/arkindex/sql_validation/process_elements_top_level.sql b/arkindex/sql_validation/process_elements_top_level.sql
index 04772b592ca42056d982cf73a51feca393a98dc0..2aa70b65dde851da6384b826ffe39d2ad4a4e927 100644
--- a/arkindex/sql_validation/process_elements_top_level.sql
+++ b/arkindex/sql_validation/process_elements_top_level.sql
@@ -6,6 +6,11 @@ SELECT "users_user"."id",
        "users_user"."is_active",
        "users_user"."is_admin",
        "users_user"."verified_email",
+       "users_user"."can_upload_s3_image",
+       "users_user"."can_create_iiif_image",
+       "users_user"."can_ingest",
+       "users_user"."can_create_worker_version",
+
        "users_user"."created",
        "users_user"."updated"
 FROM "users_user"
diff --git a/arkindex/sql_validation/process_elements_with_image.sql b/arkindex/sql_validation/process_elements_with_image.sql
index 9bdfca2670c0e186fadeab1524bdcb757338acb7..46b90514e11c8f382c93fe7f091812b14cd7457c 100644
--- a/arkindex/sql_validation/process_elements_with_image.sql
+++ b/arkindex/sql_validation/process_elements_with_image.sql
@@ -6,6 +6,10 @@ SELECT "users_user"."id",
        "users_user"."is_active",
        "users_user"."is_admin",
        "users_user"."verified_email",
+       "users_user"."can_upload_s3_image",
+       "users_user"."can_create_iiif_image",
+       "users_user"."can_ingest",
+       "users_user"."can_create_worker_version",
        "users_user"."created",
        "users_user"."updated"
 FROM "users_user"
diff --git a/arkindex/users/admin.py b/arkindex/users/admin.py
index a50a388cf896b6d984f81d4871f161c8a73252c7..893e19f291ced573c03d1cf6e7c8753cfc123356 100644
--- a/arkindex/users/admin.py
+++ b/arkindex/users/admin.py
@@ -4,9 +4,8 @@ from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
 from django.contrib.auth.forms import ReadOnlyPasswordHashField
 from django.contrib.auth.models import Group as BaseGroup
 from django.db.models.functions import Collate
-from enumfields.admin import EnumFieldListFilter
 
-from arkindex.users.models import User, UserScope
+from arkindex.users.models import User
 
 
 class UserCreationForm(forms.ModelForm):
@@ -66,7 +65,7 @@ class UserAdmin(BaseUserAdmin):
     list_filter = ("is_admin", )
     fieldsets = (
         (None, {"fields": ("email", "display_name", "verified_email", "password")}),
-        ("Permissions", {"fields": ("is_admin", "is_active")}),
+        ("Permissions", {"fields": ("is_admin", "is_active", "can_upload_s3_image", "can_create_iiif_image", "can_ingest", "can_create_worker_version")}),
     )
     # add_fieldsets is not a standard ModelAdmin attribute. UserAdmin
     # overrides get_fieldsets to use this attribute when creating a user.
@@ -89,12 +88,6 @@ class UserAdmin(BaseUserAdmin):
         return qs.annotate(searchable_email=Collate("email", "default"))
 
 
-class UserScopeAdmin(admin.ModelAdmin):
-    list_display = ("user", "scope")
-    list_filter = [("scope", EnumFieldListFilter), ]
-
-
 admin.site.register(User, UserAdmin)
-admin.site.register(UserScope, UserScopeAdmin)
 # Remove the admin page for the default Django groups
 admin.site.unregister(BaseGroup)
diff --git a/arkindex/users/migrations/0001_initial.py b/arkindex/users/migrations/0001_initial.py
index f21fb4f20d4eaed11cd57f572de50ab20a1cec41..16b6e68972ccd80627f0026d9e977334000ae0b9 100644
--- a/arkindex/users/migrations/0001_initial.py
+++ b/arkindex/users/migrations/0001_initial.py
@@ -10,8 +10,6 @@ from django.contrib.postgres.operations import CreateCollation
 from django.db import migrations, models
 from enumfields import Enum
 
-import arkindex.users.models
-
 
 class OAuthStatus(Enum):
     Created = "created"
@@ -19,6 +17,13 @@ class OAuthStatus(Enum):
     Error = "error"
 
 
+class Scope(Enum):
+    UploadS3Image = "upload_s3_image"
+    CreateIIIFImage = "create_iiif_image"
+    S3Ingest = "s3_ingest"
+    CreateDockerWorkerVersion = "create_docker_worker_version"
+
+
 class Migration(migrations.Migration):
 
     initial = True
@@ -93,7 +98,7 @@ class Migration(migrations.Migration):
             name="UserScope",
             fields=[
                 ("id", models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")),
-                ("scope", enumfields.fields.EnumField(enum=arkindex.users.models.Scope, max_length=50)),
+                ("scope", enumfields.fields.EnumField(enum=Scope, max_length=50)),
                 ("user", models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name="user_scopes", to=settings.AUTH_USER_MODEL)),
             ],
             options={
diff --git a/arkindex/users/migrations/0004_user_scopes.py b/arkindex/users/migrations/0004_user_scopes.py
new file mode 100644
index 0000000000000000000000000000000000000000..a349f802fcf8d4063a62b28e09e0e8e05783c94d
--- /dev/null
+++ b/arkindex/users/migrations/0004_user_scopes.py
@@ -0,0 +1,83 @@
+# Generated by Django 4.2.13 on 2024-08-26 08:48
+
+from django.db import migrations, models
+from django.db.models import Exists, OuterRef
+from enumfields import Enum, EnumField
+
+
+class Scope(Enum):
+    UploadS3Image = "upload_s3_image"
+    CreateIIIFImage = "create_iiif_image"
+    S3Ingest = "s3_ingest"
+    CreateDockerWorkerVersion = "create_docker_worker_version"
+
+def create_user_scope_booleans(apps, schema):
+    UserScope = apps.get_model("users", "UserScope")
+    User = apps.get_model("users", "User")
+
+    User.objects.all().update(
+        can_create_iiif_image=Exists(UserScope.objects.filter(user_id=OuterRef("pk"), scope=Scope.CreateIIIFImage)),
+        can_create_worker_version=Exists(UserScope.objects.filter(user_id=OuterRef("pk"), scope=Scope.CreateDockerWorkerVersion)),
+        can_ingest=Exists(UserScope.objects.filter(user_id=OuterRef("pk"), scope=Scope.S3Ingest)),
+        can_upload_s3_image=Exists(UserScope.objects.filter(user_id=OuterRef("pk"), scope=Scope.UploadS3Image)),
+    )
+
+def create_user_scopes(apps, schema):
+    UserScope = apps.get_model("users", "UserScope")
+    User = apps.get_model("users", "User")
+
+    scope_matching = [
+        ("can_upload_s3_image", Scope.UploadS3Image),
+        ("can_create_iiif_image", Scope.CreateIIIFImage),
+        ("can_ingest", Scope.S3Ingest),
+        ("can_create_worker_version", Scope.CreateDockerWorkerVersion)
+    ]
+
+    UserScope.objects.bulk_create(
+        [
+            UserScope(user_id=user.id, scope=scope)
+            for user in User.objects.iterator()
+            for scope_attr, scope in scope_matching
+            if getattr(user, scope_attr)
+        ]
+    )
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("users", "0003_delete_oauthcredentials"),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name="user",
+            name="can_create_iiif_image",
+            field=models.BooleanField(default=False, help_text="Allows adding images to Arkindex from external IIIF servers using the CreateIIIFImage endpoint.\nThis could allow someone to make Arkindex perform DoS attacks on other IIIF servers due to the image checks."),
+        ),
+        migrations.AddField(
+            model_name="user",
+            name="can_create_worker_version",
+            field=models.BooleanField(default=False, help_text="Allows creating workers and worker versions from Docker images."),
+        ),
+        migrations.AddField(
+            model_name="user",
+            name="can_ingest",
+            field=models.BooleanField(default=False, help_text="Allows access to S3 ingestion features."),
+        ),
+        migrations.AddField(
+            model_name="user",
+            name="can_upload_s3_image",
+            field=models.BooleanField(default=False, help_text="Allows uploading images to an S3 bucket using the CreateImage endpoint and `s3_put_url`.\nThis could allow someone to upload very large files or make DoS attacks on the local IIIF image server."),
+        ),
+        migrations.AlterField(
+            model_name="userscope",
+            name="scope",
+            field=EnumField(enum=Scope, max_length=50),
+        ),
+        migrations.RunPython(
+            create_user_scope_booleans,
+            reverse_code=create_user_scopes,
+            elidable=False
+        ),
+        migrations.DeleteModel(name="UserScope")
+    ]
diff --git a/arkindex/users/models.py b/arkindex/users/models.py
index 47552f0f3793b8199de5f90f61015a0538b2d354..f3feccbf772dc05c048be7e498c9aebdc2830598 100644
--- a/arkindex/users/models.py
+++ b/arkindex/users/models.py
@@ -1,4 +1,5 @@
 import uuid
+from textwrap import dedent
 
 from django.conf import settings
 from django.contrib.auth.models import AbstractBaseUser
@@ -7,7 +8,7 @@ from django.contrib.contenttypes.models import ContentType
 from django.core.validators import MaxValueValidator, MinValueValidator
 from django.db import models
 from django_rq.queues import get_queue
-from enumfields import Enum, EnumField
+from enumfields import Enum
 from rq.utils import as_text
 
 from arkindex.users.managers import UserManager
@@ -79,6 +80,17 @@ class User(AbstractBaseUser):
     is_admin = models.BooleanField(default=False)
     verified_email = models.BooleanField(default=False)
 
+    can_upload_s3_image = models.BooleanField(default=False, help_text=dedent("""
+        Allows uploading images to an S3 bucket using the CreateImage endpoint and `s3_put_url`.
+        This could allow someone to upload very large files or make DoS attacks on the local IIIF image server.
+    """).strip())
+    can_create_iiif_image = models.BooleanField(default=False, help_text=dedent("""
+        Allows adding images to Arkindex from external IIIF servers using the CreateIIIFImage endpoint.
+        This could allow someone to make Arkindex perform DoS attacks on other IIIF servers due to the image checks.
+    """).strip())
+    can_ingest = models.BooleanField(default=False, help_text="Allows access to S3 ingestion features.")
+    can_create_worker_version = models.BooleanField(default=False, help_text="Allows creating workers and worker versions from Docker images.")
+
     selected_elements = models.ManyToManyField(
         "documents.Element",
         through="documents.Selection",
@@ -111,18 +123,6 @@ class User(AbstractBaseUser):
         # Simplest possible answer: Yes, always
         return True
 
-    def has_scopes(self, *scopes):
-        if not scopes:
-            return True
-        assert all(isinstance(scope, Scope) for scope in scopes), "Scopes should be from the Scope enum"
-        return self.user_scopes.filter(scope__in=scopes).count() == len(set(scopes))
-
-    def has_scope(self, scope):
-        assert isinstance(scope, Scope), "Scope should be from the Scope enum"
-        # TODO: Could be optimized in a way similar to Process.get_state()
-        # See https://gitlab.teklia.com/arkindex/ponos/-/blob/e5989f3e1dd1f6d7d93ba940b7ed2c5471ddd34f/ponos/models.py#L370
-        return self.user_scopes.filter(scope=scope).exists()
-
     @property
     def is_staff(self):
         """Is the user a member of staff?"""
@@ -182,38 +182,3 @@ class Group(models.Model):
 
     def __str__(self):
         return self.name
-
-
-class Scope(Enum):
-
-    UploadS3Image = "upload_s3_image"
-    """
-    Allows uploading images to an S3 bucket using the CreateImage endpoint and `s3_put_url`.
-    This could allow someone to upload very large files or make DoS attacks on the local IIIF image server.
-    """
-
-    CreateIIIFImage = "create_iiif_image"
-    """
-    Allows adding images to Arkindex from external IIIF servers using the CreateIIIFImage endpoint.
-    This could allow someone to make Arkindex perform DoS attacks on other IIIF servers due to the image checks.
-    """
-
-    S3Ingest = "s3_ingest"
-    """
-    Allows access to S3 ingestion features.
-    """
-
-    CreateDockerWorkerVersion = "create_docker_worker_version"
-    """
-    Allows creating a worker version and its Git stack from a docker image
-    """
-
-
-class UserScope(models.Model):
-    user = models.ForeignKey("users.User", related_name="user_scopes", on_delete=models.CASCADE)
-    scope = EnumField(Scope, max_length=50)
-
-    class Meta:
-        unique_together = (
-            "user", "scope"
-        )
diff --git a/arkindex/users/serializers.py b/arkindex/users/serializers.py
index 41ccf7d98b1864079140297123da71bd6a177163..1c335a730ecb91170fcb11277cccb9e32ecadb41 100644
--- a/arkindex/users/serializers.py
+++ b/arkindex/users/serializers.py
@@ -10,7 +10,7 @@ from rest_framework import serializers
 from rest_framework.validators import UniqueValidator
 
 from arkindex.documents.models import Corpus
-from arkindex.users.models import Group, Role, Scope, User, UserScope
+from arkindex.users.models import Group, Role, User
 
 
 def validate_user_password(user, data):
@@ -40,6 +40,10 @@ class UserSerializer(SimpleUserSerializer):
             "password",
             "verified_email",
             "is_admin",
+            "can_upload_s3_image",
+            "can_create_iiif_image",
+            "can_ingest",
+            "can_create_worker_version",
             "auth_token",
             "features",
             "has_usable_password",
@@ -49,6 +53,10 @@ class UserSerializer(SimpleUserSerializer):
             "email",
             "verified_email",
             "is_admin",
+            "can_upload_s3_image",
+            "can_create_iiif_image",
+            "can_ingest",
+            "can_create_worker_version",
             "auth_token",
         )
         extra_kwargs = {
@@ -222,16 +230,16 @@ class UserEmailVerificationSerializer(UserSerializer):
             raise ValidationError({"__all__": [error_msg]})
         # Set self.instance so the view can build the response with the current user
         self.instance = user
-        # Only update verified_email field for the current user
-        return {"verified_email": True}
+        # Update verified_email field for the current user and give image upload permissions
+        return {
+            "verified_email": True,
+            "can_upload_s3_image": True,
+            "can_create_iiif_image": True,
+        }
 
     @transaction.atomic
     def update(self, instance, validated_data):
         instance = super().update(instance, validated_data)
-        UserScope.objects.bulk_create([
-            UserScope(user=instance, scope=Scope.CreateIIIFImage),
-            UserScope(user=instance, scope=Scope.UploadS3Image),
-        ], ignore_conflicts=True)
         # If a default group into which to add newly registered and verified users has been
         # defined, then add the user to that group
         if settings.SIGNUP_DEFAULT_GROUP:
diff --git a/arkindex/users/tests/test_registration.py b/arkindex/users/tests/test_registration.py
index 8c289177aa6d35319c66647861548ce51c8c57f6..57cc04216213fc7ab94b957d2297d9183a6a6e7f 100644
--- a/arkindex/users/tests/test_registration.py
+++ b/arkindex/users/tests/test_registration.py
@@ -10,7 +10,7 @@ from rest_framework import status
 from arkindex.documents.models import Corpus
 from arkindex.project.default_corpus import DEFAULT_CORPUS_TYPES
 from arkindex.project.tests import FixtureAPITestCase
-from arkindex.users.models import Group, Right, Role, Scope, User
+from arkindex.users.models import Group, Right, Role, User
 from arkindex.users.tasks import send_verification_email
 
 
@@ -188,11 +188,11 @@ class TestRegistration(FixtureAPITestCase):
                 **values
             } for values in DEFAULT_CORPUS_TYPES]
         )
-
-        self.assertCountEqual(
-            list(newuser.user_scopes.values_list("scope", flat=True)),
-            [Scope.CreateIIIFImage, Scope.UploadS3Image],
-        )
+        # Check created permissions
+        self.assertTrue(newuser.can_create_iiif_image)
+        self.assertTrue(newuser.can_upload_s3_image)
+        self.assertFalse(newuser.can_ingest)
+        self.assertFalse(newuser.can_create_worker_version)
 
     def test_email_verification_default_group(self):
         """
@@ -203,7 +203,7 @@ class TestRegistration(FixtureAPITestCase):
         newuser = User.objects.create_user("newuser@example.com", password="hunter2")
         self.assertFalse(newuser.verified_email)
 
-        with (self.settings(SIGNUP_DEFAULT_GROUP=str(test_group.id)), self.assertNumQueries(11)):
+        with (self.settings(SIGNUP_DEFAULT_GROUP=str(test_group.id)), self.assertNumQueries(10)):
             response = self.client.post(
                 reverse("api:verify-email"),
                 data={
@@ -223,7 +223,7 @@ class TestRegistration(FixtureAPITestCase):
 
         with (
             self.settings(SIGNUP_DEFAULT_GROUP="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"),
-            self.assertNumQueries(7),
+            self.assertNumQueries(6),
             self.assertRaises(Group.DoesNotExist)
         ):
             self.client.post(
@@ -241,7 +241,7 @@ class TestRegistration(FixtureAPITestCase):
         self.assertFalse(newuser.has_usable_password())
         corpora = Corpus.objects.all().values_list("id", flat=True)
 
-        with self.assertNumQueries(7):
+        with self.assertNumQueries(6):
             response = self.client.post(
                 reverse("api:verify-email"),
                 data={
@@ -315,7 +315,8 @@ class TestRegistration(FixtureAPITestCase):
         self.assertEqual(auth.get_user(self.client).email, "newuser@example.com")
         user = User.objects.get_by_natural_key("newuser@example.com")
         self.assertFalse(user.verified_email)
-        self.assertFalse(user.user_scopes.exists())
+        self.assertFalse(user.can_upload_s3_image)
+        self.assertFalse(user.can_create_iiif_image)
         self.assertEqual(len(mail.outbox), 1)
         self.assertEqual(mail.outbox[0].to, ["newuser@example.com"])
 
@@ -331,7 +332,8 @@ class TestRegistration(FixtureAPITestCase):
         self.assertEqual(auth.get_user(self.client).email, "newuser@example.com")
         user = User.objects.get_by_natural_key("newuser@example.com")
         self.assertFalse(user.verified_email)
-        self.assertFalse(user.user_scopes.exists())
+        self.assertFalse(user.can_upload_s3_image)
+        self.assertFalse(user.can_create_iiif_image)
         self.assertEqual(len(mail.outbox), 1)
         self.assertEqual(mail.outbox[0].to, ["newuser@example.com"])
         self.assertTrue(user.check_password("myVerySecretPassword"))