refactoring n cleanin