The boolean assumeUnique argument does not need to be added to any function that returns the Index -- the caller can easily pass the result through setAssumeUnique(assumeUnique) if it needs to -- or the caller can go unchanged if it would hard-code assumeUnique to false. This eliminates many changes.