use new features of c++11