updated to use extractors and string