példa jobban kidolgozva, 1-2 bugfix :p