only detect chains broken in the middle
finally fixed all cases. should spread-out tests