#4.1

Добавил комментарии, избавился от некоторых повторяющихся строк