wraps_kwargs must always take a mutable object to redfine a function interface