Working on returning user input
Callback ideas and the concept of using a model
Tweaked to avoid merge conflict