fix visitorpattern