can we name this differently it's super hard to differentiate between the member and the local var. I also would love to not use `null` as the marker but make it final and check if it is empty? The extra object creation here is not worth the complexity IMO. We might even think of putting this into a separate method for readability ie `Map<X,Y> findWaitingIndices()`?