Готовая версия в стиле ООП