added c++11 support