Refactor into shape and intersection function, viewing error present
Shadows and phong shading