ported to framework; tweaked traversal; added scroll support