should be rewrite with KMP