traversal and validation