diff --git a/car/src/main/java/cz/muni/pa165/car/App.java b/car/src/main/java/cz/muni/pa165/car/App.java
index 9d3cd300580e2384f6ed002b2bb5808acb450f85..8d546b5142bc6cde3c95a98f00ed947ae323e2bb 100644
--- a/car/src/main/java/cz/muni/pa165/car/App.java
+++ b/car/src/main/java/cz/muni/pa165/car/App.java
@@ -1,11 +1,10 @@
 package cz.muni.pa165.car;
 
-import org.json.JSONArray;
-import org.json.JSONObject;
+import cz.muni.pa165.common_library.exception.RestExceptionHandler;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.domain.EntityScan;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
 import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
 
 /**
@@ -14,6 +13,7 @@ import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
 @SpringBootApplication(scanBasePackages = {"cz.muni.pa165.car"})
 @EnableJpaRepositories(basePackages = {"cz.muni.pa165.car"})
 @EntityScan("cz.muni.pa165.common_library")
+@Import(RestExceptionHandler.class)
 public class App {
 
   public static void main(String[] args) {
diff --git a/car/src/main/java/cz/muni/pa165/car/rest/CarComponentPairController.java b/car/src/main/java/cz/muni/pa165/car/rest/CarComponentPairController.java
index f5ce7dc40fdc8535d6c54d6bc24e9967b7c14651..a36ff9c478bd281801c6c6afc42c0fbb71c47b2a 100644
--- a/car/src/main/java/cz/muni/pa165/car/rest/CarComponentPairController.java
+++ b/car/src/main/java/cz/muni/pa165/car/rest/CarComponentPairController.java
@@ -28,7 +28,7 @@ public class CarComponentPairController {
   }
 
   /**
-   * Calls facade to add a component to a car.
+   * Calls service to add a component to a car.
    *
    * @param componentId Id of the component.
    * @param carId       Id of the car.
@@ -43,7 +43,7 @@ public class CarComponentPairController {
   }
 
   /**
-   * Calls facade to remove a component from a car.
+   * Calls service to remove a component from a car.
    *
    * @param componentId Id of the component.
    * @param carId       Id of the car.
@@ -58,7 +58,7 @@ public class CarComponentPairController {
   }
 
   /**
-   * Calls facade to get all components of a car.
+   * Calls service to get all components of a car.
    *
    * @param carId Id of the car.
    * @return List of components.
diff --git a/car/src/main/java/cz/muni/pa165/car/rest/CarController.java b/car/src/main/java/cz/muni/pa165/car/rest/CarController.java
index 3ad5c1e8cbdb7859a9fcdf1d4070fa69d9a676c8..8dd02ec82a53c8306e3b962cea4889eb16a37001 100644
--- a/car/src/main/java/cz/muni/pa165/car/rest/CarController.java
+++ b/car/src/main/java/cz/muni/pa165/car/rest/CarController.java
@@ -56,7 +56,7 @@ public class CarController {
    */
   @Operation(summary = "Delete a car")
   @DeleteMapping(path = "/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
-  public ResponseEntity<String> deleteCar(@Valid @RequestParam long carId) {
+  public ResponseEntity<String> deleteCar(@RequestParam Long carId) {
     return ResponseEntity.ok(carService.deleteById(carId));
   }
 
@@ -68,7 +68,7 @@ public class CarController {
    */
   @Operation(summary = "Get a car")
   @GetMapping(path = "/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
-  public ResponseEntity<CarDto> getCar(@RequestParam long carId) {
+  public ResponseEntity<CarDto> getCar(@RequestParam Long carId) {
     return ResponseEntity.ok(carService.getCarById(carId));
   }
 
diff --git a/car/src/main/java/cz/muni/pa165/car/rest/CarDriverPairController.java b/car/src/main/java/cz/muni/pa165/car/rest/CarDriverPairController.java
index 6e2e383dd6cd5955c7a9b0ceac2d4056cda7e0ed..88631333bdac050fb34f5f198982d3c53b91a96e 100644
--- a/car/src/main/java/cz/muni/pa165/car/rest/CarDriverPairController.java
+++ b/car/src/main/java/cz/muni/pa165/car/rest/CarDriverPairController.java
@@ -28,7 +28,7 @@ public class CarDriverPairController {
   }
 
   /**
-   * Calls facade to assign a driver to a car.
+   * Calls service to assign a driver to a car.
    *
    * @param driverId Id of the driver.
    * @param carId    Id of the car.
@@ -43,7 +43,7 @@ public class CarDriverPairController {
   }
 
   /**
-   * Calls facade to unassing a driver from a car.
+   * Calls service to unassing a driver from a car.
    *
    * @param driverId Id of the driver.
    * @param carId    Id of the car.
@@ -58,7 +58,7 @@ public class CarDriverPairController {
   }
 
   /**
-   * Calls facade to return all drivers assigned to a car.
+   * Calls service to return all drivers assigned to a car.
    *
    * @param carId Id of the car.
    * @return List of drivers.
diff --git a/car/src/main/java/cz/muni/pa165/car/service/CarComponentPairServiceImpl.java b/car/src/main/java/cz/muni/pa165/car/service/CarComponentPairServiceImpl.java
index a6306e7769280a1c5213c6d645b1662d847e4af3..dd57d9f67ef93d3f4530482ba5b4006730a705e9 100644
--- a/car/src/main/java/cz/muni/pa165/car/service/CarComponentPairServiceImpl.java
+++ b/car/src/main/java/cz/muni/pa165/car/service/CarComponentPairServiceImpl.java
@@ -6,6 +6,7 @@ import cz.muni.pa165.car.data.repository.CarRepository;
 import cz.muni.pa165.common_library.dtos.CarComponentDto;
 import cz.muni.pa165.common_library.dtos.CarDto;
 import cz.muni.pa165.common_library.exceptions.DatabaseException;
+import cz.muni.pa165.common_library.exception.DatabaseException;
 import cz.muni.pa165.common_library.racecomponents.CarComponent;
 import java.util.ArrayList;
 import java.util.List;
diff --git a/car/src/main/java/cz/muni/pa165/car/service/CarDriverPairServiceImpl.java b/car/src/main/java/cz/muni/pa165/car/service/CarDriverPairServiceImpl.java
index f0ffb61cdb8f02f2a6864bafbadfcd30f8218679..5429e76313e96e57d102e1a8cc446e8ced39812d 100644
--- a/car/src/main/java/cz/muni/pa165/car/service/CarDriverPairServiceImpl.java
+++ b/car/src/main/java/cz/muni/pa165/car/service/CarDriverPairServiceImpl.java
@@ -3,6 +3,7 @@ package cz.muni.pa165.car.service;
 import cz.muni.pa165.car.data.repository.CarDriverPairRepository;
 import cz.muni.pa165.car.data.repository.CarRepository;
 import cz.muni.pa165.car.data.repository.DriverRepository;
+import cz.muni.pa165.common_library.exception.DatabaseException;
 import cz.muni.pa165.common_library.dtos.CarDto;
 import cz.muni.pa165.common_library.dtos.DriverDto;
 import cz.muni.pa165.common_library.exceptions.DatabaseException;
diff --git a/car/src/main/java/cz/muni/pa165/car/service/CarServiceImpl.java b/car/src/main/java/cz/muni/pa165/car/service/CarServiceImpl.java
index 6cc42cd38b13eef371dcac2de866ee0f7f94eb5c..1a026f3fe67ada4dd76a2114824d7083da218be7 100644
--- a/car/src/main/java/cz/muni/pa165/car/service/CarServiceImpl.java
+++ b/car/src/main/java/cz/muni/pa165/car/service/CarServiceImpl.java
@@ -5,6 +5,7 @@ import cz.muni.pa165.car.data.repository.CarRepository;
 import cz.muni.pa165.car.data.repository.DriverRepository;
 import cz.muni.pa165.common_library.dtos.CarDto;
 import cz.muni.pa165.common_library.exceptions.DatabaseException;
+import cz.muni.pa165.common_library.exception.DatabaseException;
 import cz.muni.pa165.common_library.racecomponents.Car;
 import java.util.ArrayList;
 import java.util.List;
diff --git a/common_library/pom.xml b/common_library/pom.xml
index 17cbc2a2bdf5160660829e3449c1f4d8b4c50a8a..b4de2b6dd29cbad35645459ba4027021970749ab 100644
--- a/common_library/pom.xml
+++ b/common_library/pom.xml
@@ -20,18 +20,19 @@
         <dependency>
             <groupId>org.projectlombok</groupId>
             <artifactId>lombok</artifactId>
-            <version>1.18.24</version>
+            <version>1.18.26</version>
             <scope>provided</scope>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-jpa</artifactId>
+            <version>3.0.4</version>
+        </dependency>
         <dependency>
             <groupId>jakarta.validation</groupId>
             <artifactId>jakarta.validation-api</artifactId>
             <version>3.0.2</version>
         </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-data-jpa</artifactId>
-        </dependency>
         <dependency>
             <groupId>com.h2database</groupId>
             <artifactId>h2</artifactId>
diff --git a/common_library/src/main/java/cz/muni/pa165/common_library/exceptions/DatabaseException.java b/common_library/src/main/java/cz/muni/pa165/common_library/exceptions/DatabaseException.java
index 227b9a113ce56809dcc7ce7deedac992f9729096..52a05fb33cacbb98e03f839213e38e097aa68dd5 100644
--- a/common_library/src/main/java/cz/muni/pa165/common_library/exceptions/DatabaseException.java
+++ b/common_library/src/main/java/cz/muni/pa165/common_library/exceptions/DatabaseException.java
@@ -1,4 +1,4 @@
-package cz.muni.pa165.common_library.exceptions;
+package cz.muni.pa165.common_library.exception;
 
 /**
  * Exception when a query does is not executed correctly.
diff --git a/common_library/src/main/java/cz/muni/pa165/common_library/ExError.java b/common_library/src/main/java/cz/muni/pa165/common_library/exceptions/ExError.java
similarity index 68%
rename from common_library/src/main/java/cz/muni/pa165/common_library/ExError.java
rename to common_library/src/main/java/cz/muni/pa165/common_library/exceptions/ExError.java
index c63d4ecbd75e14360eb413d247481c1e8b39678d..e16b755b75acc9dd1dc1ca735038638312c7afa0 100644
--- a/common_library/src/main/java/cz/muni/pa165/common_library/ExError.java
+++ b/common_library/src/main/java/cz/muni/pa165/common_library/exceptions/ExError.java
@@ -1,16 +1,16 @@
-package cz.muni.pa165.common_library;
+package cz.muni.pa165.common_library.exception;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import java.time.LocalDateTime;
 import lombok.Getter;
 
 /**
- * exError.
+ * Response when exception is thrown in API.
  */
 public class ExError {
 
   @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd hh:mm:ss")
-  private final LocalDateTime timestamp = LocalDateTime.now();
+  private final LocalDateTime dateTime = LocalDateTime.now();
 
   @Getter
   private final String message;
diff --git a/common_library/src/main/java/cz/muni/pa165/common_library/exceptions/ResourceNotFoundException.java b/common_library/src/main/java/cz/muni/pa165/common_library/exceptions/ResourceNotFoundException.java
index 84517c811e0a1362bf2b9f604e63b5f9137915a7..eaeb206f378b375c22c20ae431878d6ec5c698ff 100644
--- a/common_library/src/main/java/cz/muni/pa165/common_library/exceptions/ResourceNotFoundException.java
+++ b/common_library/src/main/java/cz/muni/pa165/common_library/exceptions/ResourceNotFoundException.java
@@ -1,4 +1,4 @@
-package cz.muni.pa165.common_library.exceptions;
+package cz.muni.pa165.common_library.exception;
 
 /**
  * Exception when resource does not exist.
diff --git a/common_library/src/main/java/cz/muni/pa165/common_library/exceptions/RestExceptionHandler.java b/common_library/src/main/java/cz/muni/pa165/common_library/exceptions/RestExceptionHandler.java
new file mode 100644
index 0000000000000000000000000000000000000000..2fa79a3098fc9805deaad690d50971d912746804
--- /dev/null
+++ b/common_library/src/main/java/cz/muni/pa165/common_library/exceptions/RestExceptionHandler.java
@@ -0,0 +1,105 @@
+package cz.muni.pa165.common_library.exception;
+
+import jakarta.persistence.EntityNotFoundException;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.http.converter.HttpMessageNotReadableException;
+import org.springframework.validation.FieldError;
+import org.springframework.validation.ObjectError;
+import org.springframework.web.bind.MethodArgumentNotValidException;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.ResponseStatus;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+import org.springframework.web.servlet.NoHandlerFoundException;
+
+/**
+ * Exception handler for all controllers.
+ */
+@RestControllerAdvice
+public class RestExceptionHandler {
+
+  /**
+   * Handlers for 404 status code.
+   *
+   * @param ex thrown exception.
+   * @return Message with datetime.
+   */
+  @ExceptionHandler(EntityNotFoundException.class)
+  @ResponseStatus(HttpStatus.NOT_FOUND)
+  public ResponseEntity<ExError> handleEntityNotFoundException(EntityNotFoundException ex) {
+    return new ResponseEntity<>(
+        new ExError(ex.getMessage()), new HttpHeaders(), HttpStatus.NOT_FOUND);
+  }
+
+  /**
+   * Handlers for 404 when resource is not found in the database.
+   *
+   * @param ex thrown exception.
+   * @return Message with datetime.
+   */
+  @ExceptionHandler(DatabaseException.class)
+  @ResponseStatus(HttpStatus.NOT_FOUND)
+  public ResponseEntity<ExError> handleDatabaseException(DatabaseException ex) {
+    return new ResponseEntity<>(
+        new ExError(ex.getMessage()), new HttpHeaders(), HttpStatus.NOT_FOUND);
+  }
+
+  /**
+   * Handlers for 404 when there is no endpoint mapped to the requested path.
+   *
+   * @param ex thrown exception.
+   * @return Message with datetime.
+   */
+  @ExceptionHandler(NoHandlerFoundException.class)
+  @ResponseStatus(HttpStatus.NOT_FOUND)
+  public ResponseEntity<ExError> handleNoHandlerFoundException(NoHandlerFoundException ex) {
+    return new ResponseEntity<>(
+        new ExError(ex.getMessage()), new HttpHeaders(), HttpStatus.NOT_FOUND);
+  }
+
+  /**
+   * Handler for 400 status code when json is not valid.
+   *
+   * @param ex thrown exception.
+   * @return Message with datetime.
+   */
+  @ExceptionHandler(HttpMessageNotReadableException.class)
+  @ResponseStatus(HttpStatus.BAD_REQUEST)
+  public ResponseEntity<ExError> handleNotReadableException(HttpMessageNotReadableException ex) {
+    return new ResponseEntity<>(
+        new ExError(ex.getMessage()), new HttpHeaders(), HttpStatus.BAD_REQUEST);
+  }
+
+  /**
+   * Handler for 400 status code when there are validation exceptions.
+   *
+   * @param ex thrown exception.
+   * @return Message with datetime.
+   */
+  @ExceptionHandler(MethodArgumentNotValidException.class)
+  @ResponseStatus(HttpStatus.BAD_REQUEST)
+  public ResponseEntity<ExError> handleValidationException(MethodArgumentNotValidException ex) {
+    String message = ex.getMessage();
+    try {
+
+      StringBuilder validtionMessage = new StringBuilder("Validation Errors: [");
+      var validationErrors = ex.getBindingResult().getAllErrors();
+      for (ObjectError error : validationErrors) {
+        var errorField = (FieldError) error;
+        var errorMessage = errorField.getDefaultMessage();
+        var fieldName =  errorField.getField();
+
+        validtionMessage.append(" field ").append(fieldName).append(": ")
+            .append(errorMessage).append(",");
+      }
+      validtionMessage.deleteCharAt(validtionMessage.length() - 1);
+      validtionMessage.append(" ]");
+      message = validtionMessage.toString();
+    } catch (Exception e) {
+      System.out.println("When creating validation error message: " + e.getMessage());
+    }
+    return new ResponseEntity<>(
+        new ExError(message), new HttpHeaders(), HttpStatus.BAD_REQUEST);
+  }
+}
diff --git a/driver/pom.xml b/driver/pom.xml
index c7efb5a8f4b2790287ea35bf26a6d747b5df74d6..73c6c6d3325e0e14af76f1d143ed003da5437ae0 100644
--- a/driver/pom.xml
+++ b/driver/pom.xml
@@ -20,11 +20,6 @@
             <artifactId>h2</artifactId>
             <version>2.1.214</version>
         </dependency>
-        <dependency>
-            <groupId>org.json</groupId>
-            <artifactId>json</artifactId>
-            <version>20210307</version>
-        </dependency>
         <dependency>
             <groupId>jakarta.validation</groupId>
             <artifactId>jakarta.validation-api</artifactId>
diff --git a/driver/src/main/java/cz/muni/pa165/driver/service/CarServiceImpl.java b/driver/src/main/java/cz/muni/pa165/driver/service/CarServiceImpl.java
index bedb933246daa4c74236edd0c21abeb9f60f8de1..6108391d0156d284d07da0fad3f2c66297916dcf 100644
--- a/driver/src/main/java/cz/muni/pa165/driver/service/CarServiceImpl.java
+++ b/driver/src/main/java/cz/muni/pa165/driver/service/CarServiceImpl.java
@@ -2,6 +2,8 @@ package cz.muni.pa165.driver.service;
 
 import cz.muni.pa165.common_library.dtos.DriverCarDto;
 import cz.muni.pa165.common_library.exceptions.ResourceNotFoundException;
+import cz.muni.pa165.common_library.exception.ResourceNotFoundException;
+import cz.muni.pa165.driver.api.DriverCarDto;
 import cz.muni.pa165.driver.data.repository.CarRepository;
 import cz.muni.pa165.driver.data.repository.DriverRepository;
 import cz.muni.pa165.driver.mapper.DriverCarMapper;
diff --git a/driver/src/main/java/cz/muni/pa165/driver/service/DriverServiceImpl.java b/driver/src/main/java/cz/muni/pa165/driver/service/DriverServiceImpl.java
index 8be73de0f7fa48223d3b26ff327bddd5ccdc396c..a78036065acc422c6344d3cca658e6326c3067fe 100644
--- a/driver/src/main/java/cz/muni/pa165/driver/service/DriverServiceImpl.java
+++ b/driver/src/main/java/cz/muni/pa165/driver/service/DriverServiceImpl.java
@@ -4,6 +4,10 @@ import cz.muni.pa165.common_library.dtos.DriverInsightDto;
 import cz.muni.pa165.common_library.dtos.DriverResponseDto;
 import cz.muni.pa165.common_library.dtos.DriverUpdateDto;
 import cz.muni.pa165.common_library.exceptions.ResourceNotFoundException;
+import cz.muni.pa165.common_library.exception.ResourceNotFoundException;
+import cz.muni.pa165.driver.api.DriverInsightDto;
+import cz.muni.pa165.driver.api.DriverResponseDto;
+import cz.muni.pa165.driver.api.DriverUpdateDto;
 import cz.muni.pa165.driver.data.repository.DriverRepository;
 import cz.muni.pa165.driver.mapper.DriverMapper;
 import java.util.List;
diff --git a/race/pom.xml b/race/pom.xml
index d167553f8e4ba2ab09b101a3a92bbd3ebb6a9693..266c650e014f8a1ddca70c7dbf43f2ba0338defa 100644
--- a/race/pom.xml
+++ b/race/pom.xml
@@ -35,7 +35,7 @@
         <dependency>
             <groupId>org.projectlombok</groupId>
             <artifactId>lombok</artifactId>
-            <version>1.18.24</version>
+            <version>1.18.26</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
@@ -46,12 +46,7 @@
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-data-jpa</artifactId>
-            <version>3.0.2</version>
-        </dependency>
-        <dependency>
-            <groupId>org.hsqldb</groupId>
-            <artifactId>hsqldb</artifactId>
-            <version>2.7.1</version>
+            <version>3.0.4</version>
         </dependency>
     </dependencies>
     <properties>
diff --git a/race/src/main/java/cz/muni/pa165/race/App.java b/race/src/main/java/cz/muni/pa165/race/App.java
index c228eb2c8d5d7dfb5ca07ae24efb658d57dee2ee..f690c949558466738253d1e62099738b8d74202b 100644
--- a/race/src/main/java/cz/muni/pa165/race/App.java
+++ b/race/src/main/java/cz/muni/pa165/race/App.java
@@ -1,5 +1,6 @@
 package cz.muni.pa165.race;
 
+import cz.muni.pa165.common_library.exception.RestExceptionHandler;
 import cz.muni.pa165.common_library.racecomponents.Car;
 import cz.muni.pa165.common_library.racecomponents.Driver;
 import cz.muni.pa165.common_library.racecomponents.Race;
@@ -7,6 +8,7 @@ import cz.muni.pa165.common_library.racecomponents.Season;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.context.annotation.Import;
 import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
 
@@ -17,6 +19,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
 @EnableJpaRepositories(basePackages = "cz.muni.pa165.race.data.repository")
 @EnableTransactionManagement
 @EntityScan(basePackageClasses = {Race.class, Season.class, Car.class, Driver.class})
+@Import(RestExceptionHandler.class)
 public class App {
 
   public static void main(String[] args) {
diff --git a/race/src/main/java/cz/muni/pa165/race/RestExceptionHandler.java b/race/src/main/java/cz/muni/pa165/race/RestExceptionHandler.java
index 4cd225fe33da256549f118cc7a40af7a2e61afcf..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644
--- a/race/src/main/java/cz/muni/pa165/race/RestExceptionHandler.java
+++ b/race/src/main/java/cz/muni/pa165/race/RestExceptionHandler.java
@@ -1,47 +0,0 @@
-package cz.muni.pa165.race;
-
-import cz.muni.pa165.common_library.ExError;
-import cz.muni.pa165.common_library.exceptions.DatabaseException;
-import jakarta.persistence.EntityNotFoundException;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.ExceptionHandler;
-import org.springframework.web.bind.annotation.ResponseStatus;
-import org.springframework.web.bind.annotation.RestControllerAdvice;
-import org.springframework.web.servlet.NoHandlerFoundException;
-
-/**
- * Rest exception handler.
- */
-@RestControllerAdvice
-public class RestExceptionHandler {
-
-  /**
-   * wtf3.
-   *
-   * @param ex wtf.
-   * @return wtf2.
-   */
-  @ExceptionHandler(EntityNotFoundException.class)
-  @ResponseStatus(HttpStatus.NOT_FOUND)
-  public ResponseEntity<ExError> handleEntityNotFoundException(EntityNotFoundException ex) {
-    System.out.println();
-    return new ResponseEntity<>(
-        new ExError(ex.getMessage()), new HttpHeaders(), HttpStatus.NOT_FOUND);
-  }
-
-  @ExceptionHandler(DatabaseException.class)
-  @ResponseStatus(HttpStatus.NOT_FOUND)
-  public ResponseEntity<ExError> handleDatabaseException(DatabaseException ex) {
-    return new ResponseEntity<>(
-        new ExError(ex.getMessage()), new HttpHeaders(), HttpStatus.NOT_FOUND);
-  }
-
-  @ExceptionHandler(NoHandlerFoundException.class)
-  @ResponseStatus(HttpStatus.NOT_FOUND)
-  public ResponseEntity<ExError> handleDatabaseException(NoHandlerFoundException ex) {
-    return new ResponseEntity<>(
-        new ExError(ex.getMessage()), new HttpHeaders(), HttpStatus.NOT_FOUND);
-  }
-}
diff --git a/race/src/main/java/cz/muni/pa165/race/service/RaceService.java b/race/src/main/java/cz/muni/pa165/race/service/RaceService.java
index 45ea193576a5eb705bc64551cfd26f7209550229..9dded1ab9b33147408bd1a90b2ec0113aa729382 100644
--- a/race/src/main/java/cz/muni/pa165/race/service/RaceService.java
+++ b/race/src/main/java/cz/muni/pa165/race/service/RaceService.java
@@ -2,6 +2,7 @@ package cz.muni.pa165.race.service;
 
 import cz.muni.pa165.common_library.dtos.RaceDto;
 import cz.muni.pa165.common_library.exceptions.DatabaseException;
+import cz.muni.pa165.common_library.exception.DatabaseException;
 import cz.muni.pa165.common_library.racecomponents.Car;
 import cz.muni.pa165.common_library.racecomponents.Driver;
 import cz.muni.pa165.common_library.racecomponents.Race;
diff --git a/race/src/main/java/cz/muni/pa165/race/service/SeasonService.java b/race/src/main/java/cz/muni/pa165/race/service/SeasonService.java
index 0b2c74f8cd42164a29e8cfea0c6ff7df9f6cb830..fef3482fc3fd92d415eda6e6f4ddac4945c592e0 100644
--- a/race/src/main/java/cz/muni/pa165/race/service/SeasonService.java
+++ b/race/src/main/java/cz/muni/pa165/race/service/SeasonService.java
@@ -3,8 +3,12 @@ package cz.muni.pa165.race.service;
 import cz.muni.pa165.common_library.dtos.RaceNameDto;
 import cz.muni.pa165.common_library.dtos.SeasonDto;
 import cz.muni.pa165.common_library.exceptions.DatabaseException;
+import cz.muni.pa165.common_library.exception.DatabaseException;
 import cz.muni.pa165.common_library.racecomponents.Race;
 import cz.muni.pa165.common_library.racecomponents.Season;
+import cz.muni.pa165.common_library.racecomponents.Season;
+import cz.muni.pa165.race.api.RaceNameDto;
+import cz.muni.pa165.race.api.SeasonDto;
 import cz.muni.pa165.race.data.repository.RaceRepository;
 import cz.muni.pa165.race.data.repository.SeasonRepository;
 import java.util.List;
@@ -22,8 +26,9 @@ public class SeasonService implements SeasonServiceInterface {
   @Autowired
   RaceRepository raceRepository;
 
-  SeasonService() {
-
+  SeasonService(SeasonRepository seasonRepository, RaceRepository raceRepository) {
+    this.seasonRepository = seasonRepository;
+    this.raceRepository = raceRepository;
   }
 
   /**
@@ -73,11 +78,11 @@ public class SeasonService implements SeasonServiceInterface {
   }
 
   /**
-   * Calls repository to add race to the season.
+   * Calls repository to add a race into a season in the database.
    *
-   * @param raceId id of the race.
-   * @param seasonId id of the season.
-   * @return returned Dto.
+   * @param raceId race id.
+   * @param seasonId season id.
+   * @return modified race.
    */
   public SeasonDto addRace(Long raceId, Long seasonId) {
     var season = seasonRepository.findById(seasonId)
@@ -88,8 +93,8 @@ public class SeasonService implements SeasonServiceInterface {
     return seasonConverter(seasonRepository.save(season));
   }
 
-  Season seasonDtoConverter(SeasonDto seasonDto) {
-    var a = Season.builder()
+  private Season seasonDtoConverter(SeasonDto seasonDto) {
+    return Season.builder()
         .id(seasonDto.getId())
         .seasonYear(seasonDto.getYear())
         .races(seasonDto.getRaces()
@@ -97,11 +102,9 @@ public class SeasonService implements SeasonServiceInterface {
             .map(this::getRace)
             .toList())
         .build();
-    System.out.println();
-    return a;
   }
 
-  SeasonDto seasonConverter(Season season) {
+  private SeasonDto seasonConverter(Season season) {
     return SeasonDto.builder()
         .id(season.getId())
         .year(season.getSeasonYear())
diff --git a/race/src/main/java/cz/muni/pa165/race/service/SeasonServiceInterface.java b/race/src/main/java/cz/muni/pa165/race/service/SeasonServiceInterface.java
index 62cf0c3b94d265d693e533f254d188af5bcda1bc..80da12d7a9743d1a060d9e1a1ea92d1514c14eff 100644
--- a/race/src/main/java/cz/muni/pa165/race/service/SeasonServiceInterface.java
+++ b/race/src/main/java/cz/muni/pa165/race/service/SeasonServiceInterface.java
@@ -4,7 +4,7 @@ import cz.muni.pa165.common_library.dtos.SeasonDto;
 import java.util.List;
 
 /**
- * Service for season.
+ * Interface for season service.
  */
 public interface SeasonServiceInterface {
 
diff --git a/race/src/main/resources/application.yml b/race/src/main/resources/application.yml
index 9158b3e697b9f6591430251cca31926307567051..8a8fefb4d5bf5292f5b0a1e0c80d2d44c341901f 100644
--- a/race/src/main/resources/application.yml
+++ b/race/src/main/resources/application.yml
@@ -18,3 +18,8 @@ spring:
     driverClassName: org.h2.Driver
     username: admin
     password: admin
+  mvc:
+    throw-exception-if-no-handler-found: true
+  web:
+    resources:
+      add-mappings: false