Implémentation de G4 + refactoring