All the method names and the respective comments are still specific to JSON. This should be changed. I suggest to rename the methods into "visit" since this will be a visitor pattern in the end (as discussed yesterday). We will probably have more than one visitor interface (ValueVisitor, DocumentVisitor, SnakVisitor, ...) and the final JSON converter will just implement many of them. But the methods will still be called "visit" in all cases, so if we change it now it can remain stable. In this sense, it *would* be possible to have different type variables for different interfaces, so maybe this is another option to solve the problem with JSONObject vs. JSONArray.