Almost fixed the overlapping. Check note at the top and doesBoatOverlap()