Разбил на блоки, добавил комментов