You must understand the Func behavior, where the last parameter is always the output or result
Func<1, 2, outPut>
Func<int, int, int> Add = (x, y) => x + y;
Func<int, int, int> diff = (x, y) => x - y;
Func<int, int, int> multi = (x, y) => x * y;