Hi all, Although I was attracted to BGL since I have to use a lot of graph algorithms for my work, and I have managed to read through as much online documentation as possible, generic programming is still very mysterious to me. All I need to do is compute reachability from vertex B to vertex A before I add the edge A->B to a graph (directed and acyclic) so that I can maintain its acyclic property. I do not want to add the edge, discover a cycle and then remove it. I saw a very closely related example here. (thanks to Steven Watanabe) http://lists.boost.org/boost-users/2009/03/46396.php That was helpful, but I'm still not able to adapt this to my need mainly because I find the syntax and concepts of generic programming extremely confusing. I am not sure how I can pass an extra parameter into a BFSVisitor which the member function discover_vertex can use. Does discover_vertex have to have only a vertex_descriptor and a Graph? I want to pass another constant vertex to it so I can return on equality. I need to initiate a BFS from vertex B, (and not continue with new trees once the tree with B as root is finished) . On discovering vertex A in this search I need to return true, false for all other cases. Pretty simple, and I am hoping someone would write a code snippet for me that will solve the problem and also provide me with the baby step I need to wrap my head around this Visitor concept. Thanks in advance. - Roshan Rammohan PhD Candidate, A.I. lab, Dept of C.S., Univ. of New Mexico, USA