added isChanged & isSorted