+1! Although please add ``functools.wraps`` + make the original function available as an argument for debuggery :)