diff --git a/src/main/java/fr/univamu/progav/td9/BookException.java b/src/main/java/fr/univamu/progav/td9/BookException.java
index 4a4f47b70a570e5241522bb211262e6d87be932f..de3e1e88ce0100ebc3cc56918c82b52359c0831d 100644
--- a/src/main/java/fr/univamu/progav/td9/BookException.java
+++ b/src/main/java/fr/univamu/progav/td9/BookException.java
@@ -2,8 +2,4 @@ package fr.univamu.progav.td9;
 
 public class BookException extends Exception {
 
-  public Book book() {
-    // TODO
-    return null;
-  }
 }
diff --git a/src/main/java/fr/univamu/progav/td9/BookNotFoundException.java b/src/main/java/fr/univamu/progav/td9/BookNotFoundException.java
index caa7cd3ed44483d4ecfcec5de94a289514f167af..5ab458f0d90a9030ff8f8d6e5856608723738e1d 100644
--- a/src/main/java/fr/univamu/progav/td9/BookNotFoundException.java
+++ b/src/main/java/fr/univamu/progav/td9/BookNotFoundException.java
@@ -1,4 +1,5 @@
 package fr.univamu.progav.td9;
 
 public class BookNotFoundException extends BookException {
+  //TODO
 }
diff --git a/src/main/java/fr/univamu/progav/td9/BookUnavailableException.java b/src/main/java/fr/univamu/progav/td9/BookUnavailableException.java
index a6dfffc9384122ce1dfc019c080d44978b350ecd..be7bebdf085627dafae376a74c117a41bbe1538b 100644
--- a/src/main/java/fr/univamu/progav/td9/BookUnavailableException.java
+++ b/src/main/java/fr/univamu/progav/td9/BookUnavailableException.java
@@ -1,4 +1,5 @@
 package fr.univamu.progav.td9;
 
 public class BookUnavailableException extends BookException {
+  // TODO
 }
diff --git a/src/main/java/fr/univamu/progav/td9/BulkCheckoutResult.java b/src/main/java/fr/univamu/progav/td9/BulkCheckoutResult.java
index 5cb03a3b043f6b6a81eed1bb548adb662b14a99f..0081304788f23c56f1ad5e5fd2509cc3c69ded88 100644
--- a/src/main/java/fr/univamu/progav/td9/BulkCheckoutResult.java
+++ b/src/main/java/fr/univamu/progav/td9/BulkCheckoutResult.java
@@ -1,5 +1,6 @@
 package fr.univamu.progav.td9;
 
