couche métier + refactor