Less magick, more speed. Get rid of dynamic dispatch and use double-dispatch in visitors