adjusted decorators to work for functools.partial