Try to data drive the function generation