diff --git a/src/fxKohtaushallinta/KohtaushallintaGUIController.java b/src/fxKohtaushallinta/KohtaushallintaGUIController.java
index b01754cb505d50758be43d72a6c2fcd1e3c67dfa..cad26cd8cb059005a888397e0460334d3895b6b9 100644
--- a/src/fxKohtaushallinta/KohtaushallintaGUIController.java
+++ b/src/fxKohtaushallinta/KohtaushallintaGUIController.java
@@ -97,7 +97,7 @@ public class KohtaushallintaGUIController {
     }
 
     @FXML void handleLisaaHahmo(ActionEvent event) {
-        //lisaaKohtaukseen(valittuIndeksi);
+        lisaaKohtaukseen(Kohtaushallinta.HAHMOT,valittuIndeksi);
     }
 
     @FXML void handleMuokkaaKohtausta(ActionEvent event) {
@@ -159,19 +159,19 @@ public class KohtaushallintaGUIController {
 
 
     @FXML void handleUusiAsia(ActionEvent event) {
-        //uusiTietue(Kohtaukset.ASIA);
+        uusiTietue(Kohtaushallinta.ASIAT);
     }
 
     @FXML void handleUusiHahmo(ActionEvent event) {
-        //uusiTietue(Kohtaukset.HAHMO);
+        uusiTietue(Kohtaushallinta.HAHMOT);
     }
 
     @FXML void handleUusiKohtaus(ActionEvent event) {
-        //uusiTietue(Kohtaukset.KOHTAUS);
+        uusiTietue(Kohtaushallinta.KOHTAUKSET);
     }
     
     @FXML void handlePoistaAsia() {
-        //poistaKohtauksesta(Kohtaukset.ASIA, valittuIndeksi);
+        poistaKohtauksesta(Kohtaushallinta.ASIAT, valittuIndeksi);
     }
     
     
diff --git a/src/kohtaushallinta/Avainsanat.java b/src/kohtaushallinta/Avainsanat.java
index d37bd047c4c5d9ac7838dafdfacd3a6fa767205f..ff829146891daff4eaa5889ed67462465d9cb21f 100644
--- a/src/kohtaushallinta/Avainsanat.java
+++ b/src/kohtaushallinta/Avainsanat.java
@@ -3,7 +3,6 @@ package kohtaushallinta;
 import java.util.ArrayList;
 import java.util.List;
 
-import javafx.collections.ObservableList;
 import javafx.collections.transformation.SortedList;
 
 /**
diff --git a/src/kohtaushallinta/Kohtaushallinta.java b/src/kohtaushallinta/Kohtaushallinta.java
index f43f9a48ed38a7df4c4db6fa6c0c170ca5363ab0..76ace7f25f832c185c6a25111ea01474b23ebee1 100644
--- a/src/kohtaushallinta/Kohtaushallinta.java
+++ b/src/kohtaushallinta/Kohtaushallinta.java
@@ -17,7 +17,6 @@ public class Kohtaushallinta {
     private String asiaTdst = "asiat.dat";
     private String asialinkit = "kohtauksenAsiat.dat";
     private String hahmolinkit = "kohtauksenHahmot.dat";
-    private String[] linkkitdst = new String[] { "kohtauksenHahmot.dat", "kohtauksenAsiat.dat" };
     
     public static final int HAHMOT = 0;
     public static final int ASIAT = 1;
@@ -118,31 +117,49 @@ public class Kohtaushallinta {
         }
     }
     
+
+    /**
+     * Luo uuden tietueen haluttua tyyppiä.
+     * @param tyyppi HAHMOT (0) / ASIAT (1) / KOHTAUKSET (3)
+     * @return Tietueen
+     * @throws IllegalArgumentException argumentti ei viittaa mihinkään Tietueet-olioon
+     * @example
+     * <pre name="test">
+     *  #THROWS IOException
+     *  #import java.io.IOException;
+     *  Kohtaushallinta kh = new Kohtaushallinta();
+     *  kh.lataa();
+     *  Tietue t = kh.uusiTietue(Kohtaushallinta.ASIAT);
+     *  t.getID() === 6;
+     *  t = kh.uusiTietue(Kohtaushallinta.HAHMOT);
+     *  t.getID() === 5;
+     *  t = (Tietue)kh.uusiTietue(Kohtaushallinta.KOHTAUKSET);
+     *  t.getID() === 4;
+     * </pre>
+     */
+    public Tietue uusiTietue(int tyyppi) throws IllegalArgumentException {
+        return this.getTietueet(tyyppi).luoTietue();
+    }
+    
     
-    //TODO: DEBUGGAUSTA VARTEN; POISTA TAI MUOKKAA PAREMMAKSI
-    @SuppressWarnings("unused")
-    private Tietueet getTt(int nro) {
-        switch(nro) {
+    /**
+     * Hakee halutun Tietueet olion
+     * @param tyyppi HAHMOT (0) / ASIAT (1) / KOHTAUKSET (3)
+     * @return Tietueet
+     * @throws IllegalArgumentException argumentti ei viittaa mihinkään Tietueet-olioon
+     */
+    private Tietueet getTietueet(int tyyppi) throws IllegalArgumentException {
+        switch(tyyppi) {        
         case 0:
-            return this.kohtaustietueet;
-        case 1:
             return this.hahmotietueet;
-        case 2:
+        case 1:
             return this.asiatietueet;
+        case 2:
+            return this.kohtaustietueet;
         default:
-            return null;
+            throw new IllegalArgumentException("Metodin argumentin on oltava KOHTAUS (0), HAHMOT (1) tai ASIAT: " + tyyppi + " ei kelpaa");
         }
     }
-    
-
-    /**
-     * Luo uuden tietueen haluttua tyyppiä. Varmistaa, että tietueen ID on validi.
-     * @param tyyppi HAHMO / ASIA / KOHTAUS
-     * @return Tietueen
-     */
-    public Tietue uusiTietue(int tyyppi) {
-        return null;
-    }
         
     
     //TODO: DEBUGGAUSTA VARTEN, POISTA
diff --git a/src/kohtaushallinta/Tietueet.java b/src/kohtaushallinta/Tietueet.java
index 4327db0b0b0b7058b6eb1dfe9d119a3341a903c0..d4f7d43706e4d2c65a433c00152e665714badb9a 100644
--- a/src/kohtaushallinta/Tietueet.java
+++ b/src/kohtaushallinta/Tietueet.java
@@ -333,6 +333,32 @@ public class Tietueet implements TiedostoKayttaja {
     }
     
     
+    /**
+     * Luo uuden Tietueen otsikolla "Nimi" ja jos on varattu, "NimiX", jossa X = ensimmäinen vapaa kokonaisluku väliltä 1-MAX_Value 
+     * @return uuden Tietueen
+     * @example
+     * <pre name="test">
+     *  Tietueet tt = new Tietueet("koe.dat");
+     *  tt.luoTietue();
+     *  tt.get(0).getOtsikko() === "Nimi";
+     *  tt.get(1) === null;
+     *  tt.luoTietue();
+     *  tt.luoTietue();
+     *  tt.get(1).getOtsikko() === "Nimi1";
+     *  tt.get(2).getOtsikko() === "Nimi2";
+     * </pre>
+     */
+    public Tietue luoTietue() {
+        String otsikko = "Nimi";
+        if (this.etsi(otsikko) == -1) return luoTietue(otsikko);
+        for (int i = 1; i < Integer.MAX_VALUE; i++) {
+            String vo = otsikko + i;
+            if (this.etsi(vo) == -1) return luoTietue(vo);
+        }
+        return null;
+    }
+    
+    
     /**
      * Tallentaa Tietueet tiedostoon
      * @throws IOException Tiedostoon kirjoittaminen ei onnistu
diff --git a/src/kohtaushallinta/test/KohtaushallintaTest.java b/src/kohtaushallinta/test/KohtaushallintaTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..ddae5e680aeb66b4976b75e8c0481199a20d72fe
--- /dev/null
+++ b/src/kohtaushallinta/test/KohtaushallintaTest.java
@@ -0,0 +1,35 @@
+package kohtaushallinta.test;
+// Generated by ComTest BEGIN
+import static org.junit.Assert.*;
+import org.junit.*;
+import java.io.IOException;
+import kohtaushallinta.*;
+// Generated by ComTest END
+
+/**
+ * Test class made by ComTest
+ * @version 2025.03.24 14:16:30 // Generated by ComTest
+ *
+ */
+@SuppressWarnings({ "all" })
+public class KohtaushallintaTest {
+
+
+
+  // Generated by ComTest BEGIN
+  /** 
+   * testUusiTietue127 
+   * @throws IOException when error
+   */
+  @Test
+  public void testUusiTietue127() throws IOException {    // Kohtaushallinta: 127
+    Kohtaushallinta kh = new Kohtaushallinta(); 
+    kh.lataa(); 
+    Tietue t = kh.uusiTietue(Kohtaushallinta.ASIAT); 
+    assertEquals("From: Kohtaushallinta line: 133", 6, t.getID()); 
+    t = kh.uusiTietue(Kohtaushallinta.HAHMOT); 
+    assertEquals("From: Kohtaushallinta line: 135", 5, t.getID()); 
+    t = (Tietue)kh.uusiTietue(Kohtaushallinta.KOHTAUKSET); 
+    assertEquals("From: Kohtaushallinta line: 137", 4, t.getID()); 
+  } // Generated by ComTest END
+}
\ No newline at end of file
diff --git a/src/kohtaushallinta/test/TietueetTest.java b/src/kohtaushallinta/test/TietueetTest.java
index b0c4eaa4e0e6d73a5e8f5a4a1786b76517dc4f7e..9a9d80ecfaf0d70b0117d0b580caf379d9afd0b7 100644
--- a/src/kohtaushallinta/test/TietueetTest.java
+++ b/src/kohtaushallinta/test/TietueetTest.java
@@ -7,13 +7,14 @@ import kohtaushallinta.*;
 
 /**
  * Test class made by ComTest
- * @version 2025.03.21 11:02:23 // Generated by ComTest
+ * @version 2025.03.24 14:07:38 // Generated by ComTest
  *
  */
 @SuppressWarnings({ "all" })
 public class TietueetTest {
 
 
+
   // Generated by ComTest BEGIN
   /** testKopioi112 */
   @Test
@@ -106,4 +107,19 @@ public class TietueetTest {
     assertEquals("From: Tietueet line: 327", null, tt.luoTietue("Eka")); 
     assertEquals("From: Tietueet line: 328", 1, tt.luoTietue("Toka").getID()); 
   } // Generated by ComTest END
+
+
+  // Generated by ComTest BEGIN
+  /** testLuoTietue340 */
+  @Test
+  public void testLuoTietue340() {    // Tietueet: 340
+    Tietueet tt = new Tietueet("koe.dat"); 
+    tt.luoTietue(); 
+    assertEquals("From: Tietueet line: 343", "Nimi", tt.get(0).getOtsikko()); 
+    assertEquals("From: Tietueet line: 344", null, tt.get(1)); 
+    tt.luoTietue(); 
+    tt.luoTietue(); 
+    assertEquals("From: Tietueet line: 347", "Nimi1", tt.get(1).getOtsikko()); 
+    assertEquals("From: Tietueet line: 348", "Nimi2", tt.get(2).getOtsikko()); 
+  } // Generated by ComTest END
 }
\ No newline at end of file