protection contre les cycles + refactoring exceptions