Add more parameterization to the interfaces to help with usage in various scenarios.