added text extraction