first update by kwang