handle errors internally

Reduces granularity
This was deliberate.  The first item doesn't item isn't checked, unless its selected as a previous element - see line 131.