diff --git a/src/main/java/fi/utu/tech/ooj/exercise2/Tehtava2ohjelmalogiikka.java b/src/main/java/fi/utu/tech/ooj/exercise2/Tehtava2ohjelmalogiikka.java
index f0aff83eba60f2615904205571cf5be85301283c..9b106a86d54a15904bccd6406ff6cdf6ab656ec8 100644
--- a/src/main/java/fi/utu/tech/ooj/exercise2/Tehtava2ohjelmalogiikka.java
+++ b/src/main/java/fi/utu/tech/ooj/exercise2/Tehtava2ohjelmalogiikka.java
@@ -1,43 +1,48 @@
 package fi.utu.tech.ooj.exercise2;
-# Ensin siis siirretään luokat Tehtava2tiedostopalvelu ja Tehtava2tietokanta1 yhteen luokkaan. Tässä yhdistettävien luokkien toiminta ei muistaakseni oleellinen. Ne olivat erillisillä sivuilla, joten tässä pikemminkin esimerkki toteutuksesta#
+# Ensin siis siirretään luokat Tehtava2tiedostopalvelu ja Tehtava2tietokanta1 yhteen luokkaan. Tässä yhdistettävien luokkien toiminta ei muistaakseni oleellinen. Ne olivat erillisillä sivuilla, joten tässä pikemminkin esimerkki toteutuksesta. paketissa on oltava abstract class joka sisältää molemmat aiemmin mainitut paketit. Tämä yksi luokka on oltava lähteenä näille kahdelle luokalle, muuten ei esiinny polymorfismia. Pitää myös muuttaa tämän tiedoston sisältö käyttämään uutta luokkaa #
 
-abstract class Tietokanta{
-    class Tehtava2tiedostopalvelu extends Tietokanta{
-            public void lisaaTieto(T value) {
+abstract class Tietokanta<T>{
+  
+    public class Tehtava2tietokanta1<T> extends Tietokanta{
+
+
+        public void lisaaTieto(T value) {
         //Toteutus poistettu. Se on merkityksetön tehtävän kannalta.
-    }
+        }
 
-    public List<T> haeTiedot() {
+        public List<T> haeTiedot() {
         //Toteutus poistettu. Se on merkityksetön tehtävän kannalta.
         return null;
-    }
+        }
 
-    public  void muokkaaTieto(T value, T newValue) {
+        p  ublic  void muokkaaTieto(T value, T newValue) {
         //Toteutus poistettu. Se on merkityksetön tehtävän kannalta.
-    }
-    public  void poistaTieto(T value) {
+        }
+        public  void poistaTieto(T value) {
         //Toteutus poistettu. Se on merkityksetön tehtävän kannalta.
-    }
+        }
+}
+ 
+    public class Tehtava2tiedostopalvelu<T> extends Tietokanta {
 
-    }
-    class Tehtava2tietokanta1 extends Tietokanta{
-    public void lisaaTieto(T value) {
+
+        public void lisaaTieto(T value) {
         //Toteutus poistettu. Se on merkityksetön tehtävän kannalta.
     }
 
-    public List<T> haeTiedot() {
+        public List<T> haeTiedot() {
         //Toteutus poistettu. Se on merkityksetön tehtävän kannalta.
         return null;
     }
 
-    public  void muokkaaTieto(T value, T newValue) {
+        public  void muokkaaTieto(T value, T newValue) {
         //Toteutus poistettu. Se on merkityksetön tehtävän kannalta.
     }
-    public  void poistaTieto(T value) {
+        public  void poistaTieto(T value) {
         //Toteutus poistettu. Se on merkityksetön tehtävän kannalta.
+        }
     }
 
-    }
 }
 public class Tehtava2ohjelmalogiikka {