version refactorée