added graph traversal