add abstract extractor