Переделал по ООП