public LinkedList<Integer> searchForPattern(String pattern, String context){
		LinkedList<Integer> foundPatternList = new LinkedList<Integer>();
		int patternLength = pattern.length(); int contextLength = context.length();
		long specialValue = this.computeSpecialValue(patternLength);
		long patternHash = this.computeHashValueForPattern(pattern, patternLength);
		long contextHash = this.computeHashValueForPattern(context, patternLength);
		if (patternHash == contextHash) foundPatternList.add(1);
		for(int foundPatternAt = patternLength; foundPatternAt < (contextLength); foundPatternAt++) {
			contextHash = ((contextHash + context.charAt(foundPatternAt-patternLength)*
					(primeNumber - specialValue))*alphabet + context.charAt(foundPatternAt))%primeNumber;
			if (patternHash == contextHash) 
				if(this.isStringInContext(pattern, context, foundPatternAt - patternLength + 1)) 
					foundPatternList.add(foundPatternAt - patternLength + 1);
			comparisons++;
		}
		return foundPatternList;
	}