def add(self, src_cls, module, package=None):
        """
        Add layer class to model. This method may be overloaded by layer.

        :param src_cls: layer class to add, should not start with underscores
        :type src_cls: str
        :param module: Python module that contains layer class
        :type module: str
        :param package: optional package containing module with layer class
        :type package: str
        :raises: :exc:`~exceptions.NotImplementedError`
        """
        # import module containing the layer class
        mod = importlib.import_module(module, package)
        # get layer class definition from the module
        self.sources[src_cls] = getattr(mod, src_cls)