You should show how EnableVAO, EnableVBO and Update methods are implemented. And what is the code for failing render? Since you grouped VAO and vertex buffer lines together, I guess you just bound the index buffer before binding the VAO. Just remember that the VAO should be bound first, because the buffers are bound to it.
glBindVertexArray(vao); glBindBuffer(...indexbuffer...); glBindBuffer(...vertexbuffer...);