lists refactor