diff --git a/src/main/java/fi/utu/tech/ooj/exercise1/Apurutiinit.java b/src/main/java/fi/utu/tech/ooj/exercise1/Apurutiinit.java
index 6c6536253a9ac7490151eeb2e153afc5524b1aa3..44934fe4a268dbf97e037fc37b15725d7958e9ee 100644
--- a/src/main/java/fi/utu/tech/ooj/exercise1/Apurutiinit.java
+++ b/src/main/java/fi/utu/tech/ooj/exercise1/Apurutiinit.java
@@ -24,7 +24,23 @@ public class Apurutiinit {
     }
 
     public static void luoPalindromi() {
-         teksti = teksti + new StringBuilder(teksti).reverse().toString().substring(1);
+        teksti = teksti + new StringBuilder(teksti).reverse().toString().substring(1);
     }
 
 }
+/**
+ * 'kuplaLajittelu' rutiinilla on sivuvaikutus, koska se muuttaa alkuperäistä taulukkoa sen sijaan, että tekisi siitä kopion ja muuttaisi kopiota.
+ *
+ * Kuplalajittelu on hyödyllinen silloin kun halutaan muuttujan muuttuvan pysyvästi ja silloin voidaan myös käyttää useampaa rutiinia peräkkäin jolloin alkuperäinen
+ * muuttujan arvo voidaan muokata millaiseksi tahansa, joka voisi olla hyödyllinen esimerkiksi tiedon suojaamisessa. Kuplalajittelu on haitallinen siinä tapauksessa, jos halutaan säilyttää alkuperäinen taulukko ja esimerkiksi
+ * käyttää samaa taulukkoa useassa eri rutiinissa.
+ *
+ * Koodilla on sivuvaikutuksia, koska 'teksti' muuttujan arvo muuttuu useammassa rutiinissa.
+ * Sivuvaikutukset mukauttavat jatkuvasti 'teksti' muuttujan arvoa, mikä voi olla hyvä asia siinä tapauksessa, jos halutaan sen muuttuvan.
+ * Jos useampi henkilö käyttää ohjelmaa samanaikasesti ja suorittaa samat tehtävät täysin samanaikaisesti, niin 'teksti' muuttujan arvon muuttuminen johtaisi vähintääkin virheeseen.
+ *
+ * Tässä tapauksessa olisi kannattavampaa vain palauttaa muuttunut teksti ilman, että se muuttaa 'teksti' muuttujaa.
+ * 'teksti' muuttujan arvoa voidaan muuttaa 'asetaArvot(lkm, teksi)' rutiinilla, mikä johtaa siihen, että luokka on kapseloitu paremmin
+ * eikä asiakas pääse muuttamaan arvoja mitenkään muuten kuin käyttämällä tätä rutiinia, mikä johtaa vähemmän virhealttiiseen ohjelmaan.
+ *
+ */
diff --git a/src/main/java/fi/utu/tech/ooj/exercise1/Main.java b/src/main/java/fi/utu/tech/ooj/exercise1/Main.java
index 98be48437e4c946e6c9034a359affc198dbcaafc..8a0f9a8d1a9e1dfb506d85fe9ebe968df6a6ddec 100644
--- a/src/main/java/fi/utu/tech/ooj/exercise1/Main.java
+++ b/src/main/java/fi/utu/tech/ooj/exercise1/Main.java
@@ -77,7 +77,7 @@ public class Main {
     * @.post RESULT sisältää kaikki syötteen alkiot ja on järjestetty nousevaan järjestykseen
      */
     public static int[] kuplaLajittelu(int[] inArr) {
-        int[] outArr = inArr;
+        int[] outArr = Arrays.copyOf(inArr, inArr.length);
         int n = outArr.length;
         int temp = 0;
         for(int i=0; i < n; i++){
@@ -103,7 +103,7 @@ public class Main {
         System.out.println("*** Harjoitustyöpohja käynnistyy ***");
 
         /*Kuplalajittelun testaus
-        * */
+         * */
         int[] lukuja = {1, 34, 2, 67, 4, 3, 10, 5};
         System.out.println(Arrays.toString(kuplaLajittelu(lukuja)));
 
@@ -128,7 +128,10 @@ public class Main {
         System.out.println(Apurutiinit.getTeksti());
 
 
-        
+
+
+
     }
 }
 
+
diff --git a/src/main/java/fi/utu/tech/ooj/exercise1/Opiskelija.java b/src/main/java/fi/utu/tech/ooj/exercise1/Opiskelija.java
index 6a87e4f3ab1dfb98a813902445a4634a9e27d158..4b4add7e47869ce20bfe30f2a502ce359e964f9b 100644
--- a/src/main/java/fi/utu/tech/ooj/exercise1/Opiskelija.java
+++ b/src/main/java/fi/utu/tech/ooj/exercise1/Opiskelija.java
@@ -5,9 +5,8 @@ public class Opiskelija {
     /* Tehtävä 2A Määrittele luokkainvariantti
      *
      * Luokkainvariantti:
-     * Mikään muuttujista ei saa olla null ja 1900 <= 'syntymavuosi' <= (nykyinen vuosi - 18)
-     * 'etunimi' eikä 'sukunimi' saa sisältää numeroita
-     * 'opiskelijanumero' tulee sisältää pelkästään numeroita
+     * 1900 <= 'syntymavuosi' <= (nykyinen vuosi - 18)
+     * getEtunimi() != null & getSukunimi() != null & getOpiskelijaNumero() != null
      */
     private String etunimi;
     private String sukunimi;
diff --git a/src/main/java/fi/utu/tech/ooj/exercise1/Tehtava4Vastaukset.txt b/src/main/java/fi/utu/tech/ooj/exercise1/Tehtava4Vastaukset.txt
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..04819e6490651ea771e39441b7be68525b615baf 100644
--- a/src/main/java/fi/utu/tech/ooj/exercise1/Tehtava4Vastaukset.txt
+++ b/src/main/java/fi/utu/tech/ooj/exercise1/Tehtava4Vastaukset.txt
@@ -0,0 +1,5 @@
+A. Tietueluokka sopisi tähän, koska tiedetään etteivät tiedot muutu ja rivit voidaan helposti esittää tietueina ja niitä voidaan tallentaa listaan niin monta kuin
+tarvitaan.
+
+B. Abstrakti luokkaa voitaisiin käyttää, koska se toimii hyvin pohjana alaluokille ja alaluokat voisivat helposti toteuttaa haluttuja metodeja käyttäen Vaatekokoja.
+Tälle abstrakti luokalle voitaisiin helposti myös tehdä staattinen rutiini joka hakee numeerisia kokoja kirjaintunnusten perusteella.
\ No newline at end of file
diff --git a/src/main/java/fi/utu/tech/ooj/exercise1/VuosiKurssi.java b/src/main/java/fi/utu/tech/ooj/exercise1/VuosiKurssi.java
index b86ea05579e90e4d59dca898213bf1352be5cf41..bd3cab292bf84c37a792239f8c44acbe36751c55 100644
--- a/src/main/java/fi/utu/tech/ooj/exercise1/VuosiKurssi.java
+++ b/src/main/java/fi/utu/tech/ooj/exercise1/VuosiKurssi.java
@@ -7,7 +7,8 @@ public class VuosiKurssi {
     /* Tehtävä 2A Määrittele luokkainvariantti
      *
      * Luokkainvariantti:
-     * 1920 <= 'kurssinAloitusvuosi' <= nykyinen vuosi, eikä se voi olla null
+     * 1920 <= 'kurssinAloitusvuosi' <= nykyinen vuosi
+     * getKurssinAloitusvuosi() != null & getOpiskelijat() != null
      * 'opiskelijat listan pituus on vähintään 0 ja enintään vuosikurssille sallittu opiskelijoiden määrä esim. 500
      */
     private int kurssinAloitusvuosi;