Переделал-дооптимизировал