fixed traverse_history