перепилил часть кода

Может хуже, может лучше)))