refactoring and changes in list model