It was broken because I was stupid and setting previous grapple point to last element instead of second to last element.  Maybe that's enough boxed wine for now...