Yeah, I fully agree with that. Instead of handling extraction, just pull in an existing hydrator (via hydrator interface) and then iterate over the extracted values (or the values to hydrate) instead.

That's where you'd need the metadata