now seems bug-free, but need more analyses of the result, seems mismatch