Добавлены комментарии и внесены мелкие исправления