C++ Implemantion