EAV extract format

Not sure if we can reduce the boilerplate/shared-code here somehow?