Update to support visit() with throws IOException