+import java.util.ArrayList;
 import java.util.List;
 
 public record BulkCheckoutResult(
@@ -7,6 +8,9 @@ public record BulkCheckoutResult(
   List<BookException> failedCheckouts
 ) {
 
+  public BulkCheckoutResult() {
+    this(new ArrayList<>(), new ArrayList<>());
+  }
 
   public boolean isCompletelySuccessful() {
     // TODO
diff --git a/src/main/java/fr/univamu/progav/td9/Library.java b/src/main/java/fr/univamu/progav/td9/Library.java
index cd7509a5ba67533e7529656cc5e949f8be018223..2464642e433d836c85944fc1d3bcf5d0d6513f80 100644
--- a/src/main/java/fr/univamu/progav/td9/Library.java
+++ b/src/main/java/fr/univamu/progav/td9/Library.java
@@ -5,9 +5,12 @@ import java.util.List;
 import java.util.Map;
 
 public class Library {
+
+  private final Map<String, Book> collection = new HashMap<>();
   private final Map<Book, BookStatus> bookStatuses = new HashMap<>();
 
   public void addBook(Book book) {
+    collection.put(book.isbn(), book);
     bookStatuses.put(book, BookStatus.AVAILABLE);
   }
 
@@ -16,17 +19,20 @@ public class Library {
     return null;
   }
 
-  public void checkoutBook(Book book) throws BookException {
+
+  public BookStatus getBookStatus(String isbn) {
     // TODO
+    return null;
   }
 
-  public BulkCheckoutResult checkoutBooks(List<Book> books) {
+  public Book checkoutBook(String isbn) {
     // TODO
     return null;
   }
 
-  public BookStatus getBookStatus(Book book) {
+  public BulkCheckoutResult checkoutBooks(List<String> isbns) {
     // TODO
     return null;
   }
+
 }
diff --git a/src/main/java/fr/univamu/progav/td9/TD9.md b/src/main/java/fr/univamu/progav/td9/TD9.md
index 88c4dc51352455702cf55731d46d50af5f77da11..b419a160c9e711f4cb7af77e402c8df36b263d73 100644
--- a/src/main/java/fr/univamu/progav/td9/TD9.md
+++ b/src/main/java/fr/univamu/progav/td9/TD9.md
@@ -3,7 +3,7 @@ gestion des livres d'une bibliothèque, qui n'est pas un exemple très
 pertinent pour l'utilisation d'exceptions, mais qui a l'avantage d'être 
 relativement simple pour apprendre les bases de la manipulation des exceptions.
 
-La bibliothèque ```Library``` possède une collection de livre ```Book```, et 
+La bibliothèque ```Library``` possède une collection de livres ```Book```, et 
 les clients peuvent venir emprunter un ou plusieurs livres (méthodes 
 ```checkoutBook``` et ```checkoutBooks```). Un livre peut donc être 
 disponible ou indisponible (classe ```BookStatus```), ou bien ne pas faire 
@@ -16,27 +16,21 @@ bibliothèque, l'exception ```BookNotFoundException``` sera levée.
 Exercice 1
 ==========
 
-Compléter la classe d'exception ```BookException```, en y ajoutant une 
-propriété ```Book```, et une méthode ```toString``` affichant le livre. 
-Compléter aussi la méthode ```book```.
+Compléter les 2 extensions ```BookNotFoundException``` (possédant un code 
+ISBN) et ```BookUnavailable``` (possédant un livre) de la 
+classe```BookException```. Assurez-vous que la méthode ```getMessage``` de 
+chacune délivre un message adapté et mentionnant soit le code ISBN, soit le 
+livre concerné.
 
 Exercice 2
 ==========
 
-Compléter les 2 extensions ```BookNotFoundException``` et 
-```BookUnavailable``` de ```BookException```. Assurez-vous que le 
-```toString``` de chacune affiche un message adapté et mentionnant le livre 
-concerné.
-
-Exercice 3
-==========
-
 Compléter la méthode ```findBook``` de la classe ```Library```. Elle doit 
 retourner le livre dont le code ISBN est fourni. S'il n'existe pas un tel 
 livre, il faut émettre l'exception ```BookNotFoundException```. Ajouter la 
 déclaration d'exception à la méthode.
 
-Exercice 4
+Exercice 3
 ==========
 
 Compléter la méthode ```checkBookStatus``` de la classe ```Library```, 
@@ -44,7 +38,7 @@ retournant le status d'un livre précisé par son code ISBN. Si le livre
 n'existe pas, l'exception ```BookNotFound``` sera émise. Ajouter la
 déclaration d'exception à la méthode.
 
-Exercice 5
+Exercice 4
 ==========
 
 Compléter la méthode ```checkoutBook``` de la classe ```Library```.
@@ -53,7 +47,7 @@ code ISBN), et modifie alors son status à ```BORROWED```. Si les conditions
 ne sont pas respectées, la méthode émet l'exception appropriée. Ajouter la
 déclaration d'exception à la méthode.
 
-Exercice 6
+Exercice 5
 ==========
 
 Compléter la méthode ```isCompletelySuccessful``` de la classe 
@@ -62,9 +56,10 @@ réservation d'une liste de livres, comprenant :
 - la liste des livres empruntés;
 - la liste des échecs des tentatives d'emprunt.
 
-Exercice 7
+Exercice 6
 ==========
 
 Compléter la méthode ```checkoutBooks``` de la classe ```Library```.
 
 
+Vérifier votre travail à l'aide des tests fournis.
\ No newline at end of file
diff --git a/src/test/java/fr/univamu/progav/td9/LibraryTest.java b/src/test/java/fr/univamu/progav/td9/LibraryTest.java
index e5abf05f9a6ce4c36f53332a312f4bd03777c736..8d5d6e894297227568a0d7b980577260f2feea46 100644
--- a/src/test/java/fr/univamu/progav/td9/LibraryTest.java
+++ b/src/test/java/fr/univamu/progav/td9/LibraryTest.java
@@ -34,28 +34,34 @@ public class LibraryTest {
 
   @Test
   void testSingleCheckoutSuccess() throws BookException {
-    library.checkoutBook(book1);
-    assertEquals(BookStatus.BORROWED, library.getBookStatus(book1));
+    library.checkoutBook("123");
+    assertEquals(BookStatus.BORROWED, library.getBookStatus("123"));
   }
 
   @Test
   void testBulkCheckoutPartialSuccess() throws BookException {
-    library.checkoutBook(book1);
+    library.checkoutBook("123");
     Book nonExistentBook = new Book("999", "Nonexistent");
-    List<Book> booksToCheckout = List.of(book1, book2, nonExistentBook);
+    List<String> booksToCheckout = List.of("123", "456", "999");
     BulkCheckoutResult result = library.checkoutBooks(booksToCheckout);
     assertFalse(result.isCompletelySuccessful());
     assertEquals(1, result.successfulCheckouts().size());
     assertEquals(2, result.failedCheckouts().size());
     assertInstanceOf(BookUnavailableException.class, result.failedCheckouts().get(0));
     assertInstanceOf(BookNotFoundException.class, result.failedCheckouts().get(1));
-    assertEquals(book1,result.failedCheckouts().get(0).book());
-    assertEquals(nonExistentBook,result.failedCheckouts().get(1).book());
+    assertEquals(
+      "Book1 (123): book unavailable",
+      result.failedCheckouts().get(0).getMessage()
+    );
+    assertEquals(
+      "Nonexistent (999): book not found",
+      result.failedCheckouts().get(1).getMessage()
+    );
   }
 
   @Test
   void testBulkCheckoutAllSuccess() {
-    List<Book> booksToCheckout = List.of(book1, book2);
+    List<String> booksToCheckout = List.of("123", "456");
     BulkCheckoutResult result = library.checkoutBooks(booksToCheckout);
 
     assertTrue(result.isCompletelySuccessful());