added cyl intersect