Move Accumulation To Visitor

Problem:

A method accumulates information from heterogeneous classes.

Solution:

Move the accumulation task to a Visitor that can visit each class to accumulate the information.