many changes to make the shading (somewhat) work. still wrong, i think