added auto caller based on the c++11 runtime