Idea: need to have a generic approach to user interaction.