add grante wrapper code. requires c++11 and is that why experimental. Only experts should use it.