viimenen versio, turhia kommentteja poistettu, virheenkäsittely lisätty