Note: I replaced the static `with_index` methods that take a `self` with instance methods (I wanted `this` to have the correct type).

Are these actually equivalent like I'm assuming?  Or do I need another plan of attack here?