fixed traverse return