refactoring features