Improve the update method to support modifier