Добавил комментарии. Исправил несколько ошибок.