decorated function now has original function signature thanks to decorator.py