change to use c++11