pure c++11 impl
fix for pure c++11