diff --git a/src/main/java/fi/utu/tech/ooj/exercise0/KirjaKokoelma.java b/src/main/java/fi/utu/tech/ooj/exercise0/KirjaKokoelma.java
index a81aafad61977acadcb9961768517517780a6692..6f2a2e0998ea216c3992f89836a4b63f3238d576 100644
--- a/src/main/java/fi/utu/tech/ooj/exercise0/KirjaKokoelma.java
+++ b/src/main/java/fi/utu/tech/ooj/exercise0/KirjaKokoelma.java
@@ -1,14 +1,15 @@
 package fi.utu.tech.ooj.exercise0;
 
 import java.util.ArrayList;
-
+import java.io.PrintStream;
+import java.util.List;
 public class KirjaKokoelma {
     private String kokoelmanOmistaja;
     private ArrayList<Kirja> kirjaListaus;
 
-    public KirjaKokoelma(String kokoelmanOmistaja, ArrayList<Kirja> kirjaListaus) {
+    public KirjaKokoelma(String kokoelmanOmistaja) {
         this.kokoelmanOmistaja = kokoelmanOmistaja;
-        this.kirjaListaus = kirjaListaus;
+        this.kirjaListaus = new ArrayList<>();
     }
 
     public String getKokoelmanOmistaja() {
@@ -27,4 +28,34 @@ public class KirjaKokoelma {
         this.kirjaListaus.add(kirja);
     }
 
+    public void tulostaKokoelma(PrintStream out) {
+        if (this.kirjaListaus.isEmpty()) {
+            out.println("Kokoelma on tyhjä");
+        } else {
+            for (Kirja kirja : kirjaListaus) {
+                out.println(kirja);
+            }
+        }
+    }
+    public List<Kirja> etsiKirjat(String hakusana, KirjanTiedot kentta) throws IllegalArgumentException {
+        if (hakusana == null || hakusana.isEmpty() || kentta == null) {
+            throw new IllegalArgumentException("Hakusana ja kenttä eivät saa olla tyhjä merkkijono");
+        }
+        List<Kirja> hakutulokset = new ArrayList<>();
+
+        for (Kirja kirja : kirjaListaus) {
+            String kentanSisalto = switch (kentta) {
+                case NIMI -> kirja.getKirjanNimi();
+                case KIRJAILIJA -> kirja.getKirjailijanNimi();
+                case JULKAISUVUOSI -> String.valueOf(kirja.getJulkaisuVuosi());
+            };
+            if (kentanSisalto.toLowerCase().contains(hakusana.toLowerCase())) {
+                hakutulokset.add(kirja);
+            }
+        }
+        return hakutulokset;
+    }
+
+
+
 }
diff --git a/src/main/java/fi/utu/tech/ooj/exercise0/Main.java b/src/main/java/fi/utu/tech/ooj/exercise0/Main.java
index d91f99de676a5505a681ef238344d70a00f67a6f..87dd460476ed5da77ff3ef87d1a84dc3c9692e08 100644
--- a/src/main/java/fi/utu/tech/ooj/exercise0/Main.java
+++ b/src/main/java/fi/utu/tech/ooj/exercise0/Main.java
@@ -4,6 +4,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Scanner;
+import static fi.utu.tech.ooj.exercise0.KirjanTiedot.NIMI;
 
 public class Main {
 
@@ -23,7 +24,6 @@ public class Main {
             }
             vastaukset.add(vastaus);
         }
-        System.out.println(vastaukset);
         return vastaukset;
     }
     /*
@@ -34,35 +34,27 @@ public class Main {
     public static KirjaKokoelma luoKokoelma(String lopetusmerkki) {
         String[] kysyttäväOmistaja = {"Omistaja"};
         String omistaja = kysyTietoja(kysyttäväOmistaja, "/loppu").toString();
-        ArrayList kirjalista = new ArrayList<>();
+        KirjaKokoelma kokoelma = new KirjaKokoelma(omistaja);
         while (true) {
             String[] kirjantiedot = {"Kirjan nimi: ", "Kirjailijan nimi: ", "Julkaisuvuosi:"};
             ArrayList<String> kirjanTiedot = kysyTietoja(kirjantiedot, lopetusmerkki);
-            if (kirjanTiedot.contains(lopetusmerkki) || kirjanTiedot.size() < 3) {
+            if (kirjanTiedot.size() < 3) {
                 break;
             }
-            String kirjanNimi = kirjanTiedot.get(0);
-            String kirjailijanNimi = kirjanTiedot.get(1);
-            int julkaisuVuosi = Integer.parseInt(kirjanTiedot.get(2));
-            System.out.println(julkaisuVuosi);
-            Kirja kirja = new Kirja(kirjanNimi, kirjailijanNimi, julkaisuVuosi);
-            kirjalista.add(kirja);
-            System.out.println(kirja);
-            System.out.println(kirja);
+            Kirja kirja = new Kirja(kirjanTiedot.get(0), kirjanTiedot.get(1), Integer.valueOf(kirjanTiedot.get(2)));
+            kokoelma.lisaaKirja(kirja);
         }
-        KirjaKokoelma kokoelma = new KirjaKokoelma(omistaja,kirjalista);
-        System.out.println(kokoelma);
         return kokoelma;
     }
     public static void main(String[] args) {
         //Luo ensin uusi KirjaKokoelma olio, Käytä tehtävän 5 rutiinia
         KirjaKokoelma kokoelma = luoKokoelma("/loppu");
         //Sen jälkeen tulosta kokoelma näyttöön käyttämällä tehtävän 6 rutiinia
-
+        kokoelma.tulostaKokoelma(System.out);
 
         //Lopuksi hae jokin kirja kokoelmasta käyttäen tehtävän 7 rutiinia
         //Tulosta hakutulos. Sen voit tehdä suoraan main-metodissa.
-
+        System.out.println(kokoelma.etsiKirjat("erkki",NIMI));
     }
 
 }