Nimetty joitakin muuttujia uudelleen, lisätty kommentteja. TBD: luokan
nimen muuttaminen?