fix VAO and others. still a little ugly.