diff --git a/packages/file-handling/README.md b/packages/file-handling/README.md
index 69e46997818fc6783cddc973c7ece423e2c3b619..aed16dc5e0272015d7f6eacdf928d6f6ac7fdb96 100644
--- a/packages/file-handling/README.md
+++ b/packages/file-handling/README.md
@@ -1,49 +1,42 @@
-# FileUpload web component
+# File handling web components
 
-[GitLab Repository](https://gitlab.tugraz.at/VPU/WebComponents/FileUpload)
+[GitLab Repository](https://gitlab.tugraz.at/VPU/WebComponents/FileHandling)
 
-Files will be uploaded sequentially (not parallel) to prevent overburdening the destination server. 
+## FileSource
 
-## Usage
+### Usage
 
 ```html
-<vpu-fileupload></vpu-fileupload>
+<vpu-file-source></vpu-file-source>
 ```
 
-## Attributes
+### Attributes
 
-- `url`: path to the upload url
-    - example `<vpu-fileupload url="path/to/my/page"></vpu-fileupload>`
 - `lang` (optional, default: `de`): set to `de` or `en` for German or English
-    - example `<vpu-fileupload lang="de"></vpu-fileupload>`
-- `always-send-file` (optional): if set the uploaded or queued file will always be sent in the event
-    - example `<vpu-fileupload always-send-file></vpu-fileupload>`
-- `deferred` (optional): if set files will not be uploaded immediately but only queued
-    - use method `uploadFile` or `uploadOneQueuedFile` to really upload the queued file  
-    - example `<vpu-fileupload deferred></vpu-fileupload>`
+    - example `<vpu-file-source lang="de"></vpu-file-source>`
 - `allowed-mime-types` (optional): if set accepts only files matching mime types
-    - example `<vpu-fileupload allowed-mime-types='application/pdf'></vpu-fileupload>` ... PDFs only
-    - example `<vpu-fileupload allowed-mime-types='image/*'></vpu-fileupload>` ... images (of all sub types) only
-    - example `<vpu-fileupload allowed-mime-types='image/png,text/plain'></vpu-fileupload>` ... PNGs or TXTs only
-    - example `<vpu-fileupload allowed-mime-types='*/*'></vpu-fileupload>` ... all file types (default)
+    - example `<vpu-file-source allowed-mime-types='application/pdf'></vpu-file-source>` ... PDFs only
+    - example `<vpu-file-source allowed-mime-types='image/*'></vpu-file-source>` ... images (of all sub types) only
+    - example `<vpu-file-source allowed-mime-types='image/png,text/plain'></vpu-file-source>` ... PNGs or TXTs only
+    - example `<vpu-file-source allowed-mime-types='*/*'></vpu-file-source>` ... all file types (default)
 - `disabled` (optional): disable input control
-    - example `<vpu-fileupload disabled></vpu-fileupload>`
-- `decompress-zip` (optional): decompress zip file and queue the contained files (including files in folders)
-    - example `<vpu-fileupload decompress-zip></vpu-fileupload>`
+    - example `<vpu-file-source disabled></vpu-file-source>`
+- `decompress-zip` (optional): decompress zip file and send the contained files (including files in folders)
+    - example `<vpu-file-source decompress-zip></vpu-file-source>`
     - mime types of `allowed-mime-types` will also be checked for the files in the zip file
 - `nextcloud-auth-url` (optional): Nextcloud Auth Url to use with the Nextcloud file picker
-    - example `<vpu-fileupload nextcloud-auth-url="http://localhost:8081/index.php/apps/webapppassword"></vpu-fileupload>`
+    - example `<vpu-file-source nextcloud-auth-url="http://localhost:8081/index.php/apps/webapppassword"></vpu-file-source>`
     - `nextcloud-web-dav-url` also needs to be set for the Nextcloud file picker to be active
 - `nextcloud-web-dav-url` (optional): Nextcloud WebDav Url to use with the Nextcloud file picker
-    - example `<vpu-fileupload nextcloud-web-dav-url="http://localhost:8081/remote.php/dav/files"></vpu-fileupload>`
+    - example `<vpu-file-source nextcloud-web-dav-url="http://localhost:8081/remote.php/dav/files"></vpu-file-source>`
     - `nextcloud-auth-url` also needs to be set for the Nextcloud file picker to be active
 
 ## Local development
 
 ```bash
 # get the source
-git clone git@gitlab.tugraz.at:VPU/WebComponents/FileUpload.git
-cd FileUpload
+git clone git@gitlab.tugraz.at:VPU/WebComponents/FileHandling.git
+cd FileHandling
 git submodule update --init
 
 # install dependencies (make sure you have npm version 4+ installed, so symlinks to the git submodules are created automatically)
diff --git a/packages/file-handling/assets/index.html b/packages/file-handling/assets/index.html
index 0e8df0b6c71ada213d44053b4ff21668644bd126..c5f49d3ae93f0fd47c12a9134304539387400279 100644
--- a/packages/file-handling/assets/index.html
+++ b/packages/file-handling/assets/index.html
@@ -2,9 +2,9 @@
 <html>
 <head>
     <meta charset="UTF-8">
-    <script type="module" id="vpu-fileupload-src" src="demo.js"></script>
+    <script type="module" id="vpu-file-source-src" src="demo.js"></script>
     <style>
-      vpu-fileupload-demo {
+      vpu-file-source-demo {
           --FUBorderWidth: 2px;
           --FUBorderStyle: dotted;
           --FUBorderColor: #555;
@@ -18,8 +18,6 @@
     </style>
 </head>
 <body>
-
-<vpu-fileupload-demo lang="de" url="http://127.0.0.1:8080"></vpu-fileupload-demo>
-
+    <vpu-file-source-demo lang="de"></vpu-file-source-demo>
 </body>
 </html>
diff --git a/packages/file-handling/package.json b/packages/file-handling/package.json
index efb25e2af3e98daaaa7c817100f9fa1e73f5eefa..97783b5ad41b12d1586169f1e11682b45b99bfae 100644
--- a/packages/file-handling/package.json
+++ b/packages/file-handling/package.json
@@ -1,5 +1,5 @@
 {
-  "name": "vpu-fileupload",
+  "name": "vpu-file-source",
   "version": "1.0.0",
   "main": "src/index.js",
   "license": "LGPL-2.1-or-later",
diff --git a/packages/file-handling/rollup.config.js b/packages/file-handling/rollup.config.js
index 644db66e82b8408da8c446cf6b679d01b2330de3..deba392948445e821c6ac78593a24e448650d072 100644
--- a/packages/file-handling/rollup.config.js
+++ b/packages/file-handling/rollup.config.js
@@ -13,7 +13,7 @@ const build = (typeof process.env.BUILD !== 'undefined') ? process.env.BUILD : '
 console.log("build: " + build);
 
 export default {
-    input: (build !== 'test') ? ['src/demo.js', 'src/vpu-fileupload.js'] : glob.sync('test/**/*.js'),
+    input: (build !== 'test') ? ['src/demo.js', 'src/vpu-file-source.js'] : glob.sync('test/**/*.js'),
     output: {
         dir: 'dist',
         entryFileNames: '[name].js',
@@ -44,7 +44,7 @@ export default {
                 {src: 'assets/index.html', dest: 'dist'},
                 {src: 'assets/favicon.ico', dest: 'dist'},
                 {src: 'node_modules/material-design-icons-svg/paths/*.json', dest: 'dist/local/vpu-common/icons'},
-                {src: 'node_modules/tabulator-tables/dist/css', dest: 'dist/local/fileupload/tabulator-tables'},
+                {src: 'node_modules/tabulator-tables/dist/css', dest: 'dist/local/vpu-file-source/tabulator-tables'},
             ],
         }),
         (process.env.ROLLUP_WATCH === 'true') ? serve({contentBase: 'dist', host: '127.0.0.1', port: 8002}) : false
diff --git a/packages/file-handling/src/demo.js b/packages/file-handling/src/demo.js
index 8089e76fb1145a6c25a717ef19da952cda7bc06f..a230232046f8d4c2329295174b3f7c11947bfed8 100644
--- a/packages/file-handling/src/demo.js
+++ b/packages/file-handling/src/demo.js
@@ -2,10 +2,10 @@ import {i18n} from './i18n';
 import {html, LitElement} from 'lit-element';
 import {unsafeHTML} from 'lit-html/directives/unsafe-html.js';
 import {ScopedElementsMixin} from '@open-wc/scoped-elements';
-import {FileUpload} from './fileupload.js';
+import {FileSource} from './file-source.js';
 import * as commonUtils from 'vpu-common/utils';
 
-class FileUploadDemo extends ScopedElementsMixin(LitElement) {
+class FileSourceDemo extends ScopedElementsMixin(LitElement) {
     constructor() {
         super();
         this.lang = 'de';
@@ -14,7 +14,7 @@ class FileUploadDemo extends ScopedElementsMixin(LitElement) {
 
     static get scopedElements() {
         return {
-          'vpu-fileupload': FileUpload,
+          'vpu-file-source': FileSource,
         };
     }
 
@@ -29,9 +29,9 @@ class FileUploadDemo extends ScopedElementsMixin(LitElement) {
         super.connectedCallback();
 
         this.updateComplete.then(() => {
-            this.shadowRoot.querySelectorAll('vpu-fileupload')
+            this.shadowRoot.querySelectorAll('vpu-file-source')
                 .forEach(element => {
-                    element.addEventListener('vpu-fileupload-file-finished', this.addLogEntry.bind(this));
+                    element.addEventListener('vpu-file-source-file-finished', this.addLogEntry.bind(this));
                 });
         });
     }
@@ -57,7 +57,7 @@ class FileUploadDemo extends ScopedElementsMixin(LitElement) {
     render() {
         return html`
             <style>
-                vpu-fileupload.clean {
+                vpu-file-source.clean {
                     --FUBorderWidth: initial;
                     --FUBorderStyle: initial;
                     --FUBorderColor: initial;
@@ -67,7 +67,7 @@ class FileUploadDemo extends ScopedElementsMixin(LitElement) {
                     --FUPadding: initial;
                     --FUWidth: initial;
                 }
-                vpu-fileupload.opt {
+                vpu-file-source.opt {
                     --FUBorder: 2px solid blue;
                 }
             </style>
@@ -78,22 +78,22 @@ class FileUploadDemo extends ScopedElementsMixin(LitElement) {
                     <p>${unsafeHTML(i18n.t('required-server', { url: this.url}))}</p>
                 </div>
                 <div class="content">
-                    <h2 class="subtitle">Send any File to Server</h2>
+                    <h2 class="subtitle">Send files via event</h2>
                     <p>There is no restriction for a specific file type:</p>
-                    <vpu-fileupload lang="de" url="${this.url}" allowed-mime-types="*/*"></vpu-fileupload>
+                    <vpu-file-source lang="de" url="${this.url}" allowed-mime-types="*/*"></vpu-file-source>
                     <p>Only images are allowed here (JPG, PNG, GIF, TIF, ...):</p>
-                    <vpu-fileupload lang="de" url="${this.url}" allowed-mime-types="image/*"
-                        text="Abgabe nur für Bilder "></vpu-fileupload>
+                    <vpu-file-source lang="de" url="${this.url}" allowed-mime-types="image/*"
+                        text="Abgabe nur für Bilder "></vpu-file-source>
                     <p>This is for PDF only:</p>
-                    <vpu-fileupload lang="de" url="${this.url}" allowed-mime-types="application/pdf"
-                        text="Einreichung als PDF" button-label="PDF auswählen"></vpu-fileupload>
+                    <vpu-file-source lang="de" url="${this.url}" allowed-mime-types="application/pdf"
+                        text="Einreichung als PDF" button-label="PDF auswählen"></vpu-file-source>
                      <p>Text and images (JPG, PNG, GIF, TIF, ...) :</p>
-                    <vpu-fileupload lang="de" url="${this.url}" allowed-mime-types="text/plain,image/*"
-                        text="Abgabe für Text und Bilder "></vpu-fileupload>
+                    <vpu-file-source lang="de" url="${this.url}" allowed-mime-types="text/plain,image/*"
+                        text="Abgabe für Text und Bilder "></vpu-file-source>
                </div>
             </section>
         `;
     }
 }
 
-commonUtils.defineCustomElement('vpu-fileupload-demo', FileUploadDemo);
+commonUtils.defineCustomElement('vpu-file-source-demo', FileSourceDemo);
diff --git a/packages/file-handling/src/file-source.js b/packages/file-handling/src/file-source.js
index b998265911f8733e048e06bcb4c040fb0058c4c4..0008040161c60c0d6f7a1a021045d28848c612eb 100644
--- a/packages/file-handling/src/file-source.js
+++ b/packages/file-handling/src/file-source.js
@@ -35,7 +35,6 @@ export class FileSource extends ScopedElementsMixin(VPULitElement) {
     constructor() {
         super();
         this.lang = 'de';
-        this.url = '';
         this.nextcloudAuthUrl = '';
         this.nextcloudWebDavUrl = '';
         this.dropArea = null;
@@ -61,7 +60,6 @@ export class FileSource extends ScopedElementsMixin(VPULitElement) {
     static get properties() {
         return {
             lang: { type: String },
-            url: { type: String },
             allowedMimeTypes: { type: String, attribute: 'allowed-mime-types' },
             nextcloudAuthUrl: { type: String, attribute: 'nextcloud-auth-url' },
             nextcloudWebDavUrl: { type: String, attribute: 'nextcloud-web-dav-url' },
diff --git a/packages/file-handling/src/vpu-nextcloud-file-picker.js b/packages/file-handling/src/vpu-nextcloud-file-picker.js
index b83c5c424850a71c179d6258130c0c447c614d9b..4401b1372663009bec7ee5cd75aa9d5abfdbeb5f 100644
--- a/packages/file-handling/src/vpu-nextcloud-file-picker.js
+++ b/packages/file-handling/src/vpu-nextcloud-file-picker.js
@@ -268,7 +268,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(VPULitElement) {
 
     render() {
         commonUtils.initAssetBaseURL('vpu-tabulator-table');
-        const tabulatorCss = commonUtils.getAssetURL('local/vpu-fileupload/tabulator-tables/css/tabulator.min.css');
+        const tabulatorCss = commonUtils.getAssetURL('local/vpu-file-source/tabulator-tables/css/tabulator.min.css');
         console.log("tabulatorCss", tabulatorCss);
 
         return html`
diff --git a/packages/file-handling/test/unit.js b/packages/file-handling/test/unit.js
index 4c64badda49203508ec6f5e48176875fb3a88580..6f476536e854f50eb96129d2cbfa844b9ff165f7 100644
--- a/packages/file-handling/test/unit.js
+++ b/packages/file-handling/test/unit.js
@@ -1,11 +1,11 @@
-import '../src/vpu-fileupload';
+import '../src/vpu-file-source';
 import '../src/demo';
 
-describe('vpu-fileupload basics', () => {
+describe('vpu-file-source basics', () => {
   let node;
 
   beforeEach(async () => {
-    node = document.createElement('vpu-fileupload');
+    node = document.createElement('vpu-file-source');
     document.body.appendChild(node);
     await node.updateComplete;
   });
@@ -19,11 +19,11 @@ describe('vpu-fileupload basics', () => {
   });
 });
 
-describe('vpu-fileupload demo', () => {
+describe('vpu-file-source demo', () => {
   let node;
 
   beforeEach(async () => {
-    node = document.createElement('vpu-fileupload-demo');
+    node = document.createElement('vpu-file-source-demo');
     document.body.appendChild(node);
     await node.updateComplete;
   });