javadocia päivitetty ja koodia refaktoroitu