refactoring itemlist