DataPatternRecognizerWorker::seek has too much logic. The method should be split in several classes/methods.