refactoring the feature