Refactor prompts to be IO-specific

Fixes #2