Index: src/work/edmonds_karp.h
===================================================================
--- src/work/edmonds_karp.h	(revision 243)
+++ src/work/edmonds_karp.h	(revision 259)
@@ -1,5 +1,5 @@
 // -*- c++ -*-
-#ifndef EDMONDS_KARP_H
-#define EDMONDS_KARP_H
+#ifndef HUGO_EDMONDS_KARP_H
+#define HUGO_EDMONDS_KARP_H
 
 #include <algorithm>
@@ -1105,3 +1105,3 @@
 } // namespace hugo
 
-#endif //EDMONDS_KARP_H
+#endif //HUGO_EDMONDS_KARP_H
Index: src/work/marci/dimacs.h
===================================================================
--- src/work/marci/dimacs.h	(revision 206)
+++ src/work/marci/dimacs.h	(revision 259)
@@ -1,5 +1,5 @@
 // -*- c++ -*-
-#ifndef DIMACS_H
-#define DIMACS_H
+#ifndef HUGO_DIMACS_H
+#define HUGO_DIMACS_H
 
 #include <iostream>
@@ -58,3 +58,3 @@
 } //namespace hugo
 
-#endif //DIMACS_H
+#endif //HUGO_DIMACS_H
Index: src/work/marci/graph_wrapper.h
===================================================================
--- src/work/marci/graph_wrapper.h	(revision 239)
+++ src/work/marci/graph_wrapper.h	(revision 259)
@@ -1,5 +1,5 @@
 // -*- c++ -*-
-#ifndef GRAPH_WRAPPER_H
-#define GRAPH_WRAPPER_H
+#ifndef HUGO_GRAPH_WRAPPER_H
+#define HUGO_GRAPH_WRAPPER_H
 
 #include <invalid.h>
