Index: src/work/marci/experiment/graph_wrapper.h
===================================================================
--- src/work/marci/experiment/graph_wrapper.h	(revision 281)
+++ src/work/marci/experiment/graph_wrapper.h	(revision 880)
@@ -162,5 +162,5 @@
 
   template<typename GraphWrapper>
-  class GraphWrapperSkeleton {
+  class GraphWrapper {
   protected:
     GraphWrapper gw;
@@ -185,5 +185,5 @@
 	GraphWrapper::NodeIt(n) { }
       NodeIt(const Invalid& i) : GraphWrapper::NodeIt(i) { }
-      NodeIt(const GraphWrapperSkeleton<GraphWrapper>& _G) : 
+      NodeIt(const GraphWrapper<GraphWrapper>& _G) : 
 	GraphWrapper::NodeIt(_G.gw) { }
     };
@@ -196,5 +196,5 @@
 	GraphWrapper::OutEdgeIt(e) { }
       OutEdgeIt(const Invalid& i) : GraphWrapper::OutEdgeIt(i) { }
-      OutEdgeIt(const GraphWrapperSkeleton<GraphWrapper>& _G, const Node& n) : 
+      OutEdgeIt(const GraphWrapper<GraphWrapper>& _G, const Node& n) : 
 	GraphWrapper::OutEdgeIt(_G.gw, n) { }
     };
@@ -206,5 +206,5 @@
 	GraphWrapper::InEdgeIt(e) { }
       InEdgeIt(const Invalid& i) : GraphWrapper::InEdgeIt(i) { }
-      InEdgeIt(const GraphWrapperSkeleton<GraphWrapper>& _G, const Node& n) : 
+      InEdgeIt(const GraphWrapper<GraphWrapper>& _G, const Node& n) : 
 	GraphWrapper::InEdgeIt(_G.gw, n) { }
     };
@@ -217,11 +217,11 @@
 	GraphWrapper::EdgeIt(e) { }
       EdgeIt(const Invalid& i) : GraphWrapper::EdgeIt(i) { }
-      EdgeIt(const GraphWrapperSkeleton<GraphWrapper>& _G) : 
+      EdgeIt(const GraphWrapper<GraphWrapper>& _G) : 
 	GraphWrapper::EdgeIt(_G.gw) { }
     };
 
 
-    //GraphWrapperSkeleton() : gw() { }
-    GraphWrapperSkeleton(GraphWrapper _gw) : gw(_gw) { }
+    //GraphWrapper() : gw() { }
+    GraphWrapper(GraphWrapper _gw) : gw(_gw) { }
 
     //void setGraph(BaseGraph& _graph) { gw.setGraph(_graph); }
@@ -270,7 +270,7 @@
     template<typename T> class NodeMap : public GraphWrapper::NodeMap<T> { 
     public:
-      NodeMap(const GraphWrapperSkeleton<GraphWrapper>& _G) :  
+      NodeMap(const GraphWrapper<GraphWrapper>& _G) :  
 	GraphWrapper::NodeMap<T>(_G.gw) { }
-      NodeMap(const GraphWrapperSkeleton<GraphWrapper>& _G, T a) : 
+      NodeMap(const GraphWrapper<GraphWrapper>& _G, T a) : 
 	GraphWrapper::NodeMap<T>(_G.gw, a) { }
     };
@@ -278,7 +278,7 @@
     template<typename T> class EdgeMap : public GraphWrapper::EdgeMap<T> { 
     public:
-      EdgeMap(const GraphWrapperSkeleton<GraphWrapper>& _G) :  
+      EdgeMap(const GraphWrapper<GraphWrapper>& _G) :  
 	GraphWrapper::EdgeMap<T>(_G.gw) { }
-      EdgeMap(const GraphWrapperSkeleton<GraphWrapper>& _G, T a) : 
+      EdgeMap(const GraphWrapper<GraphWrapper>& _G, T a) : 
 	GraphWrapper::EdgeMap<T>(_G.gw, a) { }
     };
@@ -366,7 +366,7 @@
 
 //   template<typename /*Graph*/GraphWrapper
-//   /*=typename GraphWrapperSkeleton< TrivGraphWrapper<Graph>*/ >
+//   /*=typename GraphWrapper< TrivGraphWrapper<Graph>*/ >
 //   class RevGraphWrapper : 
-//     public GraphWrapper/*GraphWrapperSkeleton< TrivGraphWrapper<Graph> >*/ {
+//     public GraphWrapper/*GraphWrapper< TrivGraphWrapper<Graph> >*/ {
 //   protected:
 //     //Graph* graph;
