Updated ToString and added Visitor