working updown traversal