diff --git a/unittests/BinTreeTest.cpp b/unittests/BinTreeTest.cpp
index fdf2bd1..5d2cd0a 100644
--- a/unittests/BinTreeTest.cpp
+++ b/unittests/BinTreeTest.cpp
@@ -8,8 +8,8 @@
 //===----------------------------------------------------------------------===//
 #include "BinTreeTest.h"
 
-#include "mcld/ADT/TypeTraits.h"
-#include "mcld/MC/InputTree.h"
+#include <mcld/ADT/TypeTraits.h>
+#include <mcld/InputTree.h>
 #include <string>
 
 using namespace mcld;
@@ -44,8 +44,8 @@
 //
 
 
-/// General 
-TEST_F( BinTreeTest,Two_non_null_tree_merge) 
+/// General
+TEST_F( BinTreeTest,Two_non_null_tree_merge)
 {
   BinaryTree<int>::iterator pos = m_pTestee->root();
   m_pTestee->join<TreeIteratorBase::Rightward>(pos,0);
@@ -63,16 +63,16 @@
   mergeTree->join<TreeIteratorBase::Rightward>(pos2,1);
   mergeTree->join<TreeIteratorBase::Leftward>(pos2,1);
 
-  m_pTestee->merge<TreeIteratorBase::Rightward>(pos,*mergeTree); 
+  m_pTestee->merge<TreeIteratorBase::Rightward>(pos,*mergeTree);
   delete mergeTree;
   EXPECT_TRUE(m_pTestee->size()==8);
 }
 
 /// ---- TEST - 2 ----
-TEST_F( BinTreeTest, A_null_tree_merge_a_non_null_tree) 
-{ 
+TEST_F( BinTreeTest, A_null_tree_merge_a_non_null_tree)
+{
   BinaryTree<int>::iterator pos = m_pTestee->root();
- 
+
   BinaryTree<int> *mergeTree = new BinaryTree<int>;
   mergeTree->join<TreeIteratorBase::Rightward>(pos,0);
   --pos;
@@ -82,14 +82,14 @@
   mergeTree->join<TreeIteratorBase::Rightward>(pos,2);
   mergeTree->join<TreeIteratorBase::Leftward>(pos,2);
 
-  m_pTestee->merge<TreeIteratorBase::Rightward>(pos,*mergeTree); 
+  m_pTestee->merge<TreeIteratorBase::Rightward>(pos,*mergeTree);
 
   delete mergeTree;
   EXPECT_TRUE(m_pTestee->size()==5);
 }
 
-TEST_F( BinTreeTest, A_non_null_tree_merge_a_null_tree) 
-{ 
+TEST_F( BinTreeTest, A_non_null_tree_merge_a_null_tree)
+{
   BinaryTree<int>::iterator pos = m_pTestee->root();
   m_pTestee->join<TreeIteratorBase::Rightward>(pos,0);
   --pos;
@@ -98,24 +98,24 @@
   --pos;
   m_pTestee->join<TreeIteratorBase::Rightward>(pos,2);
   m_pTestee->join<TreeIteratorBase::Leftward>(pos,2);
-  
+
   BinaryTree<int> *mergeTree = new BinaryTree<int>;
-  BinaryTree<int>::iterator pos2 = mergeTree->root(); 
-  mergeTree->merge<TreeIteratorBase::Rightward>(pos2,*m_pTestee); 
+  BinaryTree<int>::iterator pos2 = mergeTree->root();
+  mergeTree->merge<TreeIteratorBase::Rightward>(pos2,*m_pTestee);
 
   //delete m_pTestee;
   EXPECT_TRUE(mergeTree->size()==5);
   delete mergeTree;
 }
 
-TEST_F( BinTreeTest, Two_null_tree_merge) 
-{ 
+TEST_F( BinTreeTest, Two_null_tree_merge)
+{
   BinaryTree<int>::iterator pos = m_pTestee->root();
- 
-  BinaryTree<int> *mergeTree = new BinaryTree<int>;
-  BinaryTree<int>::iterator pos2 = mergeTree->root(); 
 
-  mergeTree->merge<TreeIteratorBase::Rightward>(pos2,*m_pTestee); 
+  BinaryTree<int> *mergeTree = new BinaryTree<int>;
+  BinaryTree<int>::iterator pos2 = mergeTree->root();
+
+  mergeTree->merge<TreeIteratorBase::Rightward>(pos2,*m_pTestee);
 
   //delete m_pTestee;
   EXPECT_TRUE(mergeTree->size()==0);
@@ -126,7 +126,7 @@
 {
   int a = 111;
   BinaryTree<int>::iterator pos = m_pTestee->root();
-  
+
   m_pTestee->join<InputTree::Inclusive>(pos,a);
   pos.move<InputTree::Inclusive>();
   m_pTestee->join<InputTree::Positional>(pos,10);
@@ -134,9 +134,9 @@
   pos.move<InputTree::Inclusive>();
   m_pTestee->join<InputTree::Positional>(pos,8);
   m_pTestee->join<InputTree::Inclusive>(pos,7);
-  
-  BinaryTree<int>::dfs_iterator dfs_it = m_pTestee->dfs_begin(); 
-  BinaryTree<int>::dfs_iterator dfs_end = m_pTestee->dfs_end(); 
+
+  BinaryTree<int>::dfs_iterator dfs_it = m_pTestee->dfs_begin();
+  BinaryTree<int>::dfs_iterator dfs_end = m_pTestee->dfs_end();
 
   ASSERT_EQ(111, **dfs_it);
   ++dfs_it;
@@ -149,8 +149,8 @@
   ASSERT_EQ(10, **dfs_it);
   ++dfs_it;
   ASSERT_TRUE( dfs_it ==  dfs_end);
-  BinaryTree<int>::bfs_iterator bfs_it = m_pTestee->bfs_begin(); 
-  BinaryTree<int>::bfs_iterator bfs_end = m_pTestee->bfs_end(); 
+  BinaryTree<int>::bfs_iterator bfs_it = m_pTestee->bfs_begin();
+  BinaryTree<int>::bfs_iterator bfs_end = m_pTestee->bfs_end();
 }
 
 TEST_F( BinTreeTest, DFSIterator_RightMostTree)
@@ -165,9 +165,9 @@
   m_pTestee->join<InputTree::Positional>(pos,3);
   pos.move<InputTree::Positional>();
   m_pTestee->join<InputTree::Positional>(pos,4);
-  
-  BinaryTree<int>::dfs_iterator dfs_it = m_pTestee->dfs_begin(); 
-  BinaryTree<int>::dfs_iterator dfs_end = m_pTestee->dfs_end(); 
+
+  BinaryTree<int>::dfs_iterator dfs_it = m_pTestee->dfs_begin();
+  BinaryTree<int>::dfs_iterator dfs_end = m_pTestee->dfs_end();
 
   ASSERT_EQ(0, **dfs_it);
   ++dfs_it;
@@ -187,8 +187,8 @@
 {
   BinaryTree<int>::iterator pos = m_pTestee->root();
   m_pTestee->join<InputTree::Inclusive>(pos,0);
-  BinaryTree<int>::dfs_iterator dfs_it = m_pTestee->dfs_begin(); 
-  BinaryTree<int>::dfs_iterator dfs_end = m_pTestee->dfs_end(); 
+  BinaryTree<int>::dfs_iterator dfs_it = m_pTestee->dfs_begin();
+  BinaryTree<int>::dfs_iterator dfs_end = m_pTestee->dfs_end();
   int counter = 0;
   while( dfs_it != dfs_end ) {
     ++counter;
@@ -201,7 +201,7 @@
 {
   int a = 111;
   BinaryTree<int>::iterator pos = m_pTestee->root();
-  
+
   m_pTestee->join<InputTree::Inclusive>(pos,a);
   pos.move<InputTree::Inclusive>();
   m_pTestee->join<InputTree::Positional>(pos,10);
@@ -209,9 +209,9 @@
   pos.move<InputTree::Inclusive>();
   m_pTestee->join<InputTree::Positional>(pos,8);
   m_pTestee->join<InputTree::Inclusive>(pos,7);
-  
-  BinaryTree<int>::bfs_iterator bfs_it = m_pTestee->bfs_begin(); 
-  BinaryTree<int>::bfs_iterator bfs_end = m_pTestee->bfs_end(); 
+
+  BinaryTree<int>::bfs_iterator bfs_it = m_pTestee->bfs_begin();
+  BinaryTree<int>::bfs_iterator bfs_end = m_pTestee->bfs_end();
 
   ASSERT_EQ(111, **bfs_it);
   ++bfs_it;
@@ -224,8 +224,8 @@
   ASSERT_EQ(7, **bfs_it);
   ++bfs_it;
   ASSERT_TRUE(bfs_it ==  bfs_end);
-  bfs_it = m_pTestee->bfs_begin(); 
-  bfs_end = m_pTestee->bfs_end(); 
+  bfs_it = m_pTestee->bfs_begin();
+  bfs_end = m_pTestee->bfs_end();
 }
 
 TEST_F( BinTreeTest, BFSIterator_RightMostTree)
@@ -240,9 +240,9 @@
   m_pTestee->join<InputTree::Positional>(pos,3);
   pos.move<InputTree::Positional>();
   m_pTestee->join<InputTree::Positional>(pos,4);
-  
-  BinaryTree<int>::bfs_iterator bfs_it = m_pTestee->bfs_begin(); 
-  BinaryTree<int>::bfs_iterator bfs_end = m_pTestee->bfs_end(); 
+
+  BinaryTree<int>::bfs_iterator bfs_it = m_pTestee->bfs_begin();
+  BinaryTree<int>::bfs_iterator bfs_end = m_pTestee->bfs_end();
 
   ASSERT_EQ(0, **bfs_it);
   ++bfs_it;
@@ -262,8 +262,8 @@
 {
   BinaryTree<int>::iterator pos = m_pTestee->root();
   m_pTestee->join<InputTree::Inclusive>(pos,0);
-  BinaryTree<int>::bfs_iterator bfs_it = m_pTestee->bfs_begin(); 
-  BinaryTree<int>::bfs_iterator bfs_end = m_pTestee->bfs_end(); 
+  BinaryTree<int>::bfs_iterator bfs_it = m_pTestee->bfs_begin();
+  BinaryTree<int>::bfs_iterator bfs_end = m_pTestee->bfs_end();
   int counter = 0;
   while( bfs_it != bfs_end ) {
     ++counter;
@@ -272,4 +272,40 @@
   ASSERT_EQ(1, counter);
 }
 
+TEST_F( BinTreeTest, TreeIterator)
+{
+  BinaryTree<int>::iterator pos = m_pTestee->root();
+  m_pTestee->join<InputTree::Inclusive>(pos,0);
+  pos.move<InputTree::Inclusive>();
+  m_pTestee->join<InputTree::Positional>(pos,1);
+  pos.move<InputTree::Positional>();
+  m_pTestee->join<InputTree::Inclusive>(pos,2);
+  m_pTestee->join<InputTree::Positional>(pos,5);
+  pos.move<InputTree::Inclusive>();
+  m_pTestee->join<InputTree::Positional>(pos,3);
+  pos.move<InputTree::Positional>();
+  m_pTestee->join<InputTree::Positional>(pos,4);
+
+  BinaryTree<int>::iterator it = m_pTestee->begin();
+  BinaryTree<int>::iterator end = m_pTestee->end();
+
+  ASSERT_EQ(0, **it);
+  ++it;
+  ASSERT_EQ(1, **it);
+  --it;
+  ASSERT_EQ(2, **it);
+  ++it;
+  ASSERT_EQ(3, **it);
+  ++it;
+  ASSERT_EQ(4, **it);
+  ++it;
+  ASSERT_TRUE(it == end);
+
+  it = m_pTestee->begin();
+  ++it;
+  ++it;
+  ASSERT_EQ(5, **it);
+  ++it;
+  ASSERT_TRUE(it == end);
+}
 
