...
This would also open the door for other uses cases currently using a class to get a concrete instance (partitioner, metrics report, etc).
A possible alternative would be to create more constructors with an additional parameter to specify the interceptors but this would increase the number of constructors without having a way to build instances for other types.
See the following portion of code for a concrete example
...