refactoring(stable)