This is a mess
Refine line of sight method