Добавление паттерна Factory Method