@@ -379,11 +379,11 @@
   
 //     //typedef typename Graph::Edge Edge;
-//     typedef typename GraphWrapper/*typename GraphWrapperSkeleton< TrivGraphWrapper<Graph> >*/::OutEdgeIt InEdgeIt;
-//     typedef typename GraphWrapper/*typename GraphWrapperSkeleton< TrivGraphWrapper<Graph> >*/::InEdgeIt OutEdgeIt;
+//     typedef typename GraphWrapper/*typename GraphWrapper< TrivGraphWrapper<Graph> >*/::OutEdgeIt InEdgeIt;
+//     typedef typename GraphWrapper/*typename GraphWrapper< TrivGraphWrapper<Graph> >*/::InEdgeIt OutEdgeIt;
 //     //typedef typename Graph::SymEdgeIt SymEdgeIt;
 //     //typedef typename Graph::EdgeIt EdgeIt;
 
 //     //RevGraphWrapper() : graph(0) { }
-//     RevGraphWrapper(GraphWrapper _gw/*BaseGraph& _graph*/) : GraphWrapper/*GraphWrapperSkeleton< TrivGraphWrapper<Graph> >*/(_gw/*TrivGraphWrapper<Graph>(_graph)*/) { }
+//     RevGraphWrapper(GraphWrapper _gw/*BaseGraph& _graph*/) : GraphWrapper/*GraphWrapper< TrivGraphWrapper<Graph> >*/(_gw/*TrivGraphWrapper<Graph>(_graph)*/) { }
     
 //     //void setGraph(Graph& _graph) { graph = &_graph; }
@@ -430,28 +430,28 @@
 
 //     template<typename T> class NodeMap : 
-//       public GraphWrapper/*Skeleton< TrivGraphWrapper<Graph> >*/::NodeMap<T> 
+//       public GraphWrapper/*< TrivGraphWrapper<Graph> >*/::NodeMap<T> 
 //     { 
 //     public:
 //       NodeMap(const RevGraphWrapper<GraphWrapper>& _gw) : 
-// 	GraphWrapper/*Skeleton< TrivGraphWrapper<Graph> >*/::NodeMap<T>(_gw) { }
+// 	GraphWrapper/*< TrivGraphWrapper<Graph> >*/::NodeMap<T>(_gw) { }
 //       NodeMap(const RevGraphWrapper<GraphWrapper>& _gw, T a) : 
-// 	GraphWrapper/*Skeleton< TrivGraphWrapper<Graph> >*/::NodeMap<T>(_gw, a) { }
+// 	GraphWrapper/*< TrivGraphWrapper<Graph> >*/::NodeMap<T>(_gw, a) { }
 //     };
     
 //     template<typename T> class EdgeMap : 
-//       public GraphWrapper/*Skeleton< TrivGraphWrapper<Graph> >*/::EdgeMap<T> { 
+//       public GraphWrapper/*< TrivGraphWrapper<Graph> >*/::EdgeMap<T> { 
 //     public:
 //       EdgeMap(const RevGraphWrapper<GraphWrapper>& _gw) : 
-// 	GraphWrapper/*Skeleton< TrivGraphWrapper<Graph> >*/::EdgeMap<T>(_gw) { }
+// 	GraphWrapper/*< TrivGraphWrapper<Graph> >*/::EdgeMap<T>(_gw) { }
 //       EdgeMap(const RevGraphWrapper<GraphWrapper>& _gw, T a) : 
-// 	GraphWrapper/*Skeleton< TrivGraphWrapper<Graph> >*/::EdgeMap<T>(_gw, a) { }
+// 	GraphWrapper/*< TrivGraphWrapper<Graph> >*/::EdgeMap<T>(_gw, a) { }
 //     };
 //   };
 
   template<typename GraphWrapper>
