change semantic; remove update_info