Переписал полностью