I'm ~ on the variable names here, too. `grayRange` vs `prefixRange`? `regularRange` vs `completedRange` or some such?