restruct. need topic and bfs.