Use forwarding reference instead of value for funcs