created generic recursive walker with adaptors for dom and js objects