optimize: re-use old content when list changes