list refactoring