wrap update in doUpdate function