features refactoring