refactoring feature