use inspect.getcallargs instead of shadow lambda