Introduce factory method to avoid doubled generic typing.
Remove duplicated plugin.
Use filter chain.