improved shaders and model loading code