data traversal implemented