Was the intention to explicitly not use ** on kwargs? I noticed this required a lot of other changes to the code that might not have been necessary if kwargs were not a required parameter. I don't fully understand this changeset though, to be honest, so I might be missing something.