Добавил комментарии + немного поправил баги