nchildren_ should probably be encapsulated as a function for future modularity, e.g.:
```
int nchildren() {
  if (birth_strategy_ == "variable") {
    boost::mt19937 rng(time(0));
    boost::random::uniform_int_distribution<> dist(1, nchildren_);
    boost::variate_generator<boost::mt19937&, boost::random::uniform_real_distribution <> >
        sample(rng, dist);
    return sample();
  }  else {
    return nchildren_;
  }
}
```