Reorganize Visitor pattern structure