First Version with C++11