updated ToString methods to use the Traverse method