optimize add and remove list