reorganized, added string extractor