add string utils, add kmp inside