refactor majeur de la solutioon