diff --git a/src/main.rs b/src/main.rs
index f5050c2..33e675f 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,6 +1,7 @@
 use actix_multipart::{
     form::{
         tempfile::{TempFile, TempFileConfig},
+        text::Text,
         MultipartForm,
     },
     Multipart,
@@ -10,12 +11,14 @@ use actix_web::{middleware, post, web, App, Error, HttpResponse, HttpServer, Res
 use futures_util::StreamExt as _;
 use std::{env, io};
 
-// #[derive(Debug, MultipartForm)]
-// struct HealthForm {
-//     firstname: String,
-//     lastname: String,
-//     birthdate: String,
-// }
+#[derive(Debug, MultipartForm)]
+struct HealthForm {
+    #[multipart(rename = "file")]
+    files: Vec<TempFile>,
+    firstname: Text<String>,
+    lastname: Text<String>,
+    birthdate: Text<String>,
+}
 
 #[actix_web::main]
 async fn main() -> io::Result<()> {
@@ -35,37 +38,44 @@ async fn main() -> io::Result<()> {
     .await
 }
 
-#[post("/health-form")]
-async fn form(mut form: Multipart) -> Result<HttpResponse, Error> {
-    // println!("{form:?}");
-    while let Some(item) = form.next().await {
-        let mut field = item?;
-        // let mut value = "";
-        let name = field.name();
-        let content_type = field.content_type().unwrap().to_string();
-        if content_type == "application/octet-stream" {
-            // Handle file field
-            // You can save the file or process its contents here
-            while let Some(chunk) = field.try_next().await? {
-                // Process file chunk
-            }
-        } else {
-            // Handle other field types (e.g., text fields)
-            let field_value = field
-                .try_next()
-                .await?
-                .expect("Field value not found")
-                .to_utf8()
-                .expect("Failed to decode field value as UTF-8");
+// #[post("/health-form")]
+// async fn form(mut form: Multipart) -> Result<HttpResponse, Error> {
+//     // println!("{form:?}");
+//     while let Some(item) = form.next().await {
+//         let mut field = item?;
+//         // let mut value = "";
+//         let name = field.name();
+//         let content_type = field.content_type().unwrap().to_string();
+//         if content_type == "application/octet-stream" {
+//             // Handle file field
+//             // You can save the file or process its contents here
+//             while let Some(chunk) = field.next().await {
+//                 // Process file chunk
+//                 println!("chunk: {:?}", std::str::from_utf8(&chunk?));
+//             }
+//         } else {
+//             // Handle other field types (e.g., text fields)
+//             let field_value = field
+//                 .next()
+//                 .await
+//                 .expect("Field value not found")
+//                 .expect("Field value not found");
 
-            // Process the field value (e.g., store in a database, perform validation, etc.)
-            println!("Field {}: {}", name, field_value);
-        }
-        // while let Some(chunk) = field.try_next().await {
-        //     let value = std::str::from_utf8(&chunk?).unwrap();
-        //     println!("{:?}: {:?}", name, value);
-        // }
-    }
+//             // Process the field value (e.g., store in a database, perform validation, etc.)
+//             println!("Field {:?}: {:?}", name, field_value);
+//         }
+//         // while let Some(chunk) = field.try_next().await {
+//         //     let value = std::str::from_utf8(&chunk?).unwrap();
+//         //     println!("{:?}: {:?}", name, value);
+//         // }
+//     }
+//     Ok(HttpResponse::Ok().into())
+// }
+
+#[post("/health-form")]
+async fn form(form: MultipartForm<HealthForm>) -> Result<HttpResponse, Error> {
+    println!("{:?}", form.firstname);
+    println!("{:?}", form.lastname);
     Ok(HttpResponse::Ok().into())
 }