refactoring All