visitor and mapreduce