using more c++11 features