diff --git a/ExpressAPI/src/helpers/DojoModelsHelper.ts b/ExpressAPI/src/helpers/DojoModelsHelper.ts
new file mode 100644
index 0000000000000000000000000000000000000000..8fa9e5f2d28180bdf5711fb65f572218e253160b
--- /dev/null
+++ b/ExpressAPI/src/helpers/DojoModelsHelper.ts
@@ -0,0 +1,33 @@
+import LazyVal from '../shared/helpers/LazyVal';
+
+
+class DojoModelsHelper {
+    /**
+     * Get a full serializable object from a given object that contains LazyVal instances
+     *
+     * @param obj
+     * @param depth The depth of the search for LazyVal instances
+     */
+    async getFullSerializableObject<T extends NonNullable<unknown>>(obj: T, depth: number = 0): Promise<unknown> {
+        /* eslint-disable-next-line  @typescript-eslint/no-explicit-any */
+        const result: any = {};
+
+        for ( const key in obj ) {
+            let value: unknown = obj[key];
+            if ( value instanceof LazyVal ) {
+                value = await (obj[key] as LazyVal<unknown>).value;
+            }
+
+            if ( typeof value === 'object' && obj[key] !== null && depth > 0 ) {
+                result[key] = await this.getFullSerializableObject(value as NonNullable<unknown>, depth - 1);
+            } else {
+                result[key] = value;
+            }
+        }
+
+        return result;
+    }
+}
+
+
+export default new DojoModelsHelper();
\ No newline at end of file