simplify operator exception handling and a missing test case
don't use exceptions to report input errors
redesign value and filter evaluation
remove another input-related exception and some minor cleanups
return symbols instead of creating strings every time