y'a moyen de factoriser un peu pour les cas simples