def METHOD_NAME(self, name=None, model_class=None, mode='dynamic', *args, config=None, source=None):
    """ Initialize a static or dynamic model
    Parameters
    ----------
    name : str
        a name for the model (to refer to it later when training or infering).
    model_class : class or named expression
        a model class (might also be specified in the config).
    mode : {'static', 'dynamic'}
        model creation mode:
        - static - the model is created right now, during the pipeline definition
        - dynamic - the model is created at the first iteration when the pipeline is run (default)
    config : dict or Config
        model configurations parameters, where each key and value could be named expressions.
    source
        a model or a pipeline to import from
    """
    _ = args
    # workaround for a previous arg order
    if name in ['dynamic', 'static']:
        raise DeprecationWarning('Arguments order has changed to <model name>, <model class>, <mode>, <config>.')
    if model_class is None and config is not None:
        model_class = config.get('model_class')
    if model_class is None and source is None:
        raise ValueError('model_class should be specified in the model config')
    if mode == 'static':
        model = self.create_model(model_class, config)
    else:
        model = NonInitializedModel(model_class, config, source)
    self.add_model(name, model)