ARCHmXAdditive <- function(eps, X, p, delta=2, covariates="all", 
                   method = "smooth_means_Positive_Constraint_Exp", ## one of  "smooth_means_Positive_Constraint_Exp", "smooth_means_lowes", "smooth_variance"
                   train_end = NULL, n_burn = 10, max_outer_iter = 30, tol = 1e-4,
                   hypothesisTest = TRUE, k.choice = "plugin"
                   ) { # last 2 params are for variable selection
  
  # questions
  # should i get rid of n_burn and just do same default amount no matter what? -- new_ARCHmX doesnt hv this

  # Validation
  validate_ARCHmXAdditive(eps = eps, X = X, p = p, delta = delta, covariates = covariates, method = method, n_burn = n_burn,  k.choice = k.choice)
  
  # Call constructor to build the model
  obj <- new_ARCHmXAdditive(eps = eps, X = X, p = p, delta = delta, covariates = covariates,
    method = method, train_end = train_end, n_burn = n_burn, max_outer_iter = max_outer_iter, 
    tol = tol, hypothesisTest = hypothesisTest, k.choice = k.choice
  )
  
  # Return the model
  return(obj)
}

