indirect_1cpt_stim_kin <- function() {
  description <- "One compartment indirect response model with stimulation of kin.Parameterized using rate cosntants"
  depends <- c("ic50")
  reference <- "nlmixr2lib template"
  units <- list(time = "time_unit", dosing = "dose_unit", concentration = "conc_unit/vol_unit")
  # Issue #482: what each ODE state holds, in what amount units, in what
  # biological matrix. analyte/specimen proposed by a local model from the
  # model description; units derived from the units block. verified = FALSE
  # means NOT checked against the source paper.
  compartmentData <- list(
    depot   = list(analyte = "drug", units = NA_character_, specimen = "administration site", verified = FALSE),
    central = list(analyte = "drug", units = NA_character_, specimen = "plasma", verified = FALSE),
    effect  = list(analyte = "response", units = NA_character_, specimen = "not applicable", verified = FALSE)
  )

  ini({
    lka  <- 0.45 ; label("Absorption rate (Ka)")
    lvc  <- log(90) ; label("Central volume of distribution (Vc)")
    lkel <- 0.534; label("elimination rate (1/d)")
    lec50 <- 0.67; label("Drug concentration producing 50% of maximum stimulation at effect site (ec50)")
    lemax <- 0.85; label("Maximum effect attributed to drug (emax)")
    lkin <- 0.48; label("Zero-order rate constant for production of drug response(1/d)")
    lkout <- 0.34; label("First-order rate constant for loss of drug response")
    lfdepot <- 0.4; label("Bioavailability (F)")
    propSd <- 0.5 ; label("Proportional residual error (fraction)")
  })
  model({
    ka  <- exp(lka)
    vc  <- exp(lvc)
    kel <- exp(lkel)
    ec50 <- exp(lec50)
    emax <- exp(lemax)
    kin <- exp(lkin)
    kout <- exp(lkout)
    fdepot   <- exp(lfdepot)
    
    d/dt(depot)      <- -ka*depot
    f(depot)         <- fdepot
    d/dt(central)    <- ka*depot -kel*central
    
    Cc <-  central/vc
    
    d/dt(effect) <- kin*(1+emax*Cc/(Cc + ic50)) - kout*effect
    
    Cc ~ prop(propSd)
  })
}
