diff --git a/src/main/java/fi/utu/tech/ooj/exercise2/Tehtava4.txt b/src/main/java/fi/utu/tech/ooj/exercise2/Tehtava4.txt
new file mode 100644
index 0000000000000000000000000000000000000000..53667c8bdcab0e343c1431ac8cfc813bf84856b8
--- /dev/null
+++ b/src/main/java/fi/utu/tech/ooj/exercise2/Tehtava4.txt
@@ -0,0 +1,44 @@
+Yleisurheilukilpailujen suoritusten kirjaamiseen suunniteltava ohjelma voidaan mallintaa luokkakokonaisuudeksi, joka sisältää seuraavat luokat:
+Urheilija: Tämä luokka sisältää urheilijan tiedot, kuten nimi, syntymäaika, kansallisuus jne.
+Laji: Tämä luokka sisältää lajin tiedot, kuten nimi, kuvaus ja säännöt. Se myös määrittää, mitä ominaisuuksia kukin lajityyppi edellyttää (esim. suoritusajan tai hypätyn pituuden mittaaminen).
+Kilpailu: Tämä luokka kokoaa yhteen useita lajeja ja niissä kilpailevat urheilijat. Kilpailu sisältää kilpailun tiedot, kuten päivämäärä, paikka ja kilpailun nimi.
+Osallistuminen: Tämä luokka sisältää tiedot siitä, että urheilija osallistuu kilpailuun. Se sisältää myös urheilijan kilpailussa tekemät suoritukset, kuten suoritusajan, hypätyn pituuden tai heitetyn pituuden.
+ Pisteytys: Tämä luokka määrittää pisteiden laskemisen jokaisesta lajista ja kokonaispistemäärän laskemisen ottelulle. Se käyttää kukin lajityypin ominaisuuksia pisteiden laskemiseen.
+
+
+Luokkahierarkia voisi näyttää suunnilleen tältä:
+
+    Urheilulaji
+        Juoksulaji
+            Pikajuoksu
+            Kestävyysjuoksu
+        Hyppylaji
+            Pituushyppy
+            Korkeushyppy
+        Heittolaji
+            Kuulantyöntö
+            Kiekonheitto
+        Kävely
+        Ottelu
+            Yleisurheiluottelu
+            Moniottelu
+
+Jokaisella luokalla tulisi olla ainakin seuraavat tärkeimmät rutiinit:
+
+    Urheilulaji
+        String getNimi() - palauttaa urheilulajin nimen
+    Juoksulaji
+        int getMatka() - palauttaa juoksun matkan metreinä
+    Hyppylaji
+        boolean onkoPituushyppy() - palauttaa true, jos kyseessä on pituushyppy, false jos korkeushyppy
+    Heittolaji
+        double getMinimiPaino() - palauttaa minimipainon, jolla välineen tulee painaa
+    Kävely
+        int getMatka() - palauttaa kävelyn matkan metreinä
+    Ottelu
+        ArrayList<Urheilulaji> getLajit() - palauttaa ottelussa suoritettavat lajit
+        int[] getPisteet(Urheilija urheilija) - palauttaa urheilijan pisteet jokaisesta lajista
+
+Lisäksi jokaisella luokalla voisi olla tarvittavat getterit ja setterit attribuuteilleen, kuten esimerkiksi Urheilija-luokan nimi ja suoritusajat eri lajeissa. Huomaa, että tässä on esitetty vain suuntaa antava hierarkia ja rutiineja, jotka voidaan muokata projektin vaatimusten ja tarkemman suunnittelun mukaisesti.
+
+