update by Hujingyuan