Improved shadow rendering
Major refactor again