diff --git a/src/graph_impl/mod.rs b/src/graph_impl/mod.rs
index ca80d6e..93e3c4b 100644
--- a/src/graph_impl/mod.rs
+++ b/src/graph_impl/mod.rs
@@ -1418,7 +1418,7 @@
             None => {}
             Some(edge) => {
                 self.next[0] = edge.next[0];
-                return Some((edge.node[1]));
+                return Some(edge.node[1]);
             }
         }
         // Then incoming edges
@@ -1428,7 +1428,7 @@
         while let Some(edge) = self.edges.get(self.next[1].index()) {
             self.next[1] = edge.next[1];
             if edge.node[0] != self.skip_start {
-                return Some((edge.node[0]));
+                return Some(edge.node[0]);
             }
         }
         None
diff --git a/src/graph_impl/stable_graph/mod.rs b/src/graph_impl/stable_graph/mod.rs
index df01fda..5295adc 100644
--- a/src/graph_impl/stable_graph/mod.rs
+++ b/src/graph_impl/stable_graph/mod.rs
@@ -1430,7 +1430,7 @@
             Some(edge) => {
                 debug_assert!(edge.weight.is_some());
                 self.next[0] = edge.next[0];
-                return Some((edge.node[1]));
+                return Some(edge.node[1]);
             }
         }
         // Then incoming edges
@@ -1441,7 +1441,7 @@
             debug_assert!(edge.weight.is_some());
             self.next[1] = edge.next[1];
             if edge.node[0] != self.skip_start {
-                return Some((edge.node[0]));
+                return Some(edge.node[0]);
             }
         }
         None
diff --git a/tests/graphmap.rs b/tests/graphmap.rs
index 490abcc..51b37e6 100644
--- a/tests/graphmap.rs
+++ b/tests/graphmap.rs
@@ -16,12 +16,12 @@
     //let root = TypedArena::<Node<_>>::new();
     let mut gr = UnGraphMap::new();
     //let node = |&: name: &'static str| Ptr(root.alloc(Node(name.to_string())));
-    let a = gr.add_node(("A"));
-    let b = gr.add_node(("B"));
-    let c = gr.add_node(("C"));
-    let d = gr.add_node(("D"));
-    let e = gr.add_node(("E"));
-    let f = gr.add_node(("F"));
+    let a = gr.add_node("A");
+    let b = gr.add_node("B");
+    let c = gr.add_node("C");
+    let d = gr.add_node("D");
+    let e = gr.add_node("E");
+    let f = gr.add_node("F");
     gr.add_edge(a, b, 7);
     gr.add_edge(a, c, 9);
     gr.add_edge(a, d, 14);
