Replace Traversable with Visitable, simplify Visitor