Simplify. I didn't actually need specific types for each operation. I can just use a Func<>.