diff --git a/core/src/main/java/cz/muni/fi/pa165/core/facade/airplane/AirplaneFacade.java b/core/src/main/java/cz/muni/fi/pa165/core/facade/airplane/AirplaneFacade.java
index f260b24903294bd916a79e03ac0acd919149d95c..b305d74c6f20d73bbb9df83d02e6064949eefaa4 100644
--- a/core/src/main/java/cz/muni/fi/pa165/core/facade/airplane/AirplaneFacade.java
+++ b/core/src/main/java/cz/muni/fi/pa165/core/facade/airplane/AirplaneFacade.java
@@ -26,5 +26,5 @@ public interface AirplaneFacade<K> {
 
     void deleteAirplaneTypeAssignment(Long airplaneId, Long airplaneTypeId);
 
-    AirplaneDto update(Long id, NewAirplaneDtoRequest newAirplaneDto);
+    AirplaneDto update(Long id, NewAirplaneDtoRequest newAirplaneDtoRequest);
 }
diff --git a/core/src/main/java/cz/muni/fi/pa165/core/facade/airplane/AirplaneFacadeImpl.java b/core/src/main/java/cz/muni/fi/pa165/core/facade/airplane/AirplaneFacadeImpl.java
index 2d56d856c27af5c3b2b9f57f203a167ba968aad4..8aa3d8c26d7f2e974e75b095d48b90d51c5e6f08 100644
--- a/core/src/main/java/cz/muni/fi/pa165/core/facade/airplane/AirplaneFacadeImpl.java
+++ b/core/src/main/java/cz/muni/fi/pa165/core/facade/airplane/AirplaneFacadeImpl.java
@@ -1,14 +1,11 @@
 package cz.muni.fi.pa165.core.facade.airplane;
 
-import cz.muni.fi.pa165.core.data.domain.Airplane;
 import cz.muni.fi.pa165.core.exceptions.ResourceNotFoundException;
+import cz.muni.fi.pa165.core.mapper.AirplaneMapper;
 import cz.muni.fi.pa165.core.model.AirplaneDto;
-import cz.muni.fi.pa165.core.model.AirplaneTypeDto;
 import cz.muni.fi.pa165.core.model.NewAirplaneDtoRequest;
 import cz.muni.fi.pa165.core.service.airplane.AirplaneService;
 import cz.muni.fi.pa165.core.service.airplanetype.AirplaneTypeService;
