diff --git a/Asiakas.java b/Asiakas.java
index 9178818a942b30fad8ecdd3d2931f10a2d844d9a..19301ffc566201bb95d33dbb0cbb16e538af6a69 100644
--- a/Asiakas.java
+++ b/Asiakas.java
@@ -65,6 +65,10 @@ public class Asiakas {
         data += nimi + erotinmerkki;
         data += ostojaTehty;
 
+        if (this instanceof KantaAsiakas) {
+            int alennus = ((KantaAsiakas) this).getAlennusprosentti();
+            data += erotinmerkki + alennus;
+        }
         return data;
     }
 
diff --git a/Asiakkaat.txt b/Asiakkaat.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0a6620d6a4cd1140c810e9e5152ef196e958025e
--- /dev/null
+++ b/Asiakkaat.txt
@@ -0,0 +1,2 @@
+1235;Markus;0.0
+1234;Erkki;0.0;0
\ No newline at end of file
diff --git a/Ostotapahtuma.java b/Ostotapahtuma.java
index 3909b3cd16ae3fdc652b1387b23c057b6749045b..24811657b8dd5daa2e62bcbb7bc9be20e4976e0e 100644
--- a/Ostotapahtuma.java
+++ b/Ostotapahtuma.java
@@ -14,7 +14,7 @@ public class Ostotapahtuma {
         hinta = maara * tuote.getHinta();
 
         // Vähennetään hinnasta vielä alennus
-        hinta = hinta - hinta * (asiakas.getAlennusprosentti() / 100);
+        hinta = hinta - hinta * (asiakas.getAlennusprosentti() / 100.0);
     }
 
     public Asiakas getAsiakas() {
diff --git a/Verkkokauppa.java b/Verkkokauppa.java
index f3a6e825491b48c7b7927f491627cc41b8e26bcb..7a30171dbee6fcd17bb8fc73de169fe9e832a35e 100644
--- a/Verkkokauppa.java
+++ b/Verkkokauppa.java
@@ -8,7 +8,7 @@ public class Verkkokauppa {
     private ArrayList<Ostotapahtuma> tapahtumat;
 
     public Verkkokauppa() {
-        asiakkaat = new ArrayList<>();
+        asiakkaat = VerkkokauppaIO.lueAsiakkaat("Asiakkaat.txt");
         tuotteet = new ArrayList<>();
         myyjat = new ArrayList<>();
         tapahtumat = new ArrayList<>();
@@ -16,6 +16,7 @@ public class Verkkokauppa {
 
     public void lisaaAsiakas(Asiakas asiakas) {
         asiakkaat.add(asiakas);
+        VerkkokauppaIO.kirjoitaAsiakkaat(asiakkaat, "Asiakkaat.txt");
     }
 
     public void lisaaTuote(Tuote tuote) {
diff --git a/VerkkokauppaIO.java b/VerkkokauppaIO.java
index 0327f80555f5884b65f1917ceddff38d664cfbe4..e4193eae3e69221d61c511f6d29d070a05be2f31 100644
--- a/VerkkokauppaIO.java
+++ b/VerkkokauppaIO.java
@@ -95,8 +95,21 @@ public class VerkkokauppaIO {
         ArrayList<Asiakas> asiakkaat = new ArrayList<>();
         ArrayList<String> data = lueTiedosto(tiedostonNimi);
         for (String adata : data) {
-            Asiakas as = parsiAsiakas(adata);
-            asiakkaat.add(as);
+            Asiakas as;
+            if (adata.contains(EROTIN)) {
+                String[] tiedot = adata.split(EROTIN);
+                String asNro = tiedot[0];
+                String nimi = tiedot[1];
+                double ostot = Double.parseDouble(tiedot[2]);
+
+                if (tiedot.length > 3 && tiedot[3].matches("\\d+")) {
+                    int alennus = Integer.parseInt(tiedot[3]);
+                    as = new KantaAsiakas(asNro, nimi, ostot, alennus);
+                } else  {
+                    as = new Asiakas(asNro, nimi, ostot);
+                }
+                asiakkaat.add(as);
+            }
         }
         return asiakkaat;
     }
diff --git a/out/production/oop-demo4-esimerkit/Asiakas.class b/out/production/oop-demo4-esimerkit/Asiakas.class
index 85d16ee117f6acd78e9dd398a8cb9a14530169c8..500febc2bf387f25e25dc5c3738cde0739c6d472 100644
Binary files a/out/production/oop-demo4-esimerkit/Asiakas.class and b/out/production/oop-demo4-esimerkit/Asiakas.class differ
diff --git a/out/production/oop-demo4-esimerkit/Asiakkaat.txt b/out/production/oop-demo4-esimerkit/Asiakkaat.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0a6620d6a4cd1140c810e9e5152ef196e958025e
--- /dev/null
+++ b/out/production/oop-demo4-esimerkit/Asiakkaat.txt
@@ -0,0 +1,2 @@
+1235;Markus;0.0
+1234;Erkki;0.0;0
\ No newline at end of file
diff --git a/out/production/oop-demo4-esimerkit/KantaAsiakas.class b/out/production/oop-demo4-esimerkit/KantaAsiakas.class
index 450a01997d0ff82e72654ea9b4e36485fe911fde..17a4140378ad5c946c1bbd1d25637887dbb6aa3c 100644
Binary files a/out/production/oop-demo4-esimerkit/KantaAsiakas.class and b/out/production/oop-demo4-esimerkit/KantaAsiakas.class differ
diff --git a/out/production/oop-demo4-esimerkit/Ostotapahtuma.class b/out/production/oop-demo4-esimerkit/Ostotapahtuma.class
index ba253678af536769760eac0e87f16ca615d1e19b..6498fe8c36055ea95029a71ec2a25691707f2588 100644
Binary files a/out/production/oop-demo4-esimerkit/Ostotapahtuma.class and b/out/production/oop-demo4-esimerkit/Ostotapahtuma.class differ
diff --git a/out/production/oop-demo4-esimerkit/Verkkokauppa.class b/out/production/oop-demo4-esimerkit/Verkkokauppa.class
index a60a7669a3c92799fdd9576c01f5e4e1fafd47fa..06cd921ddd6a97a20016853f953646f028b58a85 100644
Binary files a/out/production/oop-demo4-esimerkit/Verkkokauppa.class and b/out/production/oop-demo4-esimerkit/Verkkokauppa.class differ
diff --git a/out/production/oop-demo4-esimerkit/VerkkokauppaIO.class b/out/production/oop-demo4-esimerkit/VerkkokauppaIO.class
index 568611e6fb8e0f0b6ee66469ca45c292c77054e1..5e4e3f4d312acd0799c99ebb973ad3e9c4e0bdd4 100644
Binary files a/out/production/oop-demo4-esimerkit/VerkkokauppaIO.class and b/out/production/oop-demo4-esimerkit/VerkkokauppaIO.class differ
diff --git a/out/production/oop-demo4-esimerkit/asiakkaat.csv b/out/production/oop-demo4-esimerkit/asiakkaat.csv
deleted file mode 100644
index 84638ea1e5440e9c67f7d85b95a0631fe8b34b0e..0000000000000000000000000000000000000000
--- a/out/production/oop-demo4-esimerkit/asiakkaat.csv
+++ /dev/null
@@ -1,3 +0,0 @@
-12345;Antti Asiakas;10.0
-54321;Anna Asiakas;55.5
-99999;Keijo Keksitty;1000.0
\ No newline at end of file
diff --git a/out/production/oop-demo4-esimerkit/tuotteet.dat b/out/production/oop-demo4-esimerkit/tuotteet.dat
deleted file mode 100644
index a76bcbf70382847194646743ae0312070cc67981..0000000000000000000000000000000000000000
Binary files a/out/production/oop-demo4-esimerkit/tuotteet.dat and /dev/null differ