Shouldn't we only run the loop when `self._binary` is None? I don't see a reason why we have to do it when we already found it.