use visitNodes. this is as or more stable than walker