removed need for c++11, to support old compilers