diff --git a/Rendelosch/Models/Field.cs b/Rendelosch/Models/Field.cs
index 9eb347581492712b7330c78f11050f20fe1b6516..16a9f253439f7a7c98a96f0e206472b1764c989a 100644
--- a/Rendelosch/Models/Field.cs
+++ b/Rendelosch/Models/Field.cs
@@ -2,10 +2,13 @@
 
 public class Field
 {
+    public readonly string Key;
+    
     public readonly string Name;
 
-    public Field(string name)
+    public Field(string key, string name)
     {
+        Key = key;
         Name = name;
     }
 }
\ No newline at end of file
diff --git a/Rendelosch/Models/ProductForm.cs b/Rendelosch/Models/ProductForm.cs
index 6a689ca84587eeef5664cdae1e09af07ccc84c01..e97fe59d5b3c99b6087b2787c23d1a7ff8cf5372 100644
--- a/Rendelosch/Models/ProductForm.cs
+++ b/Rendelosch/Models/ProductForm.cs
@@ -5,11 +5,14 @@ public class ProductForm
     public readonly string Id;
     public readonly string Title;
     
-    public readonly List<Field> Fields = new();
+    public readonly List<Field> Fields;
+    
+    public readonly List<Submission> Submissions = new();
 
-    public ProductForm(string id, string title)
+    public ProductForm(string id, string title, List<Field> fields)
     {
         Id = id;
         Title = title;
+        Fields = fields;
     }
 }
\ No newline at end of file
diff --git a/Rendelosch/Models/Submission.cs b/Rendelosch/Models/Submission.cs
new file mode 100644
index 0000000000000000000000000000000000000000..3053b02ef044c5e1448cbaff11bab7a7e59361ef
--- /dev/null
+++ b/Rendelosch/Models/Submission.cs
@@ -0,0 +1,14 @@
+namespace Rendelosch.Models;
+
+public class Submission
+{
+    public readonly string Id;
+    
+    public readonly Dictionary<Field, string> FieldData;
+
+    public Submission(string id, Dictionary<Field, string> fieldData)
+    {
+        Id = id;
+        FieldData = fieldData;
+    }
+}
\ No newline at end of file
diff --git a/Rendelosch/Pages/Index.cshtml b/Rendelosch/Pages/Index.cshtml
index 8a1ca94b4414cf51bfc58ae892b261efbdcc79d9..01e97a7975b8df7c3d5d168340bcd5b23d080528 100644
--- a/Rendelosch/Pages/Index.cshtml
+++ b/Rendelosch/Pages/Index.cshtml
@@ -1,22 +1,22 @@
 @page
 @model Rendelosch.Pages.Index
 @{
-    ViewData["Title"] = "Index";
+    ViewData["Title"] = "Home";
 }
 
 <div class="container-lg">
-    <form method="post">
-        <a class="btn btn-primary my-4">Új űrlap létrehozása</a>
-    </form>
+    <a class="btn btn-primary my-4" asp-page="CreateProductForm">Create Product Form</a>
     <div>
         @{
-            foreach (var productForm in Model.GetRepository().GetProductForms())
+            foreach (var productForm in Model.Repository.GetProductForms())
             {
                 <div class="card mb-3">
                     <div class="card-body">
                         <div class="d-flex flex-row align-items-center">
-                            <h5 class="card-title m-0 me-3">@productForm.Title</h5>
-                            <a class="btn btn-outline-primary">Kitöltés</a>
+                            <a asp-page="SubmitForm" asp-route-id="@productForm.Id">
+                                <h5 class="card-title m-0 me-3">@productForm.Title</h5>
+                            </a>
+                            <a class="btn btn-outline-primary mx-1" asp-page="SubmittedForms" asp-route-id="@productForm.Id">Submissions</a>
                         </div>
                     </div>
                 </div>
diff --git a/Rendelosch/Pages/Index.cshtml.cs b/Rendelosch/Pages/Index.cshtml.cs
index e99ba2dde0947114b5bbcd626269d421345f0326..cd24ff22caa2b42495a643046fb4fcb3c1b97766 100644
--- a/Rendelosch/Pages/Index.cshtml.cs
+++ b/Rendelosch/Pages/Index.cshtml.cs
@@ -6,25 +6,10 @@ namespace Rendelosch.Pages;
 
 public class Index : PageModel
 {
-    private readonly IProductFormRepository _repository;
-
-    public Index(IProductFormRepository repository)
-    {
-        _repository = repository;
-    }
+    public IProductFormRepository Repository { get; }
     
-    public IProductFormRepository GetRepository()
-    {
-        return _repository;
-    }
-    
-    public void OnGet()
-    {
-        
-    }
-
-    public void OnPost()
+    public Index(IProductFormRepository repository)
     {
-        
+        Repository = repository;
     }
 }
\ No newline at end of file
diff --git a/Rendelosch/Repository/IProductFormRepository.cs b/Rendelosch/Repository/IProductFormRepository.cs
index e88bc38c3b86fb7a72de33f9bf16ebd9c31434e1..c4b55bb89ef3628905758590386df7f488556bd5 100644
--- a/Rendelosch/Repository/IProductFormRepository.cs
+++ b/Rendelosch/Repository/IProductFormRepository.cs
@@ -5,8 +5,13 @@ namespace Rendelosch.Repository;
 public interface IProductFormRepository
 {
     public List<ProductForm> GetProductForms();
-    
-    public string CreateProductForm(string formTitle);
 
-    public bool AddFieldToProductForm(string formId, string fieldName);
+    public ProductForm? GetProductForm(string formId);
+    
+    public ProductForm CreateProductForm(string formTitle, List<Field> formFields);
+    
+    
+    public List<Submission>? GetSubmissionsForProductForm(string formId);
+    
+    public Submission? AddSubmissionToProductForm(string formId, Dictionary<string, string> fieldData);
 }
\ No newline at end of file
diff --git a/Rendelosch/Repository/MemoryProductFormRepository.cs b/Rendelosch/Repository/MemoryProductFormRepository.cs
index 683cac49c1c95ee7d41904731be7791b87403f0c..32011b354f3015345a9dead212fa02236c3d79bb 100644
--- a/Rendelosch/Repository/MemoryProductFormRepository.cs
+++ b/Rendelosch/Repository/MemoryProductFormRepository.cs
@@ -8,20 +8,54 @@ public class MemoryProductFormRepository : IProductFormRepository
 
     public MemoryProductFormRepository()
     {
-        var sampleForm1 = new ProductForm(Guid.NewGuid().ToString(), "DevTeam pulcsi");
-        sampleForm1.Fields.Add(new Field("Név"));
-        sampleForm1.Fields.Add(new Field("Email"));
-        sampleForm1.Fields.Add(new Field("Méret (XS/S/M/L/XL/XXL)"));
-        
-        var sampleForm2 = new ProductForm(Guid.NewGuid().ToString(), "DevTeam kiskacsa");
-        sampleForm2.Fields.Add(new Field("Név"));
-        sampleForm2.Fields.Add(new Field("Email"));
-        sampleForm2.Fields.Add(new Field("Telefonszám"));
-        sampleForm2.Fields.Add(new Field("Szín (sárga/zöld/kék)"));
-        sampleForm2.Fields.Add(new Field("Megjegyzés"));
-        
+        var form1Fields = new List<Field>
+        {
+            new Field("name", "Név"),
+            new Field("email", "Email"),
+            new Field("size", "Méret (XS/S/M/L/XL/XXL)")
+        };
+        var sampleForm1 = new ProductForm("551d6601-7f08-4bd5-ab3a-a391c171e188", "DevTeam pulcsi", form1Fields);
         _productForms.Add(sampleForm1);
+        
+        var form2Fields = new List<Field>
+        {
+            new Field("name", "Név"),
+            new Field("email", "Email"),
+            new Field("phone_number", "Telefonszám"),
+            new Field("colour", "Szín (sárga/zöld/kék)"),
+            new Field("note", "Megjegyzés")
+        };
+        var sampleForm2 = new ProductForm("64996c3e-51ca-444a-90ec-b387f73a84ed", "DevTeam kiskacsa", form2Fields);
         _productForms.Add(sampleForm2);
+
+        var sampleSubmission1FieldData = new Dictionary<Field, string>
+        {
+            { sampleForm1.Fields[0], "Kovács Béla" },
+            { sampleForm1.Fields[1], "asd@gmail.com" },
+            { sampleForm1.Fields[2], "M" }
+        };
+        var sampleSubmission1 = new Submission("ce9a1a9e-1123-464d-a3ec-740058502f6d", sampleSubmission1FieldData);
+        sampleForm1.Submissions.Add(sampleSubmission1);
+        
+        var sampleSubmission2FieldData = new Dictionary<Field, string>
+        {
+            { sampleForm2.Fields[0], "Teszt Elek" },
+            { sampleForm2.Fields[1], "erogr@sd.hu" },
+            { sampleForm2.Fields[2], "06301234567" },
+            { sampleForm2.Fields[3], "zöld" },
+            { sampleForm2.Fields[4], "Rántotta" }
+        };
+        var sampleSubmission2 = new Submission("d84cf551-96cc-4620-962f-023fefa94b2f", sampleSubmission2FieldData);
+        sampleForm2.Submissions.Add(sampleSubmission2);
+        
+        var sampleSubmission3FieldData = new Dictionary<Field, string>
+        {
+            { sampleForm1.Fields[0], "kisegér" },
+            { sampleForm1.Fields[1], "123123" },
+            { sampleForm1.Fields[2], "óriási, hatalmas, leviatán" }
+        };
+        var sampleSubmission3 = new Submission("106a67ca-acc0-42b5-9a40-18f12a6c7aa1", sampleSubmission3FieldData);
+        sampleForm1.Submissions.Add(sampleSubmission3);
     }
 
     public List<ProductForm> GetProductForms()
@@ -29,19 +63,44 @@ public class MemoryProductFormRepository : IProductFormRepository
         return _productForms;
     }
 
-    public string CreateProductForm(string formTitle)
+    public ProductForm? GetProductForm(string formId)
     {
-        var guid = Guid.NewGuid().ToString();
-        _productForms.Add(new ProductForm(guid, formTitle));
-        return guid;
+        return _productForms.Find(f => f.Id == formId);
     }
 
-    public bool AddFieldToProductForm(string formId, string fieldName)
+    public ProductForm CreateProductForm(string formTitle, List<Field> formFields)
+    {
+        var newForm = new ProductForm(Guid.NewGuid().ToString(), formTitle, formFields);
+        _productForms.Add(newForm);
+        return newForm;
+    }
+
+    public List<Submission>? GetSubmissionsForProductForm(string formId)
     {
         var form = _productForms.Find(f => f.Id == formId);
-        if (form == null) return false;
-        form.Fields.Add(new Field(fieldName));
+        if (form == null) return null;
+        
+        return form.Submissions;
+    }
+
+    public Submission? AddSubmissionToProductForm(string formId, Dictionary<string, string> fieldData)
+    {
+        // find form
+        var form = _productForms.Find(f => f.Id == formId);
+        if (form == null) return null;
+        
+        // construct submission field data
+        var submissionFieldData = new Dictionary<Field, string>();
+        foreach (var (key, value) in fieldData)
+        {
+            // find field in form
+            var field = form.Fields.Find(f => f.Key == key);
+            if (field == null) return null;
+            submissionFieldData.Add(field, value);
+        }
         
-        return true;
+        var submission = new Submission(Guid.NewGuid().ToString(), submissionFieldData);
+        form.Submissions.Add(submission);
+        return submission;
     }
 }
\ No newline at end of file