simulate_response.nls <- function(true_mean, ...){
  func <- formula(true_mean)[[3]]
  envr <- c(as.list(coefficients(true_mean)), as.list(get_data(true_mean)))
  Y_mean <- tryCatch(with(envr, eval(func)),
                     error = function(e) stop("Unable to generate Y_mean from 'nls' object: ", e))
  errors <- generate_error_matrix(...)
  output <- as.matrix(Y_mean + errors)
  rownames(output) <- seq_len(nrow(output))
  return(output)
}
