added shadow path calculation