Index: src/work/marci/bfs_dfs.h
===================================================================
--- src/work/marci/bfs_dfs.h	(revision 604)
+++ src/work/marci/bfs_dfs.h	(revision 615)
@@ -3,11 +3,11 @@
 #define HUGO_BFS_DFS_H
 
-// ///\ingroup gwrappers
-///\file
-///\brief Bfs and dfs iterators.
+/// \ingroup galgs
+/// \file
+/// \brief Bfs and dfs iterators.
 ///
-///This file contains bfs and dfs iterator classes.
+/// This file contains bfs and dfs iterator classes.
 ///
-// ///\author Marton Makai
+// /// \author Marton Makai
 
 #include <queue>
@@ -22,4 +22,5 @@
   /// \c reached_map
   /// Reached have to work as read-write bool Node-map.
+  /// \ingroup galgs
   template <typename Graph, /*typename OutEdgeIt,*/ 
 	    typename ReachedMap/*=typename Graph::NodeMap<bool>*/ >
@@ -106,5 +107,5 @@
       return *this;
     }
-    ///
+    /// Guess what?
     bool finished() const { return bfs_queue.empty(); }
     /// The conversion operator makes for converting the bfs-iterator 
@@ -112,17 +113,17 @@
     ///\bug Edge have to be in HUGO 0.2
     operator OutEdgeIt() const { return actual_edge; }
-    ///
+    /// Guess what?
     bool isBNodeNewlyReached() const { return b_node_newly_reached; }
-    ///
+    /// Guess what?
     bool isANodeExamined() const { return !(graph->valid(actual_edge)); }
-    ///
+    /// Guess what?
     Node aNode() const { return bfs_queue.front(); }
-    ///
+    /// Guess what?
     Node bNode() const { return graph->bNode(actual_edge); }
-    ///
+    /// Guess what?
     const ReachedMap& getReachedMap() const { return reached; }
-    ///
+    /// Guess what?
     const std::queue<Node>& getBfsQueue() const { return bfs_queue; }
-  };  
+  };
 
   /// Bfs searches for the nodes wich are not marked in 
@@ -130,7 +131,6 @@
   /// Reached have to work as a read-write bool Node-map, 
   /// Pred is a write Edge Node-map and
-  /// Dist is a read-write int Node-map, have to be. 
-  ///\todo In fact onsly simple operations requirement are needed for 
-  /// Dist::Value.
+  /// Dist is a read-write Node-map of integral value, have to be. 
+  /// \ingroup galgs
   template <typename Graph, 
 	    typename ReachedMap=typename Graph::template NodeMap<bool>, 
@@ -179,7 +179,7 @@
       return *this;
     }
-    ///
+    /// Guess what?
     const PredMap& getPredMap() const { return pred; }
-    ///
+    /// Guess what?
     const DistMap& getDistMap() const { return dist; }
   };
@@ -188,4 +188,5 @@
   /// \c reached_map
   /// Reached have to be a read-write bool Node-map.
+  /// \ingroup galgs
   template <typename Graph, /*typename OutEdgeIt,*/ 
 	    typename ReachedMap/*=typename Graph::NodeMap<bool>*/ >
@@ -249,19 +250,19 @@
       return *this;
     }
-    ///
+    /// Guess what?
     bool finished() const { return dfs_stack.empty(); }
-    ///
+    /// Guess what?
     operator OutEdgeIt() const { return actual_edge; }
-    ///
+    /// Guess what?
     bool isBNodeNewlyReached() const { return b_node_newly_reached; }
-    ///
+    /// Guess what?
     bool isANodeExamined() const { return !(graph->valid(actual_edge)); }
-    ///
+    /// Guess what?
     Node aNode() const { return actual_node; /*FIXME*/}
-    ///
+    /// Guess what?
     Node bNode() const { return graph->bNode(actual_edge); }
-    ///
+    /// Guess what?
     const ReachedMap& getReachedMap() const { return reached; }
-    ///
+    /// Guess what?
     const std::stack<OutEdgeIt>& getDfsStack() const { return dfs_stack; }
   };
@@ -271,4 +272,5 @@
   /// Reached is a read-write bool Node-map, 
   /// Pred is a write Node-map, have to be.
+  /// \ingroup galgs
   template <typename Graph, 
 	    typename ReachedMap=typename Graph::template NodeMap<bool>, 
@@ -313,5 +315,5 @@
       return *this;
     }
-    ///
+    /// Guess what?
     const PredMap& getPredMap() const { return pred; }
   };
Index: src/work/marci/bfs_dfs_misc.h
===================================================================
--- src/work/marci/bfs_dfs_misc.h	(revision 604)
+++ src/work/marci/bfs_dfs_misc.h	(revision 615)
@@ -3,9 +3,9 @@
 #define HUGO_BFS_DFS_MISC_H
 
-// ///\ingroup gwrappers
-///\file
-///\brief Miscellaneous algorithms using bfs and dfs.
+/// \ingroup galgs
+/// \file
+/// \brief Miscellaneous algorithms using bfs and dfs.
 ///
-///This file contains several algorithms using bfs and dfs.
+/// This file contains several algorithms using bfs and dfs.
 ///
 // ///\author Marton Makai
@@ -16,8 +16,9 @@
 namespace hugo {
 
-  /// This function eat a read-write \c BoolMap& bool_map, 
+  /// This function eats a read-write \c BoolMap& bool_map, 
   /// which have to work well up 
   /// to its \c set and \c operator[]() method. Thus we have to deal 
   /// very carefully with an uninitialized \c IterableBoolMap.
+  /// \ingroup galgs
   template<typename Graph, typename BoolMap> 
   bool isBipartite(const Graph& g, BoolMap& bool_map) {
@@ -53,4 +54,5 @@
   /// then going back from the returned node via the pred information, a 
   /// cycle is obtained.
+  /// \ingroup galgs
   template<typename Graph, typename PredMap> 
   typename Graph::Node 
@@ -90,4 +92,5 @@
     return INVALID;
   }
+
 } //namespace hugo
 
Index: src/work/marci/makefile
===================================================================
--- src/work/marci/makefile	(revision 613)
+++ src/work/marci/makefile	(revision 615)
@@ -5,5 +5,5 @@
 
 LEDABINARIES = leda_graph_demo leda_bfs_dfs max_bipartite_matching_demo
-BINARIES = max_flow_demo iterator_bfs_demo macro_test lg_vs_sg bfsit_vs_byhand bipartite_graph_wrapper_test bipartite_matching_try bipartite_matching_try_3 top_sort_test
+BINARIES = max_flow_demo iterator_bfs_demo macro_test lg_vs_sg bfsit_vs_byhand bipartite_graph_wrapper_test bipartite_matching_try bipartite_matching_try_3 top_sort_test max_flow_1
 #gw_vs_not preflow_demo_boost edmonds_karp_demo_boost preflow_demo_jacint preflow_demo_athos edmonds_karp_demo_alpar preflow_demo_leda
 
Index: src/work/marci/max_bipartite_matching.h
===================================================================
--- src/work/marci/max_bipartite_matching.h	(revision 613)
+++ src/work/marci/max_bipartite_matching.h	(revision 615)
@@ -2,4 +2,14 @@
 #ifndef HUGO_MAX_BIPARTITE_MATCHING_H
 #define HUGO_MAX_BIPARTITE_MATCHING_H
+
+/// \ingroup galgs
+/// \file
+/// \brief Maximum bipartite matchings, b-matchings and 
+/// capacitated b-matchings.
+///
+/// This file contains a class for bipartite maximum matching, b-matchings 
+/// and capacitated b-matching computations.
+///
+// /// \author Marton Makai
 
 //#include <for_each_macros.h>
Index: src/work/marci/max_flow_1.cc
===================================================================
--- src/work/marci/max_flow_1.cc	(revision 615)
+++ src/work/marci/max_flow_1.cc	(revision 615)
@@ -0,0 +1,60 @@
+// -*- c++ -*-
+#include <iostream>
+#include <fstream>
+
+#include <list_graph.h>
+#include <hugo/smart_graph.h>
+#include <hugo/dimacs.h>
+#include <hugo/time_measure.h>
+//#include <graph_wrapper.h>
+#include <max_flow.h>
+//#include <preflow_res.h>
+#include <for_each_macros.h>
+
+using namespace hugo;
+
+// Use a DIMACS max flow file as stdin.
+// read_dimacs_demo < dimacs_max_flow_file
+
+
+int main(int, char **) {
+
+  typedef ListGraph MutableGraph;
+
+  typedef SmartGraph Graph;
+  //  typedef ListGraph Graph;
+  typedef Graph::Node Node;
+  typedef Graph::EdgeIt EdgeIt;
+
+
+  Graph g;
+  Node s, t;
+  Graph::EdgeMap<int> cap(g);
+  //readDimacsMaxFlow(std::cin, g, s, t, cap);
+  readDimacs(std::cin, g, cap, s, t);
+  Timer ts;
+  Graph::EdgeMap<int> flow(g); //0 flow
+  MaxFlow<Graph, int, Graph::EdgeMap<int>, Graph::EdgeMap<int> > 
+    max_flow_test(g, s, t, cap, flow);
+
+  {
+    std::cout << "preflow ..." << std::endl;
+    FOR_EACH_LOC(Graph::EdgeIt, e, g) flow.set(e, 0);
+    ts.reset();
+    max_flow_test.preflowPhase0(MaxFlow<Graph, int, Graph::EdgeMap<int>, Graph::EdgeMap<int> >::ZERO_FLOW);
+    std::cout << "elapsed time: " << ts << std::endl;
+    std::cout << "flow value: "<< max_flow_test.flowValue() << std::endl;
+  }
+
+  {
+    std::cout << "preflow ..." << std::endl;
+    FOR_EACH_LOC(Graph::EdgeIt, e, g) flow.set(e, 0);
+    ts.reset();
+    max_flow_test.preflowPhase0(MaxFlow<Graph, int, Graph::EdgeMap<int>, Graph::EdgeMap<int> >::ZERO_FLOW);
+    std::cout << "elapsed time: " << ts << std::endl;
+    std::cout << "flow value: "<< max_flow_test.flowValue() << std::endl;
+  }
+
+
+  return 0;
+}
