Koodin uudelleen kirjoitusta v2

Koodin logiikan uudelleen kirjoitusta
- Älä update/mergeä tästä omaan branchiin