Добавлены коментарии и  рефакторинг кода