refactor list operation