Removed unnecessary exceptions; used visitors to kill explicit type checks