add the Traverse function