-import org.modelmapper.ModelMapper;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -19,33 +16,35 @@ public class AirplaneFacadeImpl implements AirplaneFacade<Long> {
 
     private final AirplaneService airplaneService;
     private final AirplaneTypeService airplaneTypeService;
-    private final ModelMapper modelMapper;
+    private final AirplaneMapper airplaneMapper;
 
-    @Autowired
-    public AirplaneFacadeImpl(AirplaneService airplaneService, AirplaneTypeService airplaneTypeService, ModelMapper modelMapper) {
+    public AirplaneFacadeImpl(AirplaneService airplaneService, AirplaneTypeService airplaneTypeService,
+                              AirplaneMapper airplaneMapper) {
         this.airplaneService = airplaneService;
         this.airplaneTypeService = airplaneTypeService;
-        this.modelMapper = modelMapper;
+        this.airplaneMapper = airplaneMapper;
     }
 
     @Override
     public AirplaneDto save(NewAirplaneDtoRequest newAirplaneDtoRequest) {
-        var entityToSave = modelMapper.map(newAirplaneDtoRequest, Airplane.class);
+        var entityToSave = airplaneMapper.toEntityFromNewRequest(newAirplaneDtoRequest);
         var savedEntity = airplaneService.save(entityToSave);
-        return modelMapper.map(savedEntity, AirplaneDto.class);
+        return airplaneMapper.toDto(savedEntity);
     }
 
     @Override
     public Optional<AirplaneDto> findById(Long id) {
-        var foundEntity = airplaneService.findById(id);
-        return foundEntity.map(e -> modelMapper.map(e, AirplaneDto.class));
+        var foundEntity = airplaneService.findById(id)
+                .orElseThrow(() -> new ResourceNotFoundException("Not Found."));
+
+        return Optional.ofNullable(airplaneMapper.toDto(foundEntity));
     }
 
     @Override
     public List<AirplaneDto> findAll() {
         var entities = airplaneService.findAll();
         return entities.stream()
-                .map(entity -> modelMapper.map(entity, AirplaneDto.class))
+                .map(airplaneMapper::toDto)
                 .toList();
     }
 
@@ -74,7 +73,7 @@ public class AirplaneFacadeImpl implements AirplaneFacade<Long> {
         airplaneEntity.setType(airplaneTypeEntity);
         airplaneService.save(airplaneEntity);
 
-        return mapToDtoWithMember(airplaneEntity);
+        return airplaneMapper.toDto(airplaneEntity);
     }
 
     @Override
@@ -89,17 +88,10 @@ public class AirplaneFacadeImpl implements AirplaneFacade<Long> {
     }
 
     @Override
-    public AirplaneDto update(Long id, NewAirplaneDtoRequest newAirplaneDto) {
-        var newAirplaneEntity = modelMapper.map(newAirplaneDto, Airplane.class);
+    public AirplaneDto update(Long id, NewAirplaneDtoRequest newAirplaneDtoRequest) {
+        var newAirplaneEntity = airplaneMapper.toEntityFromNewRequest(newAirplaneDtoRequest);
 
-        return modelMapper.map(airplaneService.update(id, newAirplaneEntity), AirplaneDto.class);
+        return airplaneMapper.toDto(newAirplaneEntity);
     }
 
-    private AirplaneDto mapToDtoWithMember(Airplane airplane) {
-        var airplaneTypeDto = modelMapper.map(airplane.getType(), AirplaneTypeDto.class);
-        var airplaneDto = modelMapper.map(airplane, AirplaneDto.class);
-        airplaneDto.setType(airplaneTypeDto);
-
-        return airplaneDto;
-    }
 }
diff --git a/core/src/main/java/cz/muni/fi/pa165/core/facade/airplanetype/AirplaneTypeFacade.java b/core/src/main/java/cz/muni/fi/pa165/core/facade/airplanetype/AirplaneTypeFacade.java
index abf14a78e11c43462f47742efde7c939b79b7dfc..2f01c4dcd2a3caa0ecf5dff20b9558faadaab375 100644
--- a/core/src/main/java/cz/muni/fi/pa165/core/facade/airplanetype/AirplaneTypeFacade.java
+++ b/core/src/main/java/cz/muni/fi/pa165/core/facade/airplanetype/AirplaneTypeFacade.java
@@ -22,5 +22,5 @@ public interface AirplaneTypeFacade<K> {
 
     void deleteAll();
 
-    AirplaneTypeDto update(K id, NewAirplaneTypeDtoRequest newAirplaneTypeDto);
+    AirplaneTypeDto update(K id, NewAirplaneTypeDtoRequest newAirplaneTypeDtoRequest);
 }
\ No newline at end of file
diff --git a/core/src/main/java/cz/muni/fi/pa165/core/facade/airplanetype/AirplaneTypeFacadeImpl.java b/core/src/main/java/cz/muni/fi/pa165/core/facade/airplanetype/AirplaneTypeFacadeImpl.java
index 27b36fd69aeae4a95cc27e74f5bbb37b5621315d..7bc0fff5c999d7797c1eea6033835bba1de488ff 100644
--- a/core/src/main/java/cz/muni/fi/pa165/core/facade/airplanetype/AirplaneTypeFacadeImpl.java
+++ b/core/src/main/java/cz/muni/fi/pa165/core/facade/airplanetype/AirplaneTypeFacadeImpl.java
@@ -1,12 +1,10 @@
 package cz.muni.fi.pa165.core.facade.airplanetype;
 
-import cz.muni.fi.pa165.core.data.domain.AirplaneType;
 import cz.muni.fi.pa165.core.exceptions.ResourceNotFoundException;
+import cz.muni.fi.pa165.core.mapper.AirplaneTypeMapper;
 import cz.muni.fi.pa165.core.model.AirplaneTypeDto;
-import cz.muni.fi.pa165.core.model.NewAirplaneDtoRequest;
 import cz.muni.fi.pa165.core.model.NewAirplaneTypeDtoRequest;
 import cz.muni.fi.pa165.core.service.airplanetype.AirplaneTypeService;
-import org.modelmapper.ModelMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -17,32 +15,34 @@ import java.util.Optional;
 public class AirplaneTypeFacadeImpl implements AirplaneTypeFacade<Long> {
 
     private final AirplaneTypeService airplaneTypeService;
-    private final ModelMapper modelMapper;
+    private final AirplaneTypeMapper airplaneTypeMapper;
 
     @Autowired
-    public AirplaneTypeFacadeImpl(AirplaneTypeService airplaneTypeService, ModelMapper modelMapper) {
+    public AirplaneTypeFacadeImpl(AirplaneTypeService airplaneTypeService, AirplaneTypeMapper airplaneTypeMapper) {
         this.airplaneTypeService = airplaneTypeService;
-        this.modelMapper = modelMapper;
+        this.airplaneTypeMapper = airplaneTypeMapper;
     }
 
     @Override
     public AirplaneTypeDto save(NewAirplaneTypeDtoRequest newAirplaneTypeDtoRequest) {
-        var entityToSave = modelMapper.map(newAirplaneTypeDtoRequest, AirplaneType.class);
+        var entityToSave = airplaneTypeMapper.toEntityFromNewRequest(newAirplaneTypeDtoRequest);
         var savedEntity = airplaneTypeService.save(entityToSave);
-        return modelMapper.map(savedEntity, AirplaneTypeDto.class);
+        return airplaneTypeMapper.toDto(savedEntity);
     }
 
     @Override
     public Optional<AirplaneTypeDto> findById(Long id) {
-        var foundEntity = airplaneTypeService.findById(id);
-        return foundEntity.map(e -> modelMapper.map(e, AirplaneTypeDto.class));
+        var foundEntity = airplaneTypeService.findById(id)
+                .orElseThrow(() -> new ResourceNotFoundException("Not Found."));
+
+        return Optional.ofNullable(airplaneTypeMapper.toDto(foundEntity));
     }
 
     @Override
     public List<AirplaneTypeDto> findAll() {
         var entities = airplaneTypeService.findAll();
         return entities.stream()
-                .map(entity -> modelMapper.map(entity, AirplaneTypeDto.class))
+                .map(airplaneTypeMapper::toDto)
                 .toList();
     }
 
@@ -57,10 +57,10 @@ public class AirplaneTypeFacadeImpl implements AirplaneTypeFacade<Long> {
     }
 
     @Override
-    public AirplaneTypeDto update(Long id, NewAirplaneTypeDtoRequest newAirplaneTypeDto) {
-        var newAirplaneTypeEntity = modelMapper.map(newAirplaneTypeDto, AirplaneType.class);
+    public AirplaneTypeDto update(Long id, NewAirplaneTypeDtoRequest newAirplaneTypeDtoRequest) {
+        var newAirplaneTypeEntity = airplaneTypeMapper.toEntityFromNewRequest(newAirplaneTypeDtoRequest);
 
-        return modelMapper.map(airplaneTypeService.update(id, newAirplaneTypeEntity), AirplaneTypeDto.class);
+        return airplaneTypeMapper.toDto(newAirplaneTypeEntity);
     }
 
 }
diff --git a/core/src/main/java/cz/muni/fi/pa165/core/facade/flight/FlightFacadeImpl.java b/core/src/main/java/cz/muni/fi/pa165/core/facade/flight/FlightFacadeImpl.java
index 4bff4f36bf5e16437814f2d0f0fe0da4576769b9..a85902b871bc80d50fae6a3b2206b8e62b97e548 100644
--- a/core/src/main/java/cz/muni/fi/pa165/core/facade/flight/FlightFacadeImpl.java
+++ b/core/src/main/java/cz/muni/fi/pa165/core/facade/flight/FlightFacadeImpl.java
@@ -1,8 +1,11 @@
 package cz.muni.fi.pa165.core.facade.flight;
 
 import cz.muni.fi.pa165.core.data.domain.Flight;
+import cz.muni.fi.pa165.core.exceptions.ResourceNotFoundException;
+import cz.muni.fi.pa165.core.mapper.FlightMapper;
 import cz.muni.fi.pa165.core.model.FlightDto;
 import cz.muni.fi.pa165.core.model.NewFlightDtoRequest;
+import cz.muni.fi.pa165.core.model.StewardDto;
 import cz.muni.fi.pa165.core.service.flight.FlightService;
 import org.modelmapper.ModelMapper;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -16,11 +19,13 @@ public class FlightFacadeImpl implements FlightFacade<Long> {
 
     private final FlightService flightService;
     private final ModelMapper modelMapper;
+    private final FlightMapper flightMapper;
 
     @Autowired
-    public FlightFacadeImpl(FlightService flightService, ModelMapper modelMapper) {
+    public FlightFacadeImpl(FlightService flightService, ModelMapper modelMapper, FlightMapper flightMapper) {
         this.flightService = flightService;
         this.modelMapper = modelMapper;
+        this.flightMapper = flightMapper;
     }
 
     @Override
@@ -32,8 +37,18 @@ public class FlightFacadeImpl implements FlightFacade<Long> {
 
     @Override
     public Optional<FlightDto> findById(Long id) {
-        var foundEntity = flightService.findById(id);
-        return foundEntity.map(e -> modelMapper.map(e, FlightDto.class));
+        var foundFlightEntity = flightService.findById(id)
+                .orElseThrow(() -> new ResourceNotFoundException("Not Found."));
+
+        return Optional.ofNullable(flightMapper.toDto(foundFlightEntity));
+
+//        var flightDto = modelMapper.map(foundFlightEntity, FlightDto.class);
+//
+//        for (var flightSteward: foundFlightEntity.getFlightStewards()) {
+//            flightDto.addStewardsItem(modelMapper.map(flightSteward.getSteward(), StewardDto.class));
+//        }
+//
+//        return Optional.ofNullable(flightDto);
     }
 
     @Override
diff --git a/core/src/main/java/cz/muni/fi/pa165/core/mapper/AirplaneMapper.java b/core/src/main/java/cz/muni/fi/pa165/core/mapper/AirplaneMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..a485225311f9246e3c5ded5f217b3264032073a5
--- /dev/null
+++ b/core/src/main/java/cz/muni/fi/pa165/core/mapper/AirplaneMapper.java
@@ -0,0 +1,16 @@
+package cz.muni.fi.pa165.core.mapper;
+
+import cz.muni.fi.pa165.core.data.domain.Airplane;
+import cz.muni.fi.pa165.core.model.AirplaneDto;
+import cz.muni.fi.pa165.core.model.NewAirplaneDtoRequest;
+import org.mapstruct.Mapper;
+
+@Mapper(componentModel = "spring")
+public interface AirplaneMapper {
+
+    Airplane toEntity(AirplaneDto airplaneDto);
+
+    Airplane toEntityFromNewRequest(NewAirplaneDtoRequest newAirplaneDtoRequest);
+
+    AirplaneDto toDto(Airplane airplane);
+}
diff --git a/core/src/main/java/cz/muni/fi/pa165/core/mapper/AirplaneTypeMapper.java b/core/src/main/java/cz/muni/fi/pa165/core/mapper/AirplaneTypeMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..1962931f0196f6c68ff300d9886935f51ca14e53
--- /dev/null
+++ b/core/src/main/java/cz/muni/fi/pa165/core/mapper/AirplaneTypeMapper.java
@@ -0,0 +1,16 @@
+package cz.muni.fi.pa165.core.mapper;
+
+import cz.muni.fi.pa165.core.data.domain.AirplaneType;
+import cz.muni.fi.pa165.core.model.AirplaneTypeDto;
+import cz.muni.fi.pa165.core.model.NewAirplaneTypeDtoRequest;
+import org.mapstruct.Mapper;
+
+@Mapper(componentModel = "spring")
+public interface AirplaneTypeMapper {
+
+    AirplaneType toEntity(AirplaneTypeDto airplaneTypeDto);
+
+    AirplaneType toEntityFromNewRequest(NewAirplaneTypeDtoRequest newAirplaneTypeDtoRequest);
+
+    AirplaneTypeDto toDto(AirplaneType airplaneType);
+}