update
refactor magic update