changes should be in descending order