Implementation de la factory et des test nécessaires