part2 fixed. the current accuracy is 75.886%.
will fix part1 later