add @wraps decorator

- preserves function name and docstring