string matching, still not fun.