tested and working corasick!