Dodałem region'y + małe poprawki kodu