initial commit for 10025
accepted in C++11