adds update support to preserve list order