friendlier exception messages
simplify and improve select/option handling