def METHOD_NAME(dynamic=True, horizon=10.0):
    m = pyo.ConcreteModel()
    m.comp = pyo.Set(initialize=["A", "B"])
    if dynamic:
        m.time = dae.ContinuousSet(initialize=[0, horizon])
    else:
        m.time = pyo.Set(initialize=[0])
    time = m.time
    comp = m.comp
    m.stoich = pyo.Param(m.comp, initialize={"A": -1, "B": 1}, mutable=True)
    m.k_rxn = pyo.Param(initialize=1.0, mutable=True)
    m.conc = pyo.Var(m.time, m.comp)
    if dynamic:
        m.dcdt = dae.DerivativeVar(m.conc, wrt=m.time)
    m.flow_in = pyo.Var(time, bounds=(0, None))
    m.flow_out = pyo.Var(time, bounds=(0, None))
    m.flow_eqn = pyo.Constraint(time, rule=_flow_eqn_rule)
    m.conc_in = pyo.Var(time, comp, bounds=(0, None))
    m.conc_out = pyo.Var(time, comp, bounds=(0, None))
    m.conc_out_eqn = pyo.Constraint(time, comp, rule=_conc_out_eqn_rule)
    m.rate_gen = pyo.Var(time, comp)
    m.rate_eqn = pyo.Constraint(time, comp, rule=_rate_eqn_rule)
    if dynamic:
        m.conc_diff_eqn = pyo.Constraint(time, comp, rule=_conc_diff_eqn_rule)
    else:
        m.conc_steady_eqn = pyo.Constraint(time, comp, rule=_conc_steady_eqn_rule)
    return m