Mirror a1c40afee5c506d4402d9f45c205b4f61c102767 and refactor