returning NSOrderedDescending is equal to index1 < index2

which means we don't have to call indexOf which is very expensive