refine list operation