added abstract extractor