commit lantao's codes first, then do review