user list iterate optimise