-  class RevGraphWrapper : public GraphWrapperSkeleton<GraphWrapper> {
+  class RevGraphWrapper : public GraphWrapper<GraphWrapper> {
   public:
-    typedef typename GraphWrapperSkeleton<GraphWrapper>::Node Node;
-    typedef typename GraphWrapperSkeleton<GraphWrapper>::Edge Edge;
+    typedef typename GraphWrapper<GraphWrapper>::Node Node;
+    typedef typename GraphWrapper<GraphWrapper>::Edge Edge;
     //FIXME 
     //If GraphWrapper::OutEdgeIt is not defined
@@ -462,31 +462,31 @@
     //Unfortunately all the typedefs are instantiated in templates, 
     //unlike other stuff
-    typedef typename GraphWrapperSkeleton<GraphWrapper>::OutEdgeIt InEdgeIt;
-    typedef typename GraphWrapperSkeleton<GraphWrapper>::InEdgeIt OutEdgeIt;
+    typedef typename GraphWrapper<GraphWrapper>::OutEdgeIt InEdgeIt;
+    typedef typename GraphWrapper<GraphWrapper>::InEdgeIt OutEdgeIt;
 
     RevGraphWrapper(GraphWrapper _gw) : 
-      GraphWrapperSkeleton<GraphWrapper>(_gw) { }  
+      GraphWrapper<GraphWrapper>(_gw) { }  
 
     Node head(const Edge& e) const 
-      { return GraphWrapperSkeleton<GraphWrapper>::tail(e); }
+      { return GraphWrapper<GraphWrapper>::tail(e); }
     Node tail(const Edge& e) const 
-      { return GraphWrapperSkeleton<GraphWrapper>::head(e); }
+      { return GraphWrapper<GraphWrapper>::head(e); }
   };
 
   //Subgraph on the same node-set and partial edge-set
   template<typename GraphWrapper, typename EdgeFilterMap>
-  class SubGraphWrapper : public GraphWrapperSkeleton<GraphWrapper> {
+  class SubGraphWrapper : public GraphWrapper<GraphWrapper> {
   protected:
     EdgeFilterMap* filter_map;
   public:
-    typedef typename GraphWrapperSkeleton<GraphWrapper>::Node Node;
-    typedef typename GraphWrapperSkeleton<GraphWrapper>::NodeIt NodeIt;
-    typedef typename GraphWrapperSkeleton<GraphWrapper>::Edge Edge;
-    typedef typename GraphWrapperSkeleton<GraphWrapper>::EdgeIt EdgeIt;
-    typedef typename GraphWrapperSkeleton<GraphWrapper>::InEdgeIt InEdgeIt;
-    typedef typename GraphWrapperSkeleton<GraphWrapper>::OutEdgeIt OutEdgeIt;
+    typedef typename GraphWrapper<GraphWrapper>::Node Node;
+    typedef typename GraphWrapper<GraphWrapper>::NodeIt NodeIt;
+    typedef typename GraphWrapper<GraphWrapper>::Edge Edge;
+    typedef typename GraphWrapper<GraphWrapper>::EdgeIt EdgeIt;
+    typedef typename GraphWrapper<GraphWrapper>::InEdgeIt InEdgeIt;
+    typedef typename GraphWrapper<GraphWrapper>::OutEdgeIt OutEdgeIt;
 
     SubGraphWrapper(GraphWrapper _gw, EdgeFilterMap& _filter_map) : 
-      GraphWrapperSkeleton<GraphWrapper>(_gw), filter_map(&_filter_map) { }  
+      GraphWrapper<GraphWrapper>(_gw), filter_map(&_filter_map) { }  
 
     template<typename I> I& first(I& i) const { 
@@ -678,5 +678,5 @@
 
   template<typename GraphWrapper>
-  class UndirGraphWrapper : public GraphWrapperSkeleton<GraphWrapper> {
+  class UndirGraphWrapper : public GraphWrapper<GraphWrapper> {
   protected:
 //    GraphWrapper gw;
@@ -685,15 +685,15 @@
     //typedef GraphWrapper BaseGraph;
 
-    typedef typename GraphWrapperSkeleton<GraphWrapper>::Node Node;
-    typedef typename GraphWrapperSkeleton<GraphWrapper>::NodeIt NodeIt;
+    typedef typename GraphWrapper<GraphWrapper>::Node Node;
+    typedef typename GraphWrapper<GraphWrapper>::NodeIt NodeIt;
 
     //private:
     //FIXME ezeknek valojaban a GraphWrapper megfelelo dolgai kellene hogy 
     //legyenek, at kell irni
-    typedef typename /*GraphWrapperSkeleton<GraphWrapper>*/
+    typedef typename /*GraphWrapper<GraphWrapper>*/
     GraphWrapper::Edge GraphEdge;
-    typedef typename /*GraphWrapperSkeleton<GraphWrapper>*/ 
+    typedef typename /*GraphWrapper<GraphWrapper>*/ 
     GraphWrapper::OutEdgeIt GraphOutEdgeIt;
-    typedef typename /*GraphWrapperSkeleton<GraphWrapper>*/ 
+    typedef typename /*GraphWrapper<GraphWrapper>*/ 
     GraphWrapper::InEdgeIt GraphInEdgeIt;
     //public:
@@ -701,5 +701,5 @@
     //UndirGraphWrapper() : graph(0) { }
     UndirGraphWrapper(GraphWrapper _gw) : 
-      GraphWrapperSkeleton<GraphWrapper>(_gw) { }  
+      GraphWrapper<GraphWrapper>(_gw) { }  
 
     //UndirGraphWrapper(GraphWrapper _gw) : gw(_gw) { }
@@ -865,8 +865,8 @@
 
 //     template<typename T> class EdgeMap : 
-//       public GraphWrapperSkeleton<GraphWrapper>::EdgeMap<T> { 
+//       public GraphWrapper<GraphWrapper>::EdgeMap<T> { 
 //     public:
 //       EdgeMap(const UndirGraphWrapper<GraphWrapper>& _G) : 
-// 	GraphWrapperSkeleton<GraphWrapper>::EdgeMap<T>(_G.gw) { }
+// 	GraphWrapper<GraphWrapper>::EdgeMap<T>(_G.gw) { }
 //       EdgeMap(const UndirGraphWrapper<GraphWrapper>& _G, T a) : 
 // 	GraphWrapper::EdgeMap<T>(_G.gw, a) { }
@@ -948,14 +948,14 @@
 
   template<typename GraphWrapper, typename Number, typename FlowMap, typename CapacityMap>
-  class ResGraphWrapper : public GraphWrapperSkeleton<GraphWrapper>{
+  class ResGraphWrapper : public GraphWrapper<GraphWrapper>{
   public:
     //typedef Graph BaseGraph;
     //typedef TrivGraphWrapper<const Graph> GraphWrapper;
-    typedef typename GraphWrapperSkeleton<GraphWrapper>::Node Node;
-    typedef typename GraphWrapperSkeleton<GraphWrapper>::NodeIt NodeIt;
+    typedef typename GraphWrapper<GraphWrapper>::Node Node;
+    typedef typename GraphWrapper<GraphWrapper>::NodeIt NodeIt;
   private:
-    typedef typename /*GraphWrapperSkeleton<GraphWrapper>*/
+    typedef typename /*GraphWrapper<GraphWrapper>*/
     GraphWrapper::OutEdgeIt OldOutEdgeIt;
-    typedef typename /*GraphWrapperSkeleton<GraphWrapper>*/
+    typedef typename /*GraphWrapper<GraphWrapper>*/
     GraphWrapper::InEdgeIt OldInEdgeIt;
   protected:
@@ -968,5 +968,5 @@
     ResGraphWrapper(const GraphWrapper& _gw, FlowMap& _flow, 
 		    const CapacityMap& _capacity) : 
-      GraphWrapperSkeleton<GraphWrapper>(_gw), 
+      GraphWrapper<GraphWrapper>(_gw), 
       flow(&_flow), capacity(&_capacity) { }
 
@@ -1265,17 +1265,17 @@
   //Subgraph on the same node-set and partial edge-set
   template<typename GraphWrapper, typename FirstOutEdgesMap>
-  class ErasingFirstGraphWrapper : public GraphWrapperSkeleton<GraphWrapper> {
+  class ErasingFirstGraphWrapper : public GraphWrapper<GraphWrapper> {
   protected:
     FirstOutEdgesMap* first_out_edges;
   public:
-    typedef typename GraphWrapperSkeleton<GraphWrapper>::Node Node;
-    typedef typename GraphWrapperSkeleton<GraphWrapper>::NodeIt NodeIt;
-    typedef typename GraphWrapperSkeleton<GraphWrapper>::Edge Edge;
-    typedef typename GraphWrapperSkeleton<GraphWrapper>::EdgeIt EdgeIt;
-    typedef typename GraphWrapperSkeleton<GraphWrapper>::InEdgeIt InEdgeIt;
-    typedef typename GraphWrapperSkeleton<GraphWrapper>::OutEdgeIt OutEdgeIt;
+    typedef typename GraphWrapper<GraphWrapper>::Node Node;
+    typedef typename GraphWrapper<GraphWrapper>::NodeIt NodeIt;
+    typedef typename GraphWrapper<GraphWrapper>::Edge Edge;
+    typedef typename GraphWrapper<GraphWrapper>::EdgeIt EdgeIt;
+    typedef typename GraphWrapper<GraphWrapper>::InEdgeIt InEdgeIt;
+    typedef typename GraphWrapper<GraphWrapper>::OutEdgeIt OutEdgeIt;
 
     ErasingFirstGraphWrapper(GraphWrapper _gw, FirstOutEdgesMap& _first_out_edges) : 
-      GraphWrapperSkeleton<GraphWrapper>(_gw), first_out_edges(&_first_out_edges) { }  
+      GraphWrapper<GraphWrapper>(_gw), first_out_edges(&_first_out_edges) { }  
 
     template<typename I> I& first(I& i) const { 
