added traverse_history