works on C++11 again