def METHOD_NAME(input_shape):
    """
    This model will have the following architecture:
    Functional (fun_model)
        Dense (fun_first_dense)
        Sequential (seq_sub)
            Dense
            Dense
        Dense (fun_middle_dense)
        Functional (fun_sub)
            Dense
            Dense
        Dense (fun_last_dense)
    """
    seq_sub = Sequential(name='seq_sub')
    seq_sub.add(Dense(5, activation='linear', input_shape=(5,), name='seq_sub_dense_1'))
    seq_sub.add(Dense(3, activation='linear', name='seq_sub_dense_2'))
    fun_input = Input(shape=(8,), name='fun_input')
    fun_x = Dense(7, activation='linear', name='fun_sub_dense_1')(fun_input)
    fun_x = Dense(6, activation='linear', name='fun_sub_dense_2')(fun_x)
    fun_sub = Model(inputs=fun_input, outputs=fun_x, name='fun_sub')
    input = Input(shape=input_shape, name='model_input')
    x = Dense(5, activation='linear', name='fun_first_dense')(input)
    x = seq_sub(x)
    x = Dense(8, activation='linear', name='fun_middle_dense')(x)
    x = fun_sub(x)
    x = Dense(4, activation='linear', name='fun_last_dense')(x)
    fun_model = Model(inputs=input, outputs=x, name='fun_model')
    return fun_model