Too tired to explain this commit, just read the content, it's easy to understand