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