update by Guannan