Func Wrappers: all template functions are inline. Use wrap<> for creating non-inline functions