Rewrote caller.h to be more C++11 ish, currently commented out pending whenever we decide to support some C++11 features