Index: Prototype Application/Paw5/src/main/java/finki/paw5/service/implementation/AuthServiceImplementation.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/service/implementation/AuthServiceImplementation.java	(revision c03e53b11c30be4154c0b49b97b7f14a38e15ba5)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/service/implementation/AuthServiceImplementation.java	(revision e76c5a6bb5ec40745c75c33aecded9a310c6761c)
@@ -3,4 +3,5 @@
 import finki.paw5.model.entities.Adopter;
 import finki.paw5.model.entities.Employee;
+import finki.paw5.model.entities.Shelter;
 import finki.paw5.model.entities.User;
 import finki.paw5.model.enumerations.FreeTime;
@@ -10,4 +11,5 @@
 import finki.paw5.repository.AdopterRepository;
 import finki.paw5.repository.EmployeeRepository;
+import finki.paw5.repository.ShelterRepository;
 import finki.paw5.repository.UserRepository;
 import finki.paw5.service.AuthService;
@@ -22,9 +24,11 @@
     private final AdopterRepository adopterRepository;
     private final EmployeeRepository employeeRepository;
+    private final ShelterRepository shelterRepository;
 
-    public AuthServiceImplementation(UserRepository userRepository, AdopterRepository adopterRepository, EmployeeRepository employeeRepository) {
+    public AuthServiceImplementation(UserRepository userRepository, AdopterRepository adopterRepository, EmployeeRepository employeeRepository, ShelterRepository shelterRepository) {
         this.userRepository = userRepository;
         this.adopterRepository = adopterRepository;
         this.employeeRepository = employeeRepository;
+        this.shelterRepository = shelterRepository;
     }
 
@@ -47,5 +51,6 @@
     @Override
     public Employee registerEmployee(String name, String email, String password, String telephone, String position, Integer shelterId) {
-        Employee employee = new Employee(LocalDate.now(),name, email,password,telephone,position,shelterId,false);
+        Shelter shelter = this.shelterRepository.findById(shelterId).get();
+        Employee employee = new Employee(LocalDate.now(),name, email,password,telephone,position,shelter,false);
         return employeeRepository.save(employee);
     }
Index: Prototype Application/Paw5/src/main/java/finki/paw5/web/controllers/PetController.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/web/controllers/PetController.java	(revision c03e53b11c30be4154c0b49b97b7f14a38e15ba5)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/web/controllers/PetController.java	(revision e76c5a6bb5ec40745c75c33aecded9a310c6761c)
@@ -1,8 +1,7 @@
 package finki.paw5.web.controllers;
 
+import finki.paw5.model.entities.Adopter;
 import finki.paw5.model.entities.Adoption;
 import finki.paw5.model.entities.Pet;
-import finki.paw5.model.entities.User;
-import finki.paw5.model.exceptions.InvalidPetIdException;
 import finki.paw5.service.AdoptionService;
 import finki.paw5.service.PetService;
@@ -25,15 +24,15 @@
     }
 
-    @PostMapping("/submit-adopton-{id}")
+    @PostMapping("/submit-adoption-{id}")
     public String saveAdoption(@PathVariable Integer id, HttpServletRequest request) {
 
         Pet pet = this.petService.findById(id);
         
-        User user = (User) request.getSession().getAttribute("user");
+        Adopter adopter = (Adopter) request.getSession().getAttribute("user");
 
-        Adoption adoption = new Adoption(LocalDate.now(), null, false, user.getId());
+        Adoption adoption = new Adoption(LocalDate.now(), null, false, adopter);
         this.adoptionService.save(adoption);
 
-        pet.setAdoptionId(adoption.getId());
+        pet.setAdoption(adoption);
         this.petService.save(pet);
 
Index: Prototype Application/Paw5/src/main/java/finki/paw5/web/controllers/PostController.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/web/controllers/PostController.java	(revision c03e53b11c30be4154c0b49b97b7f14a38e15ba5)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/web/controllers/PostController.java	(revision e76c5a6bb5ec40745c75c33aecded9a310c6761c)
@@ -58,8 +58,8 @@
         if(newPetCheckbox == true){
 
-            Pet newPet = new Pet(imageUrl, AgeGroup.valueOf(ageGroup), Size.valueOf(size), breed, name, Species.valueOf(species), Gender.valueOf(gender), canBeFostered, null, employee.getShelterId());
+            Pet newPet = new Pet(imageUrl, AgeGroup.valueOf(ageGroup), Size.valueOf(size), breed, name, Species.valueOf(species), Gender.valueOf(gender), canBeFostered, null, employee.getShelter());
             this.petService.save(newPet);
 
-            Post post = new Post(LocalDate.now(), imageUrl, newPet.getId(), null, employee.getId());
+            Post post = new Post(LocalDate.now(), imageUrl, newPet, null, employee);
             this.postService.save(post);
 
@@ -68,5 +68,5 @@
             Pet selectedPet = this.petService.findById(petId);
 
-            Post post = new Post(LocalDate.now(), imageUrl, selectedPet.getId(), null, employee.getId());
+            Post post = new Post(LocalDate.now(), imageUrl, selectedPet, null, employee);
             this.postService.save(post);
 
@@ -92,5 +92,5 @@
 
         Post post = this.postService.findById(id).get();
-        Pet pet = this.petService.findById(post.getPetId());
+        Pet pet = post.getPet();
 
         model.addAttribute("pet", pet);
Index: Prototype Application/Paw5/src/main/resources/templates/list-posts-adoption.html
===================================================================
--- Prototype Application/Paw5/src/main/resources/templates/list-posts-adoption.html	(revision c03e53b11c30be4154c0b49b97b7f14a38e15ba5)
+++ Prototype Application/Paw5/src/main/resources/templates/list-posts-adoption.html	(revision e76c5a6bb5ec40745c75c33aecded9a310c6761c)
@@ -47,6 +47,6 @@
     <tr th:each = "post : ${posts}">
         <td th:text = "${post.getId()}"></td>
-        <td th:each = "pet : ${pets}" th:if="${post.getPetId()==pet.getId()}" th:text = "${pet.getName()}"></td>
-        <td th:each = "pet : ${pets}" th:if="${post.getPetId()==pet.getId()}" th:text = "${pet.getSpecies()}"></td>
+        <td th:text = "${post.getPet().getName()}"></td>
+        <td th:text = "${post.getPet().getSpecies()}"></td>
         <td>
             <form th:action="@{'/pet-details-{id}' (id=${post.getId()})}"
Index: Prototype Application/Paw5/src/main/resources/templates/pet-details.html
===================================================================
--- Prototype Application/Paw5/src/main/resources/templates/pet-details.html	(revision c03e53b11c30be4154c0b49b97b7f14a38e15ba5)
+++ Prototype Application/Paw5/src/main/resources/templates/pet-details.html	(revision e76c5a6bb5ec40745c75c33aecded9a310c6761c)
@@ -68,6 +68,6 @@
 </table>
 <form method="POST"
-      th:action="@{'/submit-adopton-{id}' (id=${pet.getId()})}"
-      th:if="${pet.getAdoptionId()==null}">
+      th:action="@{'/submit-adoption-{id}' (id=${pet.getId()})}"
+      th:if="${pet.getAdoption==null}">
     <button id="submit"
             type="submit"
