Lots of corrections and relocation of visitorpattern.