added more support for shaders, initial rendering loop, now using glm