first pass at dependency injection with the opengl objects