update function lib