guard against negatives
tidy
simplify, include read value in invalid selection message
note about whitespace on choices