add traverse