1. speed locating
2. fix: the first keywords sometimes is not in base name;
update