use a factory to select extractors, generalize and simplify OIA harvesting code