update by Yufei Wang