refactoring for C++11 began