not totally sure I understand hasHadInjectionPoints.  When does reset get called?  Between every call to isWorthScanning? Is there a better way to carry the state between invocations?