added Rabin-Karp