Sounds interesting, but I wouldn't put the code for dialogs and dialog boxes into the second module. Maybe create a third module with those additions or one additional module per input method. Or leave that to the application creator and only provide a function to deliver username/password into the module.