further work on the renderer and shaders