preliminary vao implementation