recursive hit test and sho