Software engineering related question incoming, I suppose you implemented the visitor pattern in a way such that none of your node subclasses actually performs calls to opengl, but instead the renderer just calls the appropriate method to render a node if it should be rendered, and is the only class making actual opengl calls?