diff --git a/src/files-ui/core/types/ExtFile.ts b/src/files-ui/core/types/ExtFile.ts
index 1a69b3afee41c5898330618d08b59e58ecf2ad85..2e840ac26bc270a831cb36312d1f954b790c60c3 100644
--- a/src/files-ui/core/types/ExtFile.ts
+++ b/src/files-ui/core/types/ExtFile.ts
@@ -200,85 +200,33 @@ export class ExtFileInstance {
 
     }
 
+    /**
+     * Copies all non undefined attributes from ExtFileInstance to a new ExtFile object
+     * @param extFileInstance the instance of ExtFile
+     * @returns an ExtFile object
+     */
     static toExtFile(extFileInstance: ExtFileInstance): ExtFile {
-        const
-            {
-                id,
-                file,
-                name,
-                size,
-                type,
-                imageUrl,
-                valid,
-                errors,
-                uploadMessage,
-                uploadStatus,
-                progress,
-                xhr,
-                extraData,
-                extraUploadData,
-                serverResponse,
-                downloadUrl
-            } = extFileInstance;
-        return {
-            id,
-            file,
-            name,
-            size,
-            type,
-            imageUrl,
-            valid,
-            errors,
-            uploadMessage,
-            uploadStatus,
-            progress,
-            xhr,
-            extraData,
-            extraUploadData,
-            serverResponse,
-            downloadUrl
-        };
+        console.log("before toExtFile()", extFileInstance);
+
+        let extFileClone: ExtFile = {}; // the new empty object
+        const extFileInstanceKeys = Object.keys(extFileInstance) as [keyof ExtFile];
+        const extFileInstanceValues = Object.values(extFileInstance);
+        // let's copy all user properties into it
+        for (let i = 0; i < extFileInstanceKeys.length; i++) {
+            if (extFileInstanceValues[i] !== undefined) {
+                extFileClone[extFileInstanceKeys[i]] = extFileInstanceValues[i];
+            }
+        }
+        console.log("after toExtFile()", extFileClone);
+
+        return extFileClone;
     }
+    /**
+     * Copies all non undefined attributes from ExtFileInstance to a new ExtFile object.
+     * @returns an ExtFile object
+     */
     toExtFile(): ExtFile {
-        const {
-            id,
-            file,
-            name,
-            size,
-            type,
-            imageUrl,
-            valid,
-            errors,
-            uploadMessage,
-            uploadStatus,
-            progress,
-            xhr,
-            extraData,
-            extraUploadData,
-            serverResponse,
-            downloadUrl
-        } = this;
-
-        const result: ExtFile = {
-            id,
-            file,
-            name,
-            size,
-            type,
-            imageUrl,
-            valid,
-            errors,
-            uploadMessage,
-            uploadStatus,
-            progress,
-            xhr,
-            extraData,
-            extraUploadData,
-            serverResponse,
-            downloadUrl
-        } as ExtFile;
-        console.log("incomming result", { ...result });
-        return { ...result };
+        return ExtFileInstance.toExtFile(this);
     }
 
     static mock = (): ExtFileInstance => {