con refactoring !