code cleanup, adding comments, corrected proper usage of Visitor pattern, refactored and moved some of the Exception classes and CSV helper classes to the correct packages