initial commit for 10017
add tests
accepted in c++11