Create an instance of the named plugin and return it
        :param class_name: fully qualified name of class 
        :type class_name: str
        :param config: the supporting configuration for plugin 
        :type config: PluginConfig
        :rtype: AbstractPlugin
        :return: an instance of a concrete implementation of AbstractPlugin

def build_plugin(cls, class_name, config):
        """Create an instance of the named plugin and return it
        :param class_name: fully qualified name of class 
        :type class_name: str
        :param config: the supporting configuration for plugin 
        :type config: PluginConfig
        :rtype: AbstractPlugin
        :return: an instance of a concrete implementation of AbstractPlugin
        """
        mod_path, class_name = class_name.rsplit('.', 1)
        plugin_cls = getattr(importlib.import_module(mod_path), class_name)
        return plugin_cls(config)