Some methods in this visitor use a clone method to duplicate, rather than constructing a new object. This should be made consistent with the other methods, and tested.