vertex_buffer and vertex_array classes (untested)