--update by Jiarui Hu