fixed bug in visitor the visitor may change the keys