more c++11 compliance