Extract base class
Restrain the test case
Refactorings
Cleanup
Use STL
Some doc