raycast now returns an info struct