<update> refactory