moved to c++11