update handler