update by LJW