Use functools.wraps to make debugging wrapped functions easier.