improve iterator
make visitor work (only) on const
add logging