modif abstract factory