BUG: Use functools.wraps