shapes are drawn with draw calls like standard. No hardcoded draw method, so now I can just iterate over shapes, and all the model are drawn using VAO.