refact. update