refactor on the list