update functools