update by liao