Кривой код переделан в более разумный вариант (структурных изменений нет)