Add rng to the gamodel
global model reference for use in `freeze(entity)` so that the alg doesn't need to know about the model
pull functions from module
wrap up init stuff into one simple run call
switch to produce / consume for grouping