add VariantBody support with reader and iterator