diff --git a/.gitmodules b/.gitmodules
index c6af8543b7869b2a26a1772b937ee3aef8cdacbb..3b3c691f7f8342abdff652f1f546c7a4fa0080ab 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -13,9 +13,9 @@
 [submodule "vendor/person-profile"]
 	path = vendor/person-profile
 	url = git@gitlab.tugraz.at:VPU/WebComponents/PersonProfile.git
-[submodule "vendor/file-upload"]
-	path = vendor/file-upload
-	url = git@gitlab.tugraz.at:VPU/WebComponents/FileUpload.git
 [submodule "vendor/app-shell"]
 	path = vendor/app-shell
 	url = git@gitlab.tugraz.at:VPU/Apps/AppShell.git
+[submodule "vendor/file-handling"]
+	path = vendor/file-handling
+	url = git@gitlab.tugraz.at:VPU/WebComponents/FileHandling.git
diff --git a/package-lock.json b/package-lock.json
index 5688ca8064531f5ae91d57ef83b2f184a0c460fc..a34ee7da1bc09ed18741e17d81f2c66c4dd1cdad 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5975,9 +5975,9 @@
       }
     },
     "material-design-icons-svg": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/material-design-icons-svg/-/material-design-icons-svg-3.0.0.tgz",
-      "integrity": "sha512-MbHjWXGzHLPZX9qiICq3CLp0zkxaKm1uzNnrwsmThoCf5J70Lq8zSMKJMxG6uLAZB4b6evvBXrdf3C34RoRfaA=="
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/material-design-icons-svg/-/material-design-icons-svg-3.1.1.tgz",
+      "integrity": "sha512-jf6Ogdwle7yaRTeO2C8JgHeY7tGhXlJm19tzFESr2Tfx/jefb4rLL0vp3GYYqYJvABps4MdAWn7HheXCmusmpQ=="
     },
     "media-typer": {
       "version": "0.3.0",
@@ -8316,14 +8316,17 @@
         "lit-element": "^2.2.1"
       }
     },
-    "vpu-file-upload": {
-      "version": "file:vendor/file-upload",
+    "vpu-file-handling": {
+      "version": "file:vendor/file-handling",
       "requires": {
         "@open-wc/scoped-elements": "^1.0.8",
         "i18next": "^19.4.2",
+        "jszip": "^3.5.0",
         "lit-element": "^2.1.0",
         "lit-html": "^1.1.1",
-        "material-design-icons-svg": "^3.0.0"
+        "material-design-icons-svg": "^3.0.0",
+        "tabulator-tables": "^4.7.0",
+        "webdav": "^3.3.0"
       }
     },
     "vpu-language-select": {
diff --git a/package.json b/package.json
index d61f6b96030aa73baffaa7dcb7a4e6c86f663801..12573347e27c94a01d3f3fc1552d1f6ed6a3c420 100644
--- a/package.json
+++ b/package.json
@@ -55,7 +55,7 @@
     "vpu-app-shell": "file:./vendor/app-shell",
     "vpu-auth": "file:./vendor/auth",
     "vpu-common": "file:./vendor/common",
-    "vpu-file-upload": "file:./vendor/file-upload",
+    "vpu-file-handling": "file:./vendor/file-handling",
     "vpu-language-select": "file:./vendor/language-select",
     "vpu-notification": "file:./vendor/notification",
     "vpu-person-profile": "file:./vendor/person-profile",
diff --git a/src/vpu-official-signature-pdf-upload.js b/src/vpu-official-signature-pdf-upload.js
index 5dbc0d88b4391c1cabe87a5a9e1f799913effecc..63140f728f826ffe08533d6413f62d768592c048 100644
--- a/src/vpu-official-signature-pdf-upload.js
+++ b/src/vpu-official-signature-pdf-upload.js
@@ -10,7 +10,7 @@ import {Icon, MiniSpinner, Button} from 'vpu-common';
 import FileSaver from 'file-saver';
 import * as commonStyles from 'vpu-common/styles';
 import {classMap} from 'lit-html/directives/class-map.js';
-import {FileUpload} from 'vpu-file-upload';
+import {FileUpload} from 'vpu-file-handling';
 import JSONLD from "vpu-common/jsonld";
 import {TextSwitch} from './textswitch.js';
 
diff --git a/src/vpu-qualified-signature-pdf-upload.js b/src/vpu-qualified-signature-pdf-upload.js
index 630e7e06a615e6c23e1358723c8c10a7ae8e3c1c..74a88d991f464f01143a85eaf663bc785b6e65a9 100644
--- a/src/vpu-qualified-signature-pdf-upload.js
+++ b/src/vpu-qualified-signature-pdf-upload.js
@@ -10,7 +10,7 @@ import {Icon, MiniSpinner, Button} from 'vpu-common';
 import FileSaver from 'file-saver';
 import * as commonStyles from 'vpu-common/styles';
 import {classMap} from 'lit-html/directives/class-map.js';
-import {FileUpload} from 'vpu-file-upload';
+import {FileUpload} from 'vpu-file-handling';
 import JSONLD from "vpu-common/jsonld";
 import {TextSwitch} from './textswitch.js';
 import nextcloudWebAppPasswordURL from 'consts:nextcloudWebAppPasswordURL';
diff --git a/src/vpu-signature-verification.js b/src/vpu-signature-verification.js
index d4d16a909060cc22742d20567113ec71e54a4eb3..34c73391c6c9a474d64cf3698707ac5403922529 100644
--- a/src/vpu-signature-verification.js
+++ b/src/vpu-signature-verification.js
@@ -8,7 +8,7 @@ import * as commonUtils from 'vpu-common/utils';
 import {Icon, MiniSpinner, Button} from 'vpu-common';
 import * as commonStyles from 'vpu-common/styles';
 import {classMap} from 'lit-html/directives/class-map.js';
-import {FileUpload} from 'vpu-file-upload';
+import {FileUpload} from 'vpu-file-handling';
 import JSONLD from "vpu-common/jsonld";
 
 const i18n = createI18nInstance();
diff --git a/vendor/file-upload b/vendor/file-handling
similarity index 100%
rename from vendor/file-upload
rename to vendor/file-handling