Is the use of kwargs here right? I figured the 4th argument would be user_input to match the call signature from line 77.  If it is right, the variable could be named more clearly.