Use thimble

WIP, with some review points so it doesn't get too off-track.
Shouldn't this be `f(*bound_args.args, **bound_args.kwargs)`?