Remove unused code
Make sure we are failing for the correct reason
Override visit to give a more informative error message
Modularize tests