глобальный рефакторинг
покрыл всё коментами