move vao into buffer. clean up gl state calls.