uses functools.wraps to simplify basic tests