c++11 class impl pattern