@@ -771,5 +771,5 @@
   class ResGraphWrapper {
   public:
-    typedef Graph BaseGraph;
+    //typedef Graph BaseGraph;
     typedef typename Graph::Node Node;
     typedef typename Graph::NodeIt NodeIt;
@@ -778,5 +778,7 @@
     typedef typename Graph::InEdgeIt OldInEdgeIt;
   protected:
-    const Graph* graph;
+    //const Graph* graph;
+    typedef TrivGraphWrapper<const Graph> GraphWrapper;
+    GraphWrapper gw;
     FlowMap* flow;
     const CapacityMap* capacity;
@@ -785,8 +787,8 @@
     ResGraphWrapper(const Graph& _G, FlowMap& _flow, 
 	     const CapacityMap& _capacity) : 
-      graph(&_G), flow(&_flow), capacity(&_capacity) { }
-
-    void setGraph(const Graph& _graph) { graph = &_graph; }
-    const Graph& getGraph() const { return (*graph); }
+      gw(_G), flow(&_flow), capacity(&_capacity) { }
+
+    //void setGraph(const Graph& _graph) { graph = &_graph; }
+    //const Graph& getGraph() const { return (*graph); }
 
     class Edge; 
@@ -830,10 +832,10 @@
     private:
       OutEdgeIt(const ResGraphWrapper<Graph, Number, FlowMap, CapacityMap>& resG, Node v) : Edge() { 
-	resG.graph->first(out, v);
-	while( resG.graph->valid(out) && !(resG.free(out)>0) ) { resG.graph->next(out); }
-	if (!resG.graph->valid(out)) {
+	resG.gw.first(out, v);
+	while( resG.gw.valid(out) && !(resG.free(out)>0) ) { resG.gw.next(out); }
+	if (!resG.gw.valid(out)) {
 	  out_or_in=0;
-	  resG.graph->first(in, v);
-	  while( resG.graph->valid(in) && !(resG.free(in)>0) ) { resG.graph->next(in); }
+	  resG.gw.first(in, v);
+	  while( resG.gw.valid(in) && !(resG.free(in)>0) ) { resG.gw.next(in); }
 	}
       }
@@ -865,21 +867,21 @@
       EdgeIt(const Invalid& i) : Edge(i) { }
       EdgeIt(const ResGraphWrapper<Graph, Number, FlowMap, CapacityMap>& resG) : Edge() { 
-	resG.graph->first(v);
-	if (resG.graph->valid(v)) resG.graph->first(out, v); else out=OldOutEdgeIt(INVALID);
-	while (resG.graph->valid(out) && !(resG.free(out)>0) ) { resG.graph->next(out); }
-	while (resG.graph->valid(v) && !resG.graph->valid(out)) { 
-	  resG.graph->next(v); 
-	  if (resG.graph->valid(v)) resG.graph->first(out, v); 
-	  while (resG.graph->valid(out) && !(resG.free(out)>0) ) { resG.graph->next(out); }
+	resG.gw.first(v);
+	if (resG.gw.valid(v)) resG.gw.first(out, v); else out=/*OldOutEdgeIt*/(INVALID);
+	while (resG.gw.valid(out) && !(resG.free(out)>0) ) { resG.gw.next(out); }
+	while (resG.gw.valid(v) && !resG.gw.valid(out)) { 
+	  resG.gw.next(v); 
+	  if (resG.gw.valid(v)) resG.gw.first(out, v); 
+	  while (resG.gw.valid(out) && !(resG.free(out)>0) ) { resG.gw.next(out); }
 	}
-	if (!resG.graph->valid(out)) {
+	if (!resG.gw.valid(out)) {
 	  out_or_in=0;
-	  resG.graph->first(v);
-	  if (resG.graph->valid(v)) resG.graph->first(in, v); else in=OldInEdgeIt(INVALID);
-	  while (resG.graph->valid(in) && !(resG.free(in)>0) ) { resG.graph->next(in); }
-	  while (resG.graph->valid(v) && !resG.graph->valid(in)) { 
-	    resG.graph->next(v); 
-	    if (resG.graph->valid(v)) resG.graph->first(in, v); 
-	    while (resG.graph->valid(in) && !(resG.free(in)>0) ) { resG.graph->next(in); }
+	  resG.gw.first(v);
+	  if (resG.gw.valid(v)) resG.gw.first(in, v); else in=/*OldInEdgeIt*/(INVALID);
+	  while (resG.gw.valid(in) && !(resG.free(in)>0) ) { resG.gw.next(in); }
+	  while (resG.gw.valid(v) && !resG.gw.valid(in)) { 
+	    resG.gw.next(v); 
+	    if (resG.gw.valid(v)) resG.gw.first(in, v); 
+	    while (resG.gw.valid(in) && !(resG.free(in)>0) ) { resG.gw.next(in); }
 	  }
 	}
@@ -918,5 +920,5 @@
     };
 
-    NodeIt& first(NodeIt& v) const { return graph->first(v); }
+    NodeIt& first(NodeIt& v) const { return gw.first(v); }
     OutEdgeIt& first(OutEdgeIt& e, Node v) const { 
       e=OutEdgeIt(*this, v); 
@@ -928,19 +930,19 @@
     }
    
-    NodeIt& next(NodeIt& n) const { return graph->next(n); }
+    NodeIt& next(NodeIt& n) const { return gw.next(n); }
 
     OutEdgeIt& next(OutEdgeIt& e) const { 
       if (e.out_or_in) {
-	Node v=graph->aNode(e.out);
-	graph->next(e.out);
-	while( graph->valid(e.out) && !(free(e.out)>0) ) { graph->next(e.out); }
-	if (!graph->valid(e.out)) {
+	Node v=gw.aNode(e.out);
+	gw.next(e.out);
+	while( gw.valid(e.out) && !(free(e.out)>0) ) { gw.next(e.out); }
+	if (!gw.valid(e.out)) {
 	  e.out_or_in=0;
-	  graph->first(e.in, v); 
-	  while( graph->valid(e.in) && !(free(e.in)>0) ) { graph->next(e.in); }
+	  gw.first(e.in, v); 
+	  while( gw.valid(e.in) && !(free(e.in)>0) ) { gw.next(e.in); }
 	}
       } else {
-	graph->next(e.in);
-	while( graph->valid(e.in) && !(free(e.in)>0) ) { graph->next(e.in); } 
+	gw.next(e.in);
+	while( gw.valid(e.in) && !(free(e.in)>0) ) { gw.next(e.in); } 
       }
       return e;
@@ -949,29 +951,29 @@
     EdgeIt& next(EdgeIt& e) const { 
       if (e.out_or_in) {
-	graph->next(e.out);
-	while (graph->valid(e.out) && !(free(e.out)>0) ) { graph->next(e.out); }
-	  while (graph->valid(e.v) && !graph->valid(e.out)) { 
-	    graph->next(e.v); 
-	    if (graph->valid(e.v)) graph->first(e.out, e.v); 
-	    while (graph->valid(e.out) && !(free(e.out)>0) ) { graph->next(e.out); }
+	gw.next(e.out);
+	while (gw.valid(e.out) && !(free(e.out)>0) ) { gw.next(e.out); }
+	  while (gw.valid(e.v) && !gw.valid(e.out)) { 
+	    gw.next(e.v); 
+	    if (gw.valid(e.v)) gw.first(e.out, e.v); 
+	    while (gw.valid(e.out) && !(free(e.out)>0) ) { gw.next(e.out); }
 	  }
-	  if (!graph->valid(e.out)) {
+	  if (!gw.valid(e.out)) {
 	    e.out_or_in=0;
-	    graph->first(e.v);
-	    if (graph->valid(e.v)) graph->first(e.in, e.v); else e.in=OldInEdgeIt(INVALID);
-	    while (graph->valid(e.in) && !(free(e.in)>0) ) { graph->next(e.in); }
-	    while (graph->valid(e.v) && !graph->valid(e.in)) { 
-	      graph->next(e.v); 
-	      if (graph->valid(e.v)) graph->first(e.in, e.v); 
-	      while (graph->valid(e.in) && !(free(e.in)>0) ) { graph->next(e.in); }
+	    gw.first(e.v);
+	    if (gw.valid(e.v)) gw.first(e.in, e.v); else e.in=/*OldInEdgeIt*/(INVALID);
+	    while (gw.valid(e.in) && !(free(e.in)>0) ) { gw.next(e.in); }
+	    while (gw.valid(e.v) && !gw.valid(e.in)) { 
+	      gw.next(e.v); 
+	      if (gw.valid(e.v)) gw.first(e.in, e.v); 
+	      while (gw.valid(e.in) && !(free(e.in)>0) ) { gw.next(e.in); }
 	    }  
 	  }
 	} else {
-	  graph->next(e.in);
-	  while (graph->valid(e.in) && !(free(e.in)>0) ) { graph->next(e.in); }
-	  while (graph->valid(e.v) && !graph->valid(e.in)) { 
-	    graph->next(e.v); 
-	    if (graph->valid(e.v)) graph->first(e.in, e.v); 
-	    while (graph->valid(e.in) && !(free(e.in)>0) ) { graph->next(e.in); }
+	  gw.next(e.in);
+	  while (gw.valid(e.in) && !(free(e.in)>0) ) { gw.next(e.in); }
+	  while (gw.valid(e.v) && !gw.valid(e.in)) { 
+	    gw.next(e.v); 
+	    if (gw.valid(e.v)) gw.first(e.in, e.v); 
+	    while (gw.valid(e.in) && !(free(e.in)>0) ) { gw.next(e.in); }
 	  }
 	}
@@ -995,18 +997,18 @@
 
     Node tail(Edge e) const { 
-      return ((e.out_or_in) ? graph->aNode(e.out) : graph->aNode(e.in)); }
+      return ((e.out_or_in) ? gw.aNode(e.out) : gw.aNode(e.in)); }
     Node head(Edge e) const { 
-      return ((e.out_or_in) ? graph->bNode(e.out) : graph->bNode(e.in)); }
+      return ((e.out_or_in) ? gw.bNode(e.out) : gw.bNode(e.in)); }
 
     Node aNode(OutEdgeIt e) const { 
-      return ((e.out_or_in) ? graph->aNode(e.out) : graph->aNode(e.in)); }
+      return ((e.out_or_in) ? gw.aNode(e.out) : gw.aNode(e.in)); }
     Node bNode(OutEdgeIt e) const { 
-      return ((e.out_or_in) ? graph->bNode(e.out) : graph->bNode(e.in)); }
-
-    int id(Node v) const { return graph->id(v); }
-
-    bool valid(Node n) const { return graph->valid(n); }
+      return ((e.out_or_in) ? gw.bNode(e.out) : gw.bNode(e.in)); }
+
+    int id(Node v) const { return gw.id(v); }
+
+    bool valid(Node n) const { return gw.valid(n); }
     bool valid(Edge e) const { 
-      return e.out_or_in ? graph->valid(e.out) : graph->valid(e.in); }
+      return e.out_or_in ? gw.valid(e.out) : gw.valid(e.in); }
 
     void augment(const Edge& e, Number a) const {
@@ -1032,10 +1034,10 @@
     }
 
-    template<typename T> class NodeMap : public Graph::NodeMap<T> { 
+    template<typename T> class NodeMap : public GraphWrapper::NodeMap<T> { 
     public:
       NodeMap(const ResGraphWrapper<Graph, Number, FlowMap, CapacityMap>& _G) 
-	: Graph::NodeMap<T>(_G.getGraph()) { }
+	: GraphWrapper::NodeMap<T>(_G.gw) { }
       NodeMap(const ResGraphWrapper<Graph, Number, FlowMap, CapacityMap>& _G, 
-	      T a) : Graph::NodeMap<T>(_G.getGraph(), a) { }
+	      T a) : GraphWrapper::NodeMap<T>(_G.gw, a) { }
     };
 
@@ -1052,8 +1054,8 @@
     template <typename T>
     class EdgeMap {
-      typename Graph::EdgeMap<T> forward_map, backward_map; 
-    public:
-      EdgeMap(const ResGraphWrapper<Graph, Number, FlowMap, CapacityMap>& _G) : forward_map(_G.getGraph()), backward_map(_G.getGraph()) { }
-      EdgeMap(const ResGraphWrapper<Graph, Number, FlowMap, CapacityMap>& _G, T a) : forward_map(_G.getGraph(), a), backward_map(_G.getGraph(), a) { }
+      typename GraphWrapper::EdgeMap<T> forward_map, backward_map; 
+    public:
+      EdgeMap(const ResGraphWrapper<Graph, Number, FlowMap, CapacityMap>& _G) : forward_map(_G.gw), backward_map(_G.gw) { }
+      EdgeMap(const ResGraphWrapper<Graph, Number, FlowMap, CapacityMap>& _G, T a) : forward_map(_G.gw, a), backward_map(_G.gw, a) { }
       void set(Edge e, T a) { 
 	if (e.out_or_in) 
@@ -1128,6 +1130,6 @@
     
     //template<typename I> I getNext(const I& i) const { 
-    //  return graph->getNext(i); }
-    //template<typename I> I& next(I &i) const { return graph->next(i); }    
+    //  return gw.getNext(i); }
+    //template<typename I> I& next(I &i) const { return gw.next(i); }    
 
     template< typename It > It first() const { 
@@ -1137,21 +1139,21 @@
       It e; first(e, v); return e; }
 
-    //Node head(const Edge& e) const { return graph->head(e); }
-    //Node tail(const Edge& e) const { return graph->tail(e); }
+    //Node head(const Edge& e) const { return gw.head(e); }
+    //Node tail(const Edge& e) const { return gw.tail(e); }
 
     //template<typename I> bool valid(const I& i) const 
-    //  { return graph->valid(i); }
-  
-    //int nodeNum() const { return graph->nodeNum(); }
-    //int edgeNum() const { return graph->edgeNum(); }
+    //  { return gw.valid(i); }
+  
+    //int nodeNum() const { return gw.nodeNum(); }
+    //int edgeNum() const { return gw.edgeNum(); }
   
     //template<typename I> Node aNode(const I& e) const { 
-    //  return graph->aNode(e); }
+    //  return gw.aNode(e); }
     //template<typename I> Node bNode(const I& e) const { 
-    //  return graph->bNode(e); }
-  
-    //Node addNode() const { return graph->addNode(); }
+    //  return gw.bNode(e); }
+  
+    //Node addNode() const { return gw.addNode(); }
     //Edge addEdge(const Node& tail, const Node& head) const { 
-    //  return graph->addEdge(tail, head); }
+    //  return gw.addEdge(tail, head); }
   
     //void erase(const OutEdgeIt& e) {
@@ -1163,7 +1165,7 @@
       first_out_edges.set(this->tail(e), f);
     }
-    //template<typename I> void erase(const I& i) const { graph->erase(i); }
-  
-    //void clear() const { graph->clear(); }
+    //template<typename I> void erase(const I& i) const { gw.erase(i); }
+  
+    //void clear() const { gw.clear(); }
     
     template<typename T> class NodeMap : public ResGraphWrapper<Graph, Number, FlowMap, CapacityMap>::NodeMap<T> { 
@@ -1210,5 +1212,5 @@
     FilterGraphWrapper(const Graph& _G, FlowMap& _flow, 
 			   const CapacityMap& _capacity) : 
-      ErasingResGraphWrapper<Graph, Number, FlowMap, CapacityMap>(_G, _flow, _capacity), dist(*this, graph->nodeNum()) { 
+      ErasingResGraphWrapper<Graph, Number, FlowMap, CapacityMap>(_G, _flow, _capacity), dist(*this, gw.nodeNum()) { 
     }
 
@@ -1249,11 +1251,11 @@
     //Graph& getGraph() const { return (*graph); }
     
-    //template<typename I> I& first(I& i) const { return graph->first(i); }
+    //template<typename I> I& first(I& i) const { return gw.first(i); }
     //template<typename I, typename P> I& first(I& i, const P& p) const { 
-    //  return graph->first(i, p); }
+    //  return gw.first(i, p); }
     
     //template<typename I> I getNext(const I& i) const { 
-    //  return graph->getNext(i); }
-    //template<typename I> I& next(I &i) const { return graph->next(i); }    
+    //  return gw.getNext(i); }
+    //template<typename I> I& next(I &i) const { return gw.next(i); }    
 
     template< typename It > It first() const { 
@@ -1263,28 +1265,28 @@
       It e; first(e, v); return e; }
 
-    //Node head(const Edge& e) const { return graph->head(e); }
-    //Node tail(const Edge& e) const { return graph->tail(e); }
+    //Node head(const Edge& e) const { return gw.head(e); }
+    //Node tail(const Edge& e) const { return gw.tail(e); }
 
     //template<typename I> bool valid(const I& i) const 
-    //  { return graph->valid(i); }
+    //  { return gw.valid(i); }
   
     //template<typename I> void setInvalid(const I &i);
-    //{ return graph->setInvalid(i); }
-
-    //int nodeNum() const { return graph->nodeNum(); }
-    //int edgeNum() const { return graph->edgeNum(); }
+    //{ return gw.setInvalid(i); }
+
+    //int nodeNum() const { return gw.nodeNum(); }
+    //int edgeNum() const { return gw.edgeNum(); }
   
     //template<typename I> Node aNode(const I& e) const { 
-    //  return graph->aNode(e); }
+    //  return gw.aNode(e); }
     //template<typename I> Node bNode(const I& e) const { 
-    //  return graph->bNode(e); }
-  
-    //Node addNode() const { return graph->addNode(); }
+    //  return gw.bNode(e); }
+  
+    //Node addNode() const { return gw.addNode(); }
     //Edge addEdge(const Node& tail, const Node& head) const { 
-    //  return graph->addEdge(tail, head); }
-  
-    //template<typename I> void erase(const I& i) const { graph->erase(i); }
-  
-    //void clear() const { graph->clear(); }
+    //  return gw.addEdge(tail, head); }
+  
+    //template<typename I> void erase(const I& i) const { gw.erase(i); }
+  
+    //void clear() const { gw.clear(); }
     
     template<typename T> class NodeMap : public ErasingResGraphWrapper<Graph, Number, FlowMap, CapacityMap>::NodeMap<T> { 
@@ -1342,8 +1344,8 @@
 //     typedef typename Graph::EdgeIt EdgeIt;
 
-//     int nodeNum() const { return graph->nodeNum(); }
-//     int edgeNum() const { return graph->edgeNum(); }
-
-//     Node& first(Node& n) const { return graph->first(n); }
+//     int nodeNum() const { return gw.nodeNum(); }
+//     int edgeNum() const { return gw.edgeNum(); }
+
+//     Node& first(Node& n) const { return gw.first(n); }
 
 //     // Edge and SymEdge  is missing!!!!
@@ -1354,11 +1356,11 @@
 //       {
 // 	e.n=n;
-// 	graph->first(e.o,n);
-// 	while(graph->valid(e.o) && fmap.get(e.o)>=himap.get(e.o))
-// 	  graph->goNext(e.o);
-// 	if(!graph->valid(e.o)) {
-// 	  graph->first(e.i,n);
-// 	  while(graph->valid(e.i) && fmap.get(e.i)<=lomap.get(e.i))
-// 	    graph->goNext(e.i);
+// 	gw.first(e.o,n);
+// 	while(gw.valid(e.o) && fmap.get(e.o)>=himap.get(e.o))
+// 	  gw.goNext(e.o);
+// 	if(!gw.valid(e.o)) {
+// 	  gw.first(e.i,n);
+// 	  while(gw.valid(e.i) && fmap.get(e.i)<=lomap.get(e.i))
+// 	    gw.goNext(e.i);
 // 	}
 // 	return e;
@@ -1367,13 +1369,13 @@
 //   OutEdgeIt &goNext(OutEdgeIt &e)
 //   {
-//   if(graph->valid(e.o)) {
-//   while(graph->valid(e.o) && fmap.get(e.o)>=himap.get(e.o))
-//   graph->goNext(e.o);
-//   if(graph->valid(e.o)) return e;
-//   else graph->first(e.i,e.n);
+//   if(gw.valid(e.o)) {
+//   while(gw.valid(e.o) && fmap.get(e.o)>=himap.get(e.o))
+//   gw.goNext(e.o);
+//   if(gw.valid(e.o)) return e;
+//   else gw.first(e.i,e.n);
 //   }
 //   else {
-//   while(graph->valid(e.i) && fmap.get(e.i)<=lomap.get(e.i))
-//   graph->goNext(e.i);
+//   while(gw.valid(e.i) && fmap.get(e.i)<=lomap.get(e.i))
+//   gw.goNext(e.i);
 //   return e;
 //   }
@@ -1381,5 +1383,5 @@
 //   OutEdgeIt Next(const OutEdgeIt &e) {OutEdgeIt t(e); return goNext(t);}
 // */
-//     //bool valid(const OutEdgeIt e) { return graph->valid(e.o)||graph->valid(e.i);}
+//     //bool valid(const OutEdgeIt e) { return gw.valid(e.o)||gw.valid(e.i);}
 
 //     //FIXME
@@ -1387,11 +1389,11 @@
 //       {
 // 	e.n=n;
-// 	graph->first(e.i,n);
-// 	while(graph->valid(e.i) && fmap.get(e.i)>=himap.get(e.i))
-// 	  graph->goNext(e.i);
-// 	if(!graph->valid(e.i)) {
-// 	  graph->first(e.o,n);
-// 	  while(graph->valid(e.o) && fmap.get(e.o)<=lomap.get(e.o))
-// 	    graph->goNext(e.o);
+// 	gw.first(e.i,n);
+// 	while(gw.valid(e.i) && fmap.get(e.i)>=himap.get(e.i))
+// 	  gw.goNext(e.i);
+// 	if(!gw.valid(e.i)) {
+// 	  gw.first(e.o,n);
+// 	  while(gw.valid(e.o) && fmap.get(e.o)<=lomap.get(e.o))
+// 	    gw.goNext(e.o);
 // 	}
 // 	return e;
@@ -1400,13 +1402,13 @@
 //   InEdgeIt &goNext(InEdgeIt &e)
 //   {
-//   if(graph->valid(e.i)) {
-//   while(graph->valid(e.i) && fmap.get(e.i)>=himap.get(e.i))
-//   graph->goNext(e.i);
-//   if(graph->valid(e.i)) return e;
-//   else graph->first(e.o,e.n);
+//   if(gw.valid(e.i)) {
+//   while(gw.valid(e.i) && fmap.get(e.i)>=himap.get(e.i))
+//   gw.goNext(e.i);
+//   if(gw.valid(e.i)) return e;
+//   else gw.first(e.o,e.n);
 //   }
 //   else {
-//   while(graph->valid(e.o) && fmap.get(e.o)<=lomap.get(e.o))
-//   graph->goNext(e.o);
+//   while(gw.valid(e.o) && fmap.get(e.o)<=lomap.get(e.o))
+//   gw.goNext(e.o);
 //   return e;
 //   }
@@ -1414,8 +1416,8 @@
 //   InEdgeIt Next(const InEdgeIt &e) {InEdgeIt t(e); return goNext(t);}
 // */
-//     //bool valid(const InEdgeIt e) { return graph->valid(e.i)||graph->valid(e.o);}
-
-//     //template<typename I> I &goNext(I &i); { return graph->goNext(i); }
-//     //template<typename I> I next(const I i); { return graph->goNext(i); }
+//     //bool valid(const InEdgeIt e) { return gw.valid(e.i)||gw.valid(e.o);}
+
+//     //template<typename I> I &goNext(I &i); { return gw.goNext(i); }
+//     //template<typename I> I next(const I i); { return gw.goNext(i); }
 
 //     template< typename It > It first() const { 
@@ -1425,25 +1427,25 @@
 //       It e; first(e, v); return e; }
 
-//     Node head(const Edge& e) const { return graph->head(e); }
-//     Node tail(const Edge& e) const { return graph->tail(e); }
+//     Node head(const Edge& e) const { return gw.head(e); }
+//     Node tail(const Edge& e) const { return gw.tail(e); }
   
 //     template<typename I> Node aNode(const I& e) const { 
-//       return graph->aNode(e); }
+//       return gw.aNode(e); }
 //     template<typename I> Node bNode(const I& e) const { 
-//       return graph->bNode(e); }
+//       return gw.bNode(e); }
   
 //     //template<typename I> bool valid(const I i);
-//     //{ return graph->valid(i); }
+//     //{ return gw.valid(i); }
   
 //     //template<typename I> void setInvalid(const I &i);
-//     //{ return graph->setInvalid(i); }
-  
-//     Node addNode() { return graph->addNode(); }
+//     //{ return gw.setInvalid(i); }
+  
+//     Node addNode() { return gw.addNode(); }
 //     Edge addEdge(const Node& tail, const Node& head) { 
-//       return graph->addEdge(tail, head); }
-  
-//     template<typename I> void erase(const I& i) { graph->erase(i); }
-  
-//     void clear() { graph->clear(); }
+//       return gw.addEdge(tail, head); }
+  
+//     template<typename I> void erase(const I& i) { gw.erase(i); }
+  
+//     void clear() { gw.clear(); }
   
 //     template<typename S> class NodeMap : public Graph::NodeMap<S> { };
@@ -1459,4 +1461,4 @@
 } //namespace hugo
 
-#endif //GRAPH_WRAPPER_H
-
+#endif //HUGO_GRAPH_WRAPPER_H
+
Index: src/work/marci/makefile
===================================================================
--- src/work/marci/makefile	(revision 196)
+++ src/work/marci/makefile	(revision 259)
@@ -6,9 +6,10 @@
 #LEDAROOT ?= /ledasrc/LEDA-4.1
 BOOSTROOT ?= /home/marci/boost
-INCLUDEDIRS ?= -I../../include -I.. -I. -I../{marci,jacint,alpar,klao,akos,athos} -I$(LEDAROOT)/incl -I$(BOOSTROOT)
+INCLUDEDIRS ?= -I../../include -I.. -I../{marci,jacint,alpar,klao,akos,athos} -I$(BOOSTROOT)
+LEDAINCLUDE ?= -I$(LEDAROOT)/incl
 CXXFLAGS = -g -O -W -Wall $(INCLUDEDIRS) -ansi -pedantic
 
-LEDABINARIES = lg_vs_sg leda_graph_demo leda_bfs_dfs
-BINARIES = edmonds_karp_demo max_bipartite_matching_demo
+LEDABINARIES = lg_vs_sg leda_graph_demo leda_bfs_dfs max_bipartite_matching_demo
+BINARIES = edmonds_karp_demo
 #preflow_demo_boost edmonds_karp_demo_boost preflow_demo_jacint preflow_demo_athos edmonds_karp_demo_alpar preflow_demo_leda
 
@@ -17,4 +18,5 @@
 .depend dep depend:
 	-g++ $(INCLUDEDIRS) -M $(BINARIES:=.cc) > .depend #2>/dev/null
+#	-g++ $(INCLUDEDIRS) $(LEDAINCLUDE) -M $(LEDABINARIES:=.cc) >> .depend #2>/dev/null
 
 
@@ -42,6 +44,6 @@
 
 edmonds_karp_demo: 
-	$(CXX3) $(CXXFLAGS) -g -I. -I.. -o edmonds_karp_demo edmonds_karp_demo.cc
-	$(CXX3) $(CXXFLAGS) -g -pg -I. -I.. -o edmonds_karp_demo_prof edmonds_karp_demo.cc
+	$(CXX3) $(CXXFLAGS) -o edmonds_karp_demo edmonds_karp_demo.cc
+#	$(CXX3) $(CXXFLAGS) -pg -o edmonds_karp_demo_prof edmonds_karp_demo.cc
 
 lg_vs_sg:
Index: src/work/marci/time_measure.h
===================================================================
--- src/work/marci/time_measure.h	(revision 128)
+++ src/work/marci/time_measure.h	(revision 259)
@@ -1,5 +1,5 @@
 // -*- c++ -*-
-#ifndef TIME_MEASURE_H
-#define TIME_MEASURE_H
+#ifndef HUGO_TIME_MEASURE_H
+#define HUGO_TIME_MEASURE_H
 
 #include <sys/time.h>
@@ -128,3 +128,3 @@
 }
 
-#endif //TIME_MEASURE_H
+#endif //HUGO_TIME_MEASURE_H
