Split off user promping.
Flesh out some docstrings.