Encapsulate buffer objects.
Use the command pattern to setup the OpenGL programs.
Abstract vertex attributes.