new Chain of Responsibility pattern added to the AbstractFactory