has_crossing now partially correct. 3 of 4 